From ac3d887459975c5be9fcdddc4a324b0775258066 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Mon, 21 Apr 2008 14:10:32 +0000
Subject: [PATCH] bug concerning large plates fixed: refactoring
 Location.tryCreateLocationFromMatriyCoordinate() using
 ConversionUtils.parseSpreadsheetLocation()

SVN: 5730
---
 .../ch/systemsx/cisd/bds/hcs/Location.java     | 18 +++++-------------
 .../ch/systemsx/cisd/bds/hcs/LocationTest.java |  9 ---------
 2 files changed, 5 insertions(+), 22 deletions(-)

diff --git a/bds/source/java/ch/systemsx/cisd/bds/hcs/Location.java b/bds/source/java/ch/systemsx/cisd/bds/hcs/Location.java
index dc3ac7d7d15..1d1c139bb8f 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/hcs/Location.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/hcs/Location.java
@@ -16,7 +16,8 @@
 
 package ch.systemsx.cisd.bds.hcs;
 
-import ch.systemsx.cisd.common.utilities.StringUtilities;
+import ch.systemsx.cisd.common.geometry.ConversionUtils;
+import ch.systemsx.cisd.common.geometry.Point;
 
 /**
  * A location in (x, y) coordinate space, specified in integer precision.
@@ -76,20 +77,11 @@ public final class Location
      */
     public static final Location tryCreateLocationFromMatrixCoordinate(final String coordinate)
     {
-        assert coordinate != null : "Coordinate can not be null.";
-        final String[] split = StringUtilities.splitMatrixCoordinate(coordinate);
-        if (split == null)
-        {
-            return null;
-        }
         try
         {
-            final String letter = split[0];
-            assert letter.length() == 1 : "Only one letter is supported right now.";
-            final int y = letter.toLowerCase().charAt(0) - 'a' + 1;
-            final int x = Integer.parseInt(split[1]);
-            return new Location(x, y);
-        } catch (NumberFormatException ex)
+            Point point = ConversionUtils.parseSpreadsheetLocation(coordinate);
+            return new Location(point.getY() + 1, point.getX() + 1);
+        } catch (IllegalArgumentException ex)
         {
             return null;
         }
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/LocationTest.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/LocationTest.java
index a95002aad9c..7e3cb097282 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/LocationTest.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/LocationTest.java
@@ -94,15 +94,6 @@ public final class LocationTest
     @Test
     public final void testCreateLocationFromMatrixCoordinate()
     {
-        boolean fail = true;
-        try
-        {
-            Location.tryCreateLocationFromMatrixCoordinate(null);
-        } catch (AssertionError ex)
-        {
-            fail = false;
-        }
-        assertEquals(false, fail);
         assertNull(Location.tryCreateLocationFromMatrixCoordinate(""));
         assertNull(Location.tryCreateLocationFromMatrixCoordinate("8"));
         assertNull(Location.tryCreateLocationFromMatrixCoordinate("M"));
-- 
GitLab