From: n.hoffmann Date: Wed, 15 Dec 2010 17:25:13 +0000 (+0000) Subject: Fixed some problems in the point class X-Git-Tag: 3.0.3~298 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/commitdiff_plain/34d479595756ff803bc18be5001c3faf75da5566?ds=inline Fixed some problems in the point class --- diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/location/Point.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/location/Point.java index 5d623c76ae..47bf4bda43 100644 --- a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/location/Point.java +++ b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/location/Point.java @@ -315,6 +315,9 @@ public class Point implements Cloneable, Serializable { } public static Sexagesimal valueOf(Double decimal, boolean isLatitude, boolean nullSecondsToNull, boolean nullMinutesToNull){ + if(decimal == null){ + return null; + } Sexagesimal sexagesimal = new Sexagesimal(); Double decimalDegree = decimal; if (isLatitude) { @@ -422,7 +425,7 @@ public class Point implements Cloneable, Serializable { public static Double parseLatitude(String string) throws ParseException{ CoordinateConverter converter = new CoordinateConverter(); ConversionResults result = converter.tryConvert(string); - if (! result.conversionSuccessful || result.isLongitude ){ + if (! result.conversionSuccessful || (result.isLongitude != null && result.isLongitude) ){ throw new ParseException("Latitude could not be parsed", 0); }else{ return result.convertedCoord; @@ -432,7 +435,7 @@ public class Point implements Cloneable, Serializable { public static Double parseLongitude(String string) throws ParseException{ CoordinateConverter converter = new CoordinateConverter(); ConversionResults result = converter.tryConvert(string); - if (! result.conversionSuccessful || ! result.isLongitude){ + if (! result.conversionSuccessful || (result.isLongitude != null && ! result.isLongitude)){ throw new ParseException("Longitude could not be parsed", 0); }else{ return result.convertedCoord; diff --git a/cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/location/PointTest.java b/cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/location/PointTest.java index f31d8dded8..afee0ab543 100644 --- a/cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/location/PointTest.java +++ b/cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/location/PointTest.java @@ -82,9 +82,13 @@ public class PointTest { Assert.assertNotNull("Point1 must not be null", point1); Assert.assertNotNull("Point2 must not be null", point2); Assert.assertEquals("", longitude1, point1.getLongitude()); + Assert.assertEquals("", latitude1, point1.getLatitude()); Assert.assertEquals("", errorRadius, point1.getErrorRadius()); Assert.assertEquals("", referenceSystem, point1.getReferenceSystem()); + + Assert.assertNull("LongitudeSexagesimal should be null", point2.getLongitudeSexagesimal()); + Assert.assertNull("LatitudeSexagesimal should be null", point2.getLatitudeSexagesimal()); } @Test @@ -170,6 +174,7 @@ public class PointTest { Assert.assertTrue("Longitude can not be S", true); } + // Assert.assertTrue("Southern must be negative", conversionResults.convertedCoord < 0); @@ -197,8 +202,16 @@ public class PointTest { } - - + @Test + public void testStaticParsing(){ + try{ + Point.parseLatitude("1"); + }catch (NullPointerException e){ + Assert.fail("No NullPointerException should occur"); + } catch (ParseException e) { + Assert.fail("No parsing error should occur"); + } + }