From ac6f2b2bd5b691cf53f4ef3c76dd36a344a53255 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andreas=20M=C3=BCller?= Date: Mon, 19 Nov 2018 12:57:32 +0100 Subject: [PATCH] ref #7217 add double apostrophe as second marker --- .../parser/location/CoordinateConverter.java | 14 +++++++++----- .../parser/location/CoordinateConverterTest.java | 13 +++++++------ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/parser/location/CoordinateConverter.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/parser/location/CoordinateConverter.java index 14fd0480db..20b0240057 100644 --- a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/parser/location/CoordinateConverter.java +++ b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/parser/location/CoordinateConverter.java @@ -36,7 +36,7 @@ public class CoordinateConverter { private List patterns; private static String minuteUtf8 = "\u02B9|\u00B4|\u02CA|\u0301|\u0374|\u2019"; - private static String secondUtf8 = "\u02BA|\u030B|\u2033|\u00B4\u00B4|\u201D"; + private static String secondUtf8 = "\u02BA|\u030B|\u2033|\u00B4\u00B4|\u201D|''"; private class CoordinatePattern{ @@ -135,11 +135,15 @@ public class CoordinateConverter { } - //tests if a string matches one of the defined patterns + /** + * tests if a string matches one of the defined patterns, returns -1 if no pattern matches + * @param str + * @return + */ private int matchPattern(String str){ int recognised = -1; - //match the string against each available patern + //match the string against each available pattern for (int i = 0; i < patterns.size(); i++){ CoordinatePattern pattern = patterns.get(i); @@ -510,7 +514,7 @@ public class CoordinateConverter { * what is the second notation */ - //Sets pattern machted, successful, pattern type and pattern info + //Sets pattern matched, successful, pattern type and pattern info initializeResult(results, pattern); //get sign @@ -526,7 +530,7 @@ public class CoordinateConverter { str = removeWhiteSpace(str); //remove second symbol (s is removed by the get sign method) - //double apostrophe is not removed here as single apostrphe may mark minutes! + //double apostrophe is not removed here as single apostrophe may mark minutes! //it's taken care of later after extracting the decimal part str = str.replaceAll("("+secondUtf8+"|\")", ""); diff --git a/cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/parser/location/CoordinateConverterTest.java b/cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/parser/location/CoordinateConverterTest.java index 59ac64cc34..f609f72fa3 100644 --- a/cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/parser/location/CoordinateConverterTest.java +++ b/cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/parser/location/CoordinateConverterTest.java @@ -14,6 +14,7 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; +import eu.etaxonomy.cdm.common.UTF8; import eu.etaxonomy.cdm.strategy.parser.location.CoordinateConverter.ConversionResults; /** @@ -27,14 +28,14 @@ public class CoordinateConverterTest { private CoordinateConverter coordinateConverter; // Unicode constants - private static final char DEGREE_SIGN = '\u00B0'; + private static final String DEGREE_SIGN = UTF8.DEGREE_SIGN.toString(); private static final char MASCULINE_ORDINAL_INDICATOR = '\u00BA'; - private static final char APOSTROPHE = 0x0027; - private static final char QUOTATION_MARK = '\u0022'; - private static final char ACUTE_ACCENT = '\u00B4'; - private static final char RIGHT_SINGLE_QUOTATION_MARK = '\u2019'; - private static final char RIGHT_DOUBLE_QUOTATION_MARK = '\u201D'; + private static final String APOSTROPHE = "'"; + private static final String QUOTATION_MARK = "\""; + private static final String ACUTE_ACCENT = UTF8.ACUTE_ACCENT.toString(); + private static final String RIGHT_SINGLE_QUOTATION_MARK = UTF8.QUOT_SINGLE_RIGHT.toString(); + private static final String RIGHT_DOUBLE_QUOTATION_MARK = UTF8.QUOT_DBL_RIGHT.toString(); /** * @throws java.lang.Exception -- 2.34.1