From 8edab026a1f9d9ad54bafc7c96cdef62f8dad4e5 Mon Sep 17 00:00:00 2001 From: Rijn Buve Date: Thu, 9 Jul 2015 18:56:35 +0200 Subject: [PATCH 1/5] Updated POM --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a3bc969..aef0097 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ mapcode jar - 2.0.1 + 2.0.2-SNAPSHOT Mapcode Java Library From 5ab6db5cc3c6cbf7c611c2f4f3c6fa21a5eea192 Mon Sep 17 00:00:00 2001 From: Rijn Buve Date: Thu, 9 Jul 2015 18:57:04 +0200 Subject: [PATCH 2/5] Updated POM --- src/site/apt/ReleaseNotes.apt.vm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/site/apt/ReleaseNotes.apt.vm b/src/site/apt/ReleaseNotes.apt.vm index cdcd4ed..19ad102 100755 --- a/src/site/apt/ReleaseNotes.apt.vm +++ b/src/site/apt/ReleaseNotes.apt.vm @@ -9,6 +9,12 @@ Release Notes (Version ${project.version}) In any case, never depend on them for your own non-<<>> releases. #end +* 2.0.2 + + * To do. + + [] + * 2.0.1 * Reverted Java JDK level to 1.6 (Java 6) from 1.8 (Java 8), so the library can be used on From af54d3336073d49f2265bb360ad04d1ce02152aa Mon Sep 17 00:00:00 2001 From: Rijn Buve Date: Thu, 30 Jul 2015 17:15:42 +0200 Subject: [PATCH 3/5] Minor fixes --- src/main/java/com/mapcode/Alphabet.java | 18 ++++--- src/main/java/com/mapcode/CheckArgs.java | 12 ++--- src/main/java/com/mapcode/Mapcode.java | 2 +- src/main/java/com/mapcode/Point.java | 22 +++----- src/site/apt/ReleaseNotes.apt.vm | 4 +- src/test/java/com/mapcode/MapcodeTest.java | 58 +++++++++++----------- 6 files changed, 53 insertions(+), 63 deletions(-) diff --git a/src/main/java/com/mapcode/Alphabet.java b/src/main/java/com/mapcode/Alphabet.java index 147064e..eae51fb 100644 --- a/src/main/java/com/mapcode/Alphabet.java +++ b/src/main/java/com/mapcode/Alphabet.java @@ -21,12 +21,15 @@ import static com.mapcode.CheckArgs.checkNonnull; /** - * This enum defines all alphabets supported for mapcodes. Mapcodes can be safely converted between - * alphabets and fed to the mapcode decoder in the regular ASCII Roman alphabet or any other. + * This enum defines all alphabets supported for mapcodes. Note that an alphabet is different from a + * language or locale. An alternative name for an alphabet is "script". + * + * Mapcodes can be safely converted between alphabets and fed to the mapcode decoder in the regular + * ASCII Roman alphabet or any other. */ public enum Alphabet { - ROMAN(0), - GREEK(1), + ROMAN(0), // The numeric codes for alphabets are used by the implementation + GREEK(1), // of the mapcode library. Do not change them. CYRILLIC(2), HEBREW(3), HINDI(4), @@ -41,8 +44,7 @@ public enum Alphabet { TIBETAN(13); /** - * The numeric code is synonym for the alphanumeric code. It can be used in the decoder - * to define a territory as well. + * The numeric code is synonym for the alphanumeric code. Used in the decoder. */ private final int number; @@ -65,7 +67,7 @@ int getNumber() { } /** - * Return alphabet from a string, which can be a numeric or alpha code. + * Return alphabet from a string, which needs to be an alphanumeric code. * * @param alphaCode Alphabet, alphanumeric code. * @return Alphabet. @@ -83,7 +85,7 @@ public static Alphabet fromString(@Nonnull final String alphaCode) throws Unknow } /** - * Static checking of the static data structures. + * Static consistency check of internal data structures. */ static { int i = 0; diff --git a/src/main/java/com/mapcode/CheckArgs.java b/src/main/java/com/mapcode/CheckArgs.java index a060273..f72afce 100644 --- a/src/main/java/com/mapcode/CheckArgs.java +++ b/src/main/java/com/mapcode/CheckArgs.java @@ -22,7 +22,9 @@ import static com.mapcode.Mapcode.getPrecisionFormat; /** - * Package private helper methods to check arguments for validity. + * ---------------------------------------------------------------------------------------------- + * Package private implementation class. For internal use within the Mapcode implementation only. + * ---------------------------------------------------------------------------------------------- */ class CheckArgs { @@ -30,14 +32,6 @@ private CheckArgs() { // Prevent instantiation. } - static void checkRange(@Nonnull final String param, final double value, - final double min, final double max) throws IllegalArgumentException { - if ((value < min) || (value > max)) { - throw new IllegalArgumentException("Parameter " + param + - " should be in range [" + min + ", " + max + "], but is: " + value); - } - } - static void checkNonnull(@Nonnull final String param, @Nullable final Object obj) throws IllegalArgumentException { if (obj == null) { diff --git a/src/main/java/com/mapcode/Mapcode.java b/src/main/java/com/mapcode/Mapcode.java index 0271dc4..70369d4 100644 --- a/src/main/java/com/mapcode/Mapcode.java +++ b/src/main/java/com/mapcode/Mapcode.java @@ -333,7 +333,7 @@ public static PrecisionFormat getPrecisionFormat(@Nonnull final String mapcode) * actually a valid mapcode representing a location on Earth. * @throws IllegalArgumentException If mapcode is null. */ - public static boolean isValidPrecisionFormat(@Nonnull final String mapcode) throws IllegalArgumentException { + public static boolean isValidMapcodeFormat(@Nonnull final String mapcode) throws IllegalArgumentException { checkNonnull("mapcode", mapcode); try { // Throws an exception if the format is incorrect. diff --git a/src/main/java/com/mapcode/Point.java b/src/main/java/com/mapcode/Point.java index 9ff51f9..175ab52 100644 --- a/src/main/java/com/mapcode/Point.java +++ b/src/main/java/com/mapcode/Point.java @@ -23,10 +23,6 @@ import static com.mapcode.CheckArgs.checkNonnull; /** - * ---------------------------------------------------------------------------------------------- - * Package private implementation class. For internal use within the mapcode implementation only. - * ---------------------------------------------------------------------------------------------- - * * This class defines a class for lat/lon points. */ public class Point { @@ -37,13 +33,6 @@ public class Point { public static final double LAT_DEG_MIN = -90.0; public static final double LAT_DEG_MAX = 90.0; - public static final int LON_MICRODEG_MIN = degToMicroDeg(LON_DEG_MIN); - public static final int LON_MICRODEG_MAX = degToMicroDeg(LON_DEG_MAX); - public static final int LAT_MICRODEG_MIN = degToMicroDeg(LAT_DEG_MIN); - public static final int LAT_MICRODEG_MAX = degToMicroDeg(LAT_DEG_MAX); - - public static final double MICRODEG_TO_DEG_FACTOR = 1000000.0; - // Radius of Earth. public static final double EARTH_RADIUS_X_METERS = 6378137.0; public static final double EARTH_RADIUS_Y_METERS = 6356752.3; @@ -155,8 +144,7 @@ public static double distanceInMeters(@Nonnull final Point p1, @Nonnull final Po final double deltaYMeters = degreesLatToMeters(deltaLatDeg); // Calculate length through Earth. This is an approximation, but works fine for short distances. - final double lenMeters = Math.sqrt((deltaXMeters * deltaXMeters) + (deltaYMeters * deltaYMeters)); - return lenMeters; + return Math.sqrt((deltaXMeters * deltaXMeters) + (deltaYMeters * deltaYMeters)); } public static double degreesLatToMeters(final double latDegrees) { @@ -236,6 +224,11 @@ private Point(final double latDeg, final double lonDeg, final boolean wrap) { /** * Package private methods. Only used in the mapcode implementation modules. */ + static final double MICRODEG_TO_DEG_FACTOR = 1000000.0; + static final int LON_MICRODEG_MIN = degToMicroDeg(LON_DEG_MIN); + static final int LON_MICRODEG_MAX = degToMicroDeg(LON_DEG_MAX); + static final int LAT_MICRODEG_MIN = degToMicroDeg(LAT_DEG_MIN); + static final int LAT_MICRODEG_MAX = degToMicroDeg(LAT_DEG_MAX); @Nonnull static Point fromMicroDeg(final int latMicroDeg, final int lonMicroDeg) { @@ -287,8 +280,7 @@ Point wrap() { * @return Limited to [-90, 90]. */ static double mapToLat(final double value) { - final double lat = (value < -90.0) ? -90.0 : ((value > 90.0) ? 90.0 : value); - return lat; + return (value < -90.0) ? -90.0 : ((value > 90.0) ? 90.0 : value); } /** diff --git a/src/site/apt/ReleaseNotes.apt.vm b/src/site/apt/ReleaseNotes.apt.vm index 19ad102..00d6968 100755 --- a/src/site/apt/ReleaseNotes.apt.vm +++ b/src/site/apt/ReleaseNotes.apt.vm @@ -11,7 +11,9 @@ Release Notes (Version ${project.version}) * 2.0.2 - * To do. + * Renamed <<>> to <<>>. + + * Removed public microdegree references from <<>> class. [] diff --git a/src/test/java/com/mapcode/MapcodeTest.java b/src/test/java/com/mapcode/MapcodeTest.java index 1f7d11a..41816c8 100644 --- a/src/test/java/com/mapcode/MapcodeTest.java +++ b/src/test/java/com/mapcode/MapcodeTest.java @@ -60,37 +60,37 @@ public void checkInvalidPrecisionFormats() { LOG.info("checkInvalidPrecisionFormats"); // Territory code must be correct syntax. - assertFalse(Mapcode.isValidPrecisionFormat("NL- XX.XX")); - assertFalse(Mapcode.isValidPrecisionFormat("US IN XX.XX")); + assertFalse(Mapcode.isValidMapcodeFormat("NL- XX.XX")); + assertFalse(Mapcode.isValidMapcodeFormat("US IN XX.XX")); // Incorrect (nunber of) characters. - assertFalse(Mapcode.isValidPrecisionFormat("A")); - assertFalse(Mapcode.isValidPrecisionFormat("AB")); - assertFalse(Mapcode.isValidPrecisionFormat("AB.")); - assertFalse(Mapcode.isValidPrecisionFormat(".A")); - assertFalse(Mapcode.isValidPrecisionFormat(".AB")); - assertFalse(Mapcode.isValidPrecisionFormat("A.B")); - assertFalse(Mapcode.isValidPrecisionFormat("a.B")); - assertFalse(Mapcode.isValidPrecisionFormat("0.1")); - assertFalse(Mapcode.isValidPrecisionFormat("0.1")); - assertFalse(Mapcode.isValidPrecisionFormat("00.1")); - assertFalse(Mapcode.isValidPrecisionFormat("0.01")); - assertFalse(Mapcode.isValidPrecisionFormat("00.01.")); - assertFalse(Mapcode.isValidPrecisionFormat("00.01.0")); - assertFalse(Mapcode.isValidPrecisionFormat("00.01.00")); - assertFalse(Mapcode.isValidPrecisionFormat("00.01-")); - assertFalse(Mapcode.isValidPrecisionFormat("00.01-")); - assertFalse(Mapcode.isValidPrecisionFormat("AAAAAA.BBBBB")); - assertFalse(Mapcode.isValidPrecisionFormat("AAAAA.BBBBBB")); - assertFalse(Mapcode.isValidPrecisionFormat("AA.AA-012")); - assertFalse(Mapcode.isValidPrecisionFormat("AA.AA-Z")); - assertFalse(Mapcode.isValidPrecisionFormat("AA.AA-1Z")); - assertFalse(Mapcode.isValidPrecisionFormat("A.AAA")); - assertFalse(Mapcode.isValidPrecisionFormat("AAA.A")); - assertFalse(Mapcode.isValidPrecisionFormat("A.AAA-1")); - assertFalse(Mapcode.isValidPrecisionFormat("AAA.A-1")); - assertFalse(Mapcode.isValidPrecisionFormat("A.AAA-12")); - assertFalse(Mapcode.isValidPrecisionFormat("AAA.A-12")); + assertFalse(Mapcode.isValidMapcodeFormat("A")); + assertFalse(Mapcode.isValidMapcodeFormat("AB")); + assertFalse(Mapcode.isValidMapcodeFormat("AB.")); + assertFalse(Mapcode.isValidMapcodeFormat(".A")); + assertFalse(Mapcode.isValidMapcodeFormat(".AB")); + assertFalse(Mapcode.isValidMapcodeFormat("A.B")); + assertFalse(Mapcode.isValidMapcodeFormat("a.B")); + assertFalse(Mapcode.isValidMapcodeFormat("0.1")); + assertFalse(Mapcode.isValidMapcodeFormat("0.1")); + assertFalse(Mapcode.isValidMapcodeFormat("00.1")); + assertFalse(Mapcode.isValidMapcodeFormat("0.01")); + assertFalse(Mapcode.isValidMapcodeFormat("00.01.")); + assertFalse(Mapcode.isValidMapcodeFormat("00.01.0")); + assertFalse(Mapcode.isValidMapcodeFormat("00.01.00")); + assertFalse(Mapcode.isValidMapcodeFormat("00.01-")); + assertFalse(Mapcode.isValidMapcodeFormat("00.01-")); + assertFalse(Mapcode.isValidMapcodeFormat("AAAAAA.BBBBB")); + assertFalse(Mapcode.isValidMapcodeFormat("AAAAA.BBBBBB")); + assertFalse(Mapcode.isValidMapcodeFormat("AA.AA-012")); + assertFalse(Mapcode.isValidMapcodeFormat("AA.AA-Z")); + assertFalse(Mapcode.isValidMapcodeFormat("AA.AA-1Z")); + assertFalse(Mapcode.isValidMapcodeFormat("A.AAA")); + assertFalse(Mapcode.isValidMapcodeFormat("AAA.A")); + assertFalse(Mapcode.isValidMapcodeFormat("A.AAA-1")); + assertFalse(Mapcode.isValidMapcodeFormat("AAA.A-1")); + assertFalse(Mapcode.isValidMapcodeFormat("A.AAA-12")); + assertFalse(Mapcode.isValidMapcodeFormat("AAA.A-12")); } @Test From e9be2f8e1bbbfffb656fb1ba12f480240c88fb9b Mon Sep 17 00:00:00 2001 From: Rijn Buve Date: Fri, 31 Jul 2015 17:25:14 +0200 Subject: [PATCH 4/5] removed ParentTerritory --- .../java/com/mapcode/ParentTerritory.java | 49 -- src/main/java/com/mapcode/Territory.java | 586 +++++++++--------- src/site/apt/ReleaseNotes.apt.vm | 2 + src/test/java/com/mapcode/TerritoryTest.java | 6 +- 4 files changed, 301 insertions(+), 342 deletions(-) delete mode 100755 src/main/java/com/mapcode/ParentTerritory.java diff --git a/src/main/java/com/mapcode/ParentTerritory.java b/src/main/java/com/mapcode/ParentTerritory.java deleted file mode 100755 index a066baf..0000000 --- a/src/main/java/com/mapcode/ParentTerritory.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2014-2015 Stichting Mapcode Foundation (http://www.mapcode.com) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.mapcode; - -import javax.annotation.Nonnull; - -/** - * ---------------------------------------------------------------------------------------------- - * Mapcode public interface. - * ---------------------------------------------------------------------------------------------- - * - * This class defines "parent territories" for territories that have multiple territory codes. - */ -public enum ParentTerritory { - IND(Territory.IND), - AUS(Territory.AUS), - BRA(Territory.BRA), - USA(Territory.USA), - MEX(Territory.MEX), - CAN(Territory.CAN), - RUS(Territory.RUS), - CHN(Territory.CHN); - - @Nonnull - public Territory getTerritory() { - return territory; - } - - @Nonnull - private final Territory territory; - - private ParentTerritory(@Nonnull final Territory territory) { - this.territory = territory; - } -} diff --git a/src/main/java/com/mapcode/Territory.java b/src/main/java/com/mapcode/Territory.java index 17956ae..71fde5e 100755 --- a/src/main/java/com/mapcode/Territory.java +++ b/src/main/java/com/mapcode/Territory.java @@ -277,298 +277,302 @@ public enum Territory { LBY(230, "Libya"), SDN(231, "Sudan"), IDN(232, "Indonesia"), - MX_DIF(233, "Federal District", ParentTerritory.MEX, new String[]{"MX-DF"}), - MX_TLA(234, "Tlaxcala", ParentTerritory.MEX, new String[]{"MX-TL"}), - MX_MOR(235, "Morelos", ParentTerritory.MEX, new String[]{"MX-MO"}), - MX_AGU(236, "Aguascalientes", ParentTerritory.MEX, new String[]{"MX-AG"}), - MX_CL(237, "Colima", ParentTerritory.MEX, new String[]{"MX-COL"}), - MX_QUE(238, "Queretaro", ParentTerritory.MEX, new String[]{"MX-QE"}), - MX_HID(239, "Hidalgo", ParentTerritory.MEX, new String[]{"MX-HG"}), - MX_MX(240, "Mexico State", ParentTerritory.MEX, new String[]{"MX-ME", "MX-MEX"}), - MX_TAB(241, "Tabasco", ParentTerritory.MEX, new String[]{"MX-TB"}), - MX_NAY(242, "Nayarit", ParentTerritory.MEX, new String[]{"MX-NA"}), - MX_GUA(243, "Guanajuato", ParentTerritory.MEX, new String[]{"MX-GT"}), - MX_PUE(244, "Puebla", ParentTerritory.MEX, new String[]{"MX-PB"}), - MX_YUC(245, "Yucatan", ParentTerritory.MEX, new String[]{"MX-YU"}), - MX_ROO(246, "Quintana Roo", ParentTerritory.MEX, new String[]{"MX-QR"}), - MX_SIN(247, "Sinaloa", ParentTerritory.MEX, new String[]{"MX-SI"}), - MX_CAM(248, "Campeche", ParentTerritory.MEX, new String[]{"MX-CM"}), - MX_MIC(249, "Michoacan", ParentTerritory.MEX, new String[]{"MX-MI"}), - MX_SLP(250, "San Luis Potosi", ParentTerritory.MEX, new String[]{"MX-SL"}), - MX_GRO(251, "Guerrero", ParentTerritory.MEX, new String[]{"MX-GR"}), - MX_NLE(252, "Nuevo Leon", ParentTerritory.MEX, new String[]{"MX-NL"}), - MX_BCN(253, "Baja California", ParentTerritory.MEX, new String[]{"MX-BC"}), - MX_VER(254, "Veracruz", ParentTerritory.MEX, new String[]{"MX-VE"}), - MX_CHP(255, "Chiapas", ParentTerritory.MEX, new String[]{"MX-CS"}), - MX_BCS(256, "Baja California Sur", ParentTerritory.MEX, new String[]{"MX-BS"}), - MX_ZAC(257, "Zacatecas", ParentTerritory.MEX, new String[]{"MX-ZA"}), - MX_JAL(258, "Jalisco", ParentTerritory.MEX, new String[]{"MX-JA"}), - MX_TAM(259, "Tamaulipas", ParentTerritory.MEX, new String[]{"MX-TM"}), - MX_OAX(260, "Oaxaca", ParentTerritory.MEX, new String[]{"MX-OA"}), - MX_DUR(261, "Durango", ParentTerritory.MEX, new String[]{"MX-DG"}), - MX_COA(262, "Coahuila", ParentTerritory.MEX, new String[]{"MX-CO"}), - MX_SON(263, "Sonora", ParentTerritory.MEX, new String[]{"MX-SO"}), - MX_CHH(264, "Chihuahua", ParentTerritory.MEX, new String[]{"MX-CH"}), + MX_DIF(233, "Federal District", MEX, new String[]{"MX-DF"}), + MX_TLA(234, "Tlaxcala", MEX, new String[]{"MX-TL"}), + MX_MOR(235, "Morelos", MEX, new String[]{"MX-MO"}), + MX_AGU(236, "Aguascalientes", MEX, new String[]{"MX-AG"}), + MX_CL(237, "Colima", MEX, new String[]{"MX-COL"}), + MX_QUE(238, "Queretaro", MEX, new String[]{"MX-QE"}), + MX_HID(239, "Hidalgo", MEX, new String[]{"MX-HG"}), + MX_MX(240, "Mexico State", MEX, new String[]{"MX-ME", "MX-MEX"}), + MX_TAB(241, "Tabasco", MEX, new String[]{"MX-TB"}), + MX_NAY(242, "Nayarit", MEX, new String[]{"MX-NA"}), + MX_GUA(243, "Guanajuato", MEX, new String[]{"MX-GT"}), + MX_PUE(244, "Puebla", MEX, new String[]{"MX-PB"}), + MX_YUC(245, "Yucatan", MEX, new String[]{"MX-YU"}), + MX_ROO(246, "Quintana Roo", MEX, new String[]{"MX-QR"}), + MX_SIN(247, "Sinaloa", MEX, new String[]{"MX-SI"}), + MX_CAM(248, "Campeche", MEX, new String[]{"MX-CM"}), + MX_MIC(249, "Michoacan", MEX, new String[]{"MX-MI"}), + MX_SLP(250, "San Luis Potosi", MEX, new String[]{"MX-SL"}), + MX_GRO(251, "Guerrero", MEX, new String[]{"MX-GR"}), + MX_NLE(252, "Nuevo Leon", MEX, new String[]{"MX-NL"}), + MX_BCN(253, "Baja California", MEX, new String[]{"MX-BC"}), + MX_VER(254, "Veracruz", MEX, new String[]{"MX-VE"}), + MX_CHP(255, "Chiapas", MEX, new String[]{"MX-CS"}), + MX_BCS(256, "Baja California Sur", MEX, new String[]{"MX-BS"}), + MX_ZAC(257, "Zacatecas", MEX, new String[]{"MX-ZA"}), + MX_JAL(258, "Jalisco", MEX, new String[]{"MX-JA"}), + MX_TAM(259, "Tamaulipas", MEX, new String[]{"MX-TM"}), + MX_OAX(260, "Oaxaca", MEX, new String[]{"MX-OA"}), + MX_DUR(261, "Durango", MEX, new String[]{"MX-DG"}), + MX_COA(262, "Coahuila", MEX, new String[]{"MX-CO"}), + MX_SON(263, "Sonora", MEX, new String[]{"MX-SO"}), + MX_CHH(264, "Chihuahua", MEX, new String[]{"MX-CH"}), GRL(265, "Greenland"), SAU(266, "Saudi Arabia"), COD(267, "Congo-Kinshasa"), DZA(268, "Algeria"), KAZ(269, "Kazakhstan"), ARG(270, "Argentina"), - IN_DD(271, "Daman and Diu", ParentTerritory.IND), - IN_DN(272, "Dadra and Nagar Haveli", ParentTerritory.IND), - IN_CH(273, "Chandigarh", ParentTerritory.IND), - IN_AN(274, "Andaman and Nicobar", ParentTerritory.IND), - IN_LD(275, "Lakshadweep", ParentTerritory.IND), - IN_DL(276, "Delhi", ParentTerritory.IND), - IN_ML(277, "Meghalaya", ParentTerritory.IND), - IN_NL(278, "Nagaland", ParentTerritory.IND), - IN_MN(279, "Manipur", ParentTerritory.IND), - IN_TR(280, "Tripura", ParentTerritory.IND), - IN_MZ(281, "Mizoram", ParentTerritory.IND), - IN_SK(282, "Sikkim", ParentTerritory.IND), - IN_PB(283, "Punjab", ParentTerritory.IND), - IN_HR(284, "Haryana", ParentTerritory.IND), - IN_AR(285, "Arunachal Pradesh", ParentTerritory.IND), - IN_AS(286, "Assam", ParentTerritory.IND), - IN_BR(287, "Bihar", ParentTerritory.IND), - IN_UT(288, "Uttarakhand", ParentTerritory.IND, new String[]{"IN-UK"}), - IN_GA(289, "Goa", ParentTerritory.IND), - IN_KL(290, "Kerala", ParentTerritory.IND), - IN_TN(291, "Tamil Nadu", ParentTerritory.IND), - IN_HP(292, "Himachal Pradesh", ParentTerritory.IND), - IN_JK(293, "Jammu and Kashmir", ParentTerritory.IND), - IN_CT(294, "Chhattisgarh", ParentTerritory.IND, new String[]{"IN-CG"}), - IN_JH(295, "Jharkhand", ParentTerritory.IND), - IN_KA(296, "Karnataka", ParentTerritory.IND), - IN_RJ(297, "Rajasthan", ParentTerritory.IND), - IN_OR(298, "Odisha", ParentTerritory.IND, new String[]{"IN-OD"}, new String[]{"Orissa"}), - IN_GJ(299, "Gujarat", ParentTerritory.IND), - IN_WB(300, "West Bengal", ParentTerritory.IND), - IN_MP(301, "Madhya Pradesh", ParentTerritory.IND), - IN_TG(302, "Telangana", ParentTerritory.IND), - IN_AP(303, "Andhra Pradesh", ParentTerritory.IND), - IN_MH(304, "Maharashtra", ParentTerritory.IND), - IN_UP(305, "Uttar Pradesh", ParentTerritory.IND), - IN_PY(306, "Puducherry", ParentTerritory.IND), - AU_NSW(307, "New South Wales", ParentTerritory.AUS), - AU_ACT(308, "Australian Capital Territory", ParentTerritory.AUS), - AU_JBT(309, "Jervis Bay Territory", ParentTerritory.AUS), - AU_NT(310, "Northern Territory", ParentTerritory.AUS), - AU_SA(311, "South Australia", ParentTerritory.AUS), - AU_TAS(312, "Tasmania", ParentTerritory.AUS), - AU_VIC(313, "Victoria", ParentTerritory.AUS), - AU_WA(314, "Western Australia", ParentTerritory.AUS), - AU_QLD(315, "Queensland", ParentTerritory.AUS), - BR_DF(316, "Distrito Federal", ParentTerritory.BRA), - BR_SE(317, "Sergipe", ParentTerritory.BRA), - BR_AL(318, "Alagoas", ParentTerritory.BRA), - BR_RJ(319, "Rio de Janeiro", ParentTerritory.BRA), - BR_ES(320, "Espirito Santo", ParentTerritory.BRA), - BR_RN(321, "Rio Grande do Norte", ParentTerritory.BRA), - BR_PB(322, "Paraiba", ParentTerritory.BRA), - BR_SC(323, "Santa Catarina", ParentTerritory.BRA), - BR_PE(324, "Pernambuco", ParentTerritory.BRA), - BR_AP(325, "Amapa", ParentTerritory.BRA), - BR_CE(326, "Ceara", ParentTerritory.BRA), - BR_AC(327, "Acre", ParentTerritory.BRA), - BR_PR(328, "Parana", ParentTerritory.BRA), - BR_RR(329, "Roraima", ParentTerritory.BRA), - BR_RO(330, "Rondonia", ParentTerritory.BRA), - BR_SP(331, "Sao Paulo", ParentTerritory.BRA), - BR_PI(332, "Piaui", ParentTerritory.BRA), - BR_TO(333, "Tocantins", ParentTerritory.BRA), - BR_RS(334, "Rio Grande do Sul", ParentTerritory.BRA), - BR_MA(335, "Maranhao", ParentTerritory.BRA), - BR_GO(336, "Goias", ParentTerritory.BRA), - BR_MS(337, "Mato Grosso do Sul", ParentTerritory.BRA), - BR_BA(338, "Bahia", ParentTerritory.BRA), - BR_MG(339, "Minas Gerais", ParentTerritory.BRA), - BR_MT(340, "Mato Grosso", ParentTerritory.BRA), - BR_PA(341, "Para", ParentTerritory.BRA), - BR_AM(342, "Amazonas", ParentTerritory.BRA), - US_DC(343, "District of Columbia", ParentTerritory.USA), - US_RI(344, "Rhode Island", ParentTerritory.USA), - US_DE(345, "Delaware", ParentTerritory.USA), - US_CT(346, "Connecticut", ParentTerritory.USA), - US_NJ(347, "New Jersey", ParentTerritory.USA), - US_NH(348, "New Hampshire", ParentTerritory.USA), - US_VT(349, "Vermont", ParentTerritory.USA), - US_MA(350, "Massachusetts", ParentTerritory.USA), - US_HI(351, "Hawaii", ParentTerritory.USA, new String[]{"US-MID"}), - US_MD(352, "Maryland", ParentTerritory.USA), - US_WV(353, "West Virginia", ParentTerritory.USA), - US_SC(354, "South Carolina", ParentTerritory.USA), - US_ME(355, "Maine", ParentTerritory.USA), - US_IN(356, "Indiana", ParentTerritory.USA), - US_KY(357, "Kentucky", ParentTerritory.USA), - US_TN(358, "Tennessee", ParentTerritory.USA), - US_VA(359, "Virginia", ParentTerritory.USA), - US_OH(360, "Ohio", ParentTerritory.USA), - US_PA(361, "Pennsylvania", ParentTerritory.USA), - US_MS(362, "Mississippi", ParentTerritory.USA), - US_LA(363, "Louisiana", ParentTerritory.USA), - US_AL(364, "Alabama", ParentTerritory.USA), - US_AR(365, "Arkansas", ParentTerritory.USA), - US_NC(366, "North Carolina", ParentTerritory.USA), - US_NY(367, "New York", ParentTerritory.USA), - US_IA(368, "Iowa", ParentTerritory.USA), - US_IL(369, "Illinois", ParentTerritory.USA), - US_GA(370, "Georgia", ParentTerritory.USA), - US_WI(371, "Wisconsin", ParentTerritory.USA), - US_FL(372, "Florida", ParentTerritory.USA), - US_MO(373, "Missouri", ParentTerritory.USA), - US_OK(374, "Oklahoma", ParentTerritory.USA), - US_ND(375, "North Dakota", ParentTerritory.USA), - US_WA(376, "Washington", ParentTerritory.USA), - US_SD(377, "South Dakota", ParentTerritory.USA), - US_NE(378, "Nebraska", ParentTerritory.USA), - US_KS(379, "Kansas", ParentTerritory.USA), - US_ID(380, "Idaho", ParentTerritory.USA), - US_UT(381, "Utah", ParentTerritory.USA), - US_MN(382, "Minnesota", ParentTerritory.USA), - US_MI(383, "Michigan", ParentTerritory.USA), - US_WY(384, "Wyoming", ParentTerritory.USA), - US_OR(385, "Oregon", ParentTerritory.USA), - US_CO(386, "Colorado", ParentTerritory.USA), - US_NV(387, "Nevada", ParentTerritory.USA), - US_AZ(388, "Arizona", ParentTerritory.USA), - US_NM(389, "New Mexico", ParentTerritory.USA), - US_MT(390, "Montana", ParentTerritory.USA), - US_CA(391, "California", ParentTerritory.USA), - US_TX(392, "Texas", ParentTerritory.USA), - US_AK(393, "Alaska", ParentTerritory.USA), - CA_BC(394, "British Columbia", ParentTerritory.CAN), - CA_AB(395, "Alberta", ParentTerritory.CAN), - CA_ON(396, "Ontario", ParentTerritory.CAN), - CA_QC(397, "Quebec", ParentTerritory.CAN), - CA_SK(398, "Saskatchewan", ParentTerritory.CAN), - CA_MB(399, "Manitoba", ParentTerritory.CAN), - CA_NL(400, "Newfoundland", ParentTerritory.CAN), - CA_NB(401, "New Brunswick", ParentTerritory.CAN), - CA_NS(402, "Nova Scotia", ParentTerritory.CAN), - CA_PE(403, "Prince Edward Island", ParentTerritory.CAN), - CA_YT(404, "Yukon", ParentTerritory.CAN), - CA_NT(405, "Northwest Territories", ParentTerritory.CAN), - CA_NU(406, "Nunavut", ParentTerritory.CAN), - RU_MOW(412, "Moscow", ParentTerritory.RUS), - RU_SPE(413, "Saint Petersburg", ParentTerritory.RUS), - RU_KGD(414, "Kaliningrad Oblast", ParentTerritory.RUS), - RU_IN(415, "Ingushetia Republic", ParentTerritory.RUS), - RU_AD(416, "Adygea Republic", ParentTerritory.RUS), - RU_SE(417, "North Ossetia-Alania Republic", ParentTerritory.RUS), - RU_KB(418, "Kabardino-Balkar Republic", ParentTerritory.RUS), - RU_KC(419, "Karachay-Cherkess Republic", ParentTerritory.RUS), - RU_CE(420, "Chechen Republic", ParentTerritory.RUS), - RU_CU(421, "Chuvash Republic", ParentTerritory.RUS), - RU_IVA(422, "Ivanovo Oblast", ParentTerritory.RUS), - RU_LIP(423, "Lipetsk Oblast", ParentTerritory.RUS), - RU_ORL(424, "Oryol Oblast", ParentTerritory.RUS), - RU_TUL(425, "Tula Oblast", ParentTerritory.RUS), - RU_BE(426, "Belgorod Oblast", ParentTerritory.RUS, new String[]{"RU-BEL"}), - RU_VLA(427, "Vladimir Oblast", ParentTerritory.RUS), - RU_KRS(428, "Kursk Oblast", ParentTerritory.RUS), - RU_KLU(429, "Kaluga Oblast", ParentTerritory.RUS), - RU_TT(430, "Tambov Oblast", ParentTerritory.RUS, new String[]{"RU-TAM"}), - RU_BRY(431, "Bryansk Oblast", ParentTerritory.RUS), - RU_YAR(432, "Yaroslavl Oblast", ParentTerritory.RUS), - RU_RYA(433, "Ryazan Oblast", ParentTerritory.RUS), - RU_AST(434, "Astrakhan Oblast", ParentTerritory.RUS), - RU_MOS(435, "Moscow Oblast", ParentTerritory.RUS), - RU_SMO(436, "Smolensk Oblast", ParentTerritory.RUS), - RU_DA(437, "Dagestan Republic", ParentTerritory.RUS), - RU_VOR(438, "Voronezh Oblast", ParentTerritory.RUS), - RU_NGR(439, "Novgorod Oblast", ParentTerritory.RUS), - RU_PSK(440, "Pskov Oblast", ParentTerritory.RUS), - RU_KOS(441, "Kostroma Oblast", ParentTerritory.RUS), - RU_STA(442, "Stavropol Krai", ParentTerritory.RUS), - RU_KDA(443, "Krasnodar Krai", ParentTerritory.RUS), - RU_KL(444, "Kalmykia Republic", ParentTerritory.RUS), - RU_TVE(445, "Tver Oblast", ParentTerritory.RUS), - RU_LEN(446, "Leningrad Oblast", ParentTerritory.RUS), - RU_ROS(447, "Rostov Oblast", ParentTerritory.RUS), - RU_VGG(448, "Volgograd Oblast", ParentTerritory.RUS), - RU_VLG(449, "Vologda Oblast", ParentTerritory.RUS), - RU_MUR(450, "Murmansk Oblast", ParentTerritory.RUS), - RU_KR(451, "Karelia Republic", ParentTerritory.RUS), - RU_NEN(452, "Nenets Autonomous Okrug", ParentTerritory.RUS), - RU_KO(453, "Komi Republic", ParentTerritory.RUS), - RU_ARK(454, "Arkhangelsk Oblast", ParentTerritory.RUS), - RU_MO(455, "Mordovia Republic", ParentTerritory.RUS), - RU_NIZ(456, "Nizhny Novgorod Oblast", ParentTerritory.RUS), - RU_PNZ(457, "Penza Oblast", ParentTerritory.RUS), - RU_KI(458, "Kirov Oblast", ParentTerritory.RUS, new String[]{"RU-KIR"}), - RU_ME(459, "Mari El Republic", ParentTerritory.RUS), - RU_ORE(460, "Orenburg Oblast", ParentTerritory.RUS), - RU_ULY(461, "Ulyanovsk Oblast", ParentTerritory.RUS), - RU_PM(462, "Perm Krai", ParentTerritory.RUS, new String[]{"RU-PER"}), - RU_BA(463, "Bashkortostan Republic", ParentTerritory.RUS), - RU_UD(464, "Udmurt Republic", ParentTerritory.RUS), - RU_TA(465, "Tatarstan Republic", ParentTerritory.RUS), - RU_SAM(466, "Samara Oblast", ParentTerritory.RUS), - RU_SAR(467, "Saratov Oblast", ParentTerritory.RUS), - RU_YAN(468, "Yamalo-Nenets", ParentTerritory.RUS), - RU_KM(469, "Khanty-Mansi", ParentTerritory.RUS, new String[]{"RU-KHM"}), - RU_SVE(470, "Sverdlovsk Oblast", ParentTerritory.RUS), - RU_TYU(471, "Tyumen Oblast", ParentTerritory.RUS), - RU_KGN(472, "Kurgan Oblast", ParentTerritory.RUS), - RU_CH(473, "Chelyabinsk Oblast", ParentTerritory.RUS, new String[]{"RU-CHE"}), - RU_BU(474, "Buryatia Republic", ParentTerritory.RUS), - RU_ZAB(475, "Zabaykalsky Krai", ParentTerritory.RUS), - RU_IRK(476, "Irkutsk Oblast", ParentTerritory.RUS), - RU_NVS(477, "Novosibirsk Oblast", ParentTerritory.RUS), - RU_TOM(478, "Tomsk Oblast", ParentTerritory.RUS), - RU_OMS(479, "Omsk Oblast", ParentTerritory.RUS), - RU_KK(480, "Khakassia Republic", ParentTerritory.RUS), - RU_KEM(481, "Kemerovo Oblast", ParentTerritory.RUS), - RU_AL(482, "Altai Republic", ParentTerritory.RUS), - RU_ALT(483, "Altai Krai", ParentTerritory.RUS), - RU_TY(484, "Tuva Republic", ParentTerritory.RUS), - RU_KYA(485, "Krasnoyarsk Krai", ParentTerritory.RUS), - RU_MAG(486, "Magadan Oblast", ParentTerritory.RUS), - RU_CHU(487, "Chukotka Okrug", ParentTerritory.RUS), - RU_KAM(488, "Kamchatka Krai", ParentTerritory.RUS), - RU_SAK(489, "Sakhalin Oblast", ParentTerritory.RUS), - RU_PO(490, "Primorsky Krai", ParentTerritory.RUS, new String[]{"RU-PRI"}), - RU_YEV(491, "Jewish Autonomous Oblast", ParentTerritory.RUS), - RU_KHA(492, "Khabarovsk Krai", ParentTerritory.RUS), - RU_AMU(493, "Amur Oblast", ParentTerritory.RUS), - RU_SA(494, "Sakha Republic", ParentTerritory.RUS, null, new String[]{"Yakutia Republic"}), - CN_SH(497, "Shanghai", ParentTerritory.CHN, new String[]{"CN-31"}), - CN_TJ(498, "Tianjin", ParentTerritory.CHN, new String[]{"CN-12"}), - CN_BJ(499, "Beijing", ParentTerritory.CHN, new String[]{"CN-11"}), - CN_HI(500, "Hainan", ParentTerritory.CHN, new String[]{"CN-46"}), - CN_NX(501, "Ningxia Hui", ParentTerritory.CHN, new String[]{"CN-64"}), - CN_CQ(502, "Chongqing", ParentTerritory.CHN, new String[]{"CN-50"}), - CN_ZJ(503, "Zhejiang", ParentTerritory.CHN, new String[]{"CN-33"}), - CN_JS(504, "Jiangsu", ParentTerritory.CHN, new String[]{"CN-32"}), - CN_FJ(505, "Fujian", ParentTerritory.CHN, new String[]{"CN-35"}), - CN_AH(506, "Anhui", ParentTerritory.CHN, new String[]{"CN-34"}), - CN_LN(507, "Liaoning", ParentTerritory.CHN, new String[]{"CN-21"}), - CN_SD(508, "Shandong", ParentTerritory.CHN, new String[]{"CN-37"}), - CN_SX(509, "Shanxi", ParentTerritory.CHN, new String[]{"CN-14"}), - CN_JX(510, "Jiangxi", ParentTerritory.CHN, new String[]{"CN-36"}), - CN_HA(511, "Henan", ParentTerritory.CHN, new String[]{"CN-41"}), - CN_GZ(512, "Guizhou", ParentTerritory.CHN, new String[]{"CN-52"}), - CN_GD(513, "Guangdong", ParentTerritory.CHN, new String[]{"CN-44"}), - CN_HB(514, "Hubei", ParentTerritory.CHN, new String[]{"CN-42"}), - CN_JL(515, "Jilin", ParentTerritory.CHN, new String[]{"CN-22"}), - CN_HE(516, "Hebei", ParentTerritory.CHN, new String[]{"CN-13"}), - CN_SN(517, "Shaanxi", ParentTerritory.CHN, new String[]{"CN-61"}), - CN_NM(518, "Nei Mongol", ParentTerritory.CHN, new String[]{"CN-15"}, new String[]{"Inner Mongolia"}), - CN_HL(519, "Heilongjiang", ParentTerritory.CHN, new String[]{"CN-23"}), - CN_HN(520, "Hunan", ParentTerritory.CHN, new String[]{"CN-43"}), - CN_GX(521, "Guangxi Zhuang", ParentTerritory.CHN, new String[]{"CN-45"}), - CN_SC(522, "Sichuan", ParentTerritory.CHN, new String[]{"CN-51"}), - CN_YN(523, "Yunnan", ParentTerritory.CHN, new String[]{"CN-53"}), - CN_XZ(524, "Xizang", ParentTerritory.CHN, new String[]{"CN-54"}, new String[]{"Tibet"}), - CN_GS(525, "Gansu", ParentTerritory.CHN, new String[]{"CN-62"}), - CN_QH(526, "Qinghai", ParentTerritory.CHN, new String[]{"CN-63"}), - CN_XJ(527, "Xinjiang Uyghur", ParentTerritory.CHN, new String[]{"CN-65"}), + IN_DD(271, "Daman and Diu", IND), + IN_DN(272, "Dadra and Nagar Haveli", IND), + IN_CH(273, "Chandigarh", IND), + IN_AN(274, "Andaman and Nicobar", IND), + IN_LD(275, "Lakshadweep", IND), + IN_DL(276, "Delhi", IND), + IN_ML(277, "Meghalaya", IND), + IN_NL(278, "Nagaland", IND), + IN_MN(279, "Manipur", IND), + IN_TR(280, "Tripura", IND), + IN_MZ(281, "Mizoram", IND), + IN_SK(282, "Sikkim", IND), + IN_PB(283, "Punjab", IND), + IN_HR(284, "Haryana", IND), + IN_AR(285, "Arunachal Pradesh", IND), + IN_AS(286, "Assam", IND), + IN_BR(287, "Bihar", IND), + IN_UT(288, "Uttarakhand", IND, new String[]{"IN-UK"}), + IN_GA(289, "Goa", IND), + IN_KL(290, "Kerala", IND), + IN_TN(291, "Tamil Nadu", IND), + IN_HP(292, "Himachal Pradesh", IND), + IN_JK(293, "Jammu and Kashmir", IND), + IN_CT(294, "Chhattisgarh", IND, new String[]{"IN-CG"}), + IN_JH(295, "Jharkhand", IND), + IN_KA(296, "Karnataka", IND), + IN_RJ(297, "Rajasthan", IND), + IN_OR(298, "Odisha", IND, new String[]{"IN-OD"}, new String[]{"Orissa"}), + IN_GJ(299, "Gujarat", IND), + IN_WB(300, "West Bengal", IND), + IN_MP(301, "Madhya Pradesh", IND), + IN_TG(302, "Telangana", IND), + IN_AP(303, "Andhra Pradesh", IND), + IN_MH(304, "Maharashtra", IND), + IN_UP(305, "Uttar Pradesh", IND), + IN_PY(306, "Puducherry", IND), + AU_NSW(307, "New South Wales", AUS), + AU_ACT(308, "Australian Capital Territory", AUS), + AU_JBT(309, "Jervis Bay Territory", AUS), + AU_NT(310, "Northern Territory", AUS), + AU_SA(311, "South Australia", AUS), + AU_TAS(312, "Tasmania", AUS), + AU_VIC(313, "Victoria", AUS), + AU_WA(314, "Western Australia", AUS), + AU_QLD(315, "Queensland", AUS), + BR_DF(316, "Distrito Federal", BRA), + BR_SE(317, "Sergipe", BRA), + BR_AL(318, "Alagoas", BRA), + BR_RJ(319, "Rio de Janeiro", BRA), + BR_ES(320, "Espirito Santo", BRA), + BR_RN(321, "Rio Grande do Norte", BRA), + BR_PB(322, "Paraiba", BRA), + BR_SC(323, "Santa Catarina", BRA), + BR_PE(324, "Pernambuco", BRA), + BR_AP(325, "Amapa", BRA), + BR_CE(326, "Ceara", BRA), + BR_AC(327, "Acre", BRA), + BR_PR(328, "Parana", BRA), + BR_RR(329, "Roraima", BRA), + BR_RO(330, "Rondonia", BRA), + BR_SP(331, "Sao Paulo", BRA), + BR_PI(332, "Piaui", BRA), + BR_TO(333, "Tocantins", BRA), + BR_RS(334, "Rio Grande do Sul", BRA), + BR_MA(335, "Maranhao", BRA), + BR_GO(336, "Goias", BRA), + BR_MS(337, "Mato Grosso do Sul", BRA), + BR_BA(338, "Bahia", BRA), + BR_MG(339, "Minas Gerais", BRA), + BR_MT(340, "Mato Grosso", BRA), + BR_PA(341, "Para", BRA), + BR_AM(342, "Amazonas", BRA), + US_DC(343, "District of Columbia", USA), + US_RI(344, "Rhode Island", USA), + US_DE(345, "Delaware", USA), + US_CT(346, "Connecticut", USA), + US_NJ(347, "New Jersey", USA), + US_NH(348, "New Hampshire", USA), + US_VT(349, "Vermont", USA), + US_MA(350, "Massachusetts", USA), + US_HI(351, "Hawaii", USA, new String[]{"US-MID"}), + US_MD(352, "Maryland", USA), + US_WV(353, "West Virginia", USA), + US_SC(354, "South Carolina", USA), + US_ME(355, "Maine", USA), + US_IN(356, "Indiana", USA), + US_KY(357, "Kentucky", USA), + US_TN(358, "Tennessee", USA), + US_VA(359, "Virginia", USA), + US_OH(360, "Ohio", USA), + US_PA(361, "Pennsylvania", USA), + US_MS(362, "Mississippi", USA), + US_LA(363, "Louisiana", USA), + US_AL(364, "Alabama", USA), + US_AR(365, "Arkansas", USA), + US_NC(366, "North Carolina", USA), + US_NY(367, "New York", USA), + US_IA(368, "Iowa", USA), + US_IL(369, "Illinois", USA), + US_GA(370, "Georgia", USA), + US_WI(371, "Wisconsin", USA), + US_FL(372, "Florida", USA), + US_MO(373, "Missouri", USA), + US_OK(374, "Oklahoma", USA), + US_ND(375, "North Dakota", USA), + US_WA(376, "Washington", USA), + US_SD(377, "South Dakota", USA), + US_NE(378, "Nebraska", USA), + US_KS(379, "Kansas", USA), + US_ID(380, "Idaho", USA), + US_UT(381, "Utah", USA), + US_MN(382, "Minnesota", USA), + US_MI(383, "Michigan", USA), + US_WY(384, "Wyoming", USA), + US_OR(385, "Oregon", USA), + US_CO(386, "Colorado", USA), + US_NV(387, "Nevada", USA), + US_AZ(388, "Arizona", USA), + US_NM(389, "New Mexico", USA), + US_MT(390, "Montana", USA), + US_CA(391, "California", USA), + US_TX(392, "Texas", USA), + US_AK(393, "Alaska", USA), + CA_BC(394, "British Columbia", CAN), + CA_AB(395, "Alberta", CAN), + CA_ON(396, "Ontario", CAN), + CA_QC(397, "Quebec", CAN), + CA_SK(398, "Saskatchewan", CAN), + CA_MB(399, "Manitoba", CAN), + CA_NL(400, "Newfoundland", CAN), + CA_NB(401, "New Brunswick", CAN), + CA_NS(402, "Nova Scotia", CAN), + CA_PE(403, "Prince Edward Island", CAN), + CA_YT(404, "Yukon", CAN), + CA_NT(405, "Northwest Territories", CAN), + CA_NU(406, "Nunavut", CAN), + RU_MOW(412, "Moscow", RUS), + RU_SPE(413, "Saint Petersburg", RUS), + RU_KGD(414, "Kaliningrad Oblast", RUS), + RU_IN(415, "Ingushetia Republic", RUS), + RU_AD(416, "Adygea Republic", RUS), + RU_SE(417, "North Ossetia-Alania Republic", RUS), + RU_KB(418, "Kabardino-Balkar Republic", RUS), + RU_KC(419, "Karachay-Cherkess Republic", RUS), + RU_CE(420, "Chechen Republic", RUS), + RU_CU(421, "Chuvash Republic", RUS), + RU_IVA(422, "Ivanovo Oblast", RUS), + RU_LIP(423, "Lipetsk Oblast", RUS), + RU_ORL(424, "Oryol Oblast", RUS), + RU_TUL(425, "Tula Oblast", RUS), + RU_BE(426, "Belgorod Oblast", RUS, new String[]{"RU-BEL"}), + RU_VLA(427, "Vladimir Oblast", RUS), + RU_KRS(428, "Kursk Oblast", RUS), + RU_KLU(429, "Kaluga Oblast", RUS), + RU_TT(430, "Tambov Oblast", RUS, new String[]{"RU-TAM"}), + RU_BRY(431, "Bryansk Oblast", RUS), + RU_YAR(432, "Yaroslavl Oblast", RUS), + RU_RYA(433, "Ryazan Oblast", RUS), + RU_AST(434, "Astrakhan Oblast", RUS), + RU_MOS(435, "Moscow Oblast", RUS), + RU_SMO(436, "Smolensk Oblast", RUS), + RU_DA(437, "Dagestan Republic", RUS), + RU_VOR(438, "Voronezh Oblast", RUS), + RU_NGR(439, "Novgorod Oblast", RUS), + RU_PSK(440, "Pskov Oblast", RUS), + RU_KOS(441, "Kostroma Oblast", RUS), + RU_STA(442, "Stavropol Krai", RUS), + RU_KDA(443, "Krasnodar Krai", RUS), + RU_KL(444, "Kalmykia Republic", RUS), + RU_TVE(445, "Tver Oblast", RUS), + RU_LEN(446, "Leningrad Oblast", RUS), + RU_ROS(447, "Rostov Oblast", RUS), + RU_VGG(448, "Volgograd Oblast", RUS), + RU_VLG(449, "Vologda Oblast", RUS), + RU_MUR(450, "Murmansk Oblast", RUS), + RU_KR(451, "Karelia Republic", RUS), + RU_NEN(452, "Nenets Autonomous Okrug", RUS), + RU_KO(453, "Komi Republic", RUS), + RU_ARK(454, "Arkhangelsk Oblast", RUS), + RU_MO(455, "Mordovia Republic", RUS), + RU_NIZ(456, "Nizhny Novgorod Oblast", RUS), + RU_PNZ(457, "Penza Oblast", RUS), + RU_KI(458, "Kirov Oblast", RUS, new String[]{"RU-KIR"}), + RU_ME(459, "Mari El Republic", RUS), + RU_ORE(460, "Orenburg Oblast", RUS), + RU_ULY(461, "Ulyanovsk Oblast", RUS), + RU_PM(462, "Perm Krai", RUS, new String[]{"RU-PER"}), + RU_BA(463, "Bashkortostan Republic", RUS), + RU_UD(464, "Udmurt Republic", RUS), + RU_TA(465, "Tatarstan Republic", RUS), + RU_SAM(466, "Samara Oblast", RUS), + RU_SAR(467, "Saratov Oblast", RUS), + RU_YAN(468, "Yamalo-Nenets", RUS), + RU_KM(469, "Khanty-Mansi", RUS, new String[]{"RU-KHM"}), + RU_SVE(470, "Sverdlovsk Oblast", RUS), + RU_TYU(471, "Tyumen Oblast", RUS), + RU_KGN(472, "Kurgan Oblast", RUS), + RU_CH(473, "Chelyabinsk Oblast", RUS, new String[]{"RU-CHE"}), + RU_BU(474, "Buryatia Republic", RUS), + RU_ZAB(475, "Zabaykalsky Krai", RUS), + RU_IRK(476, "Irkutsk Oblast", RUS), + RU_NVS(477, "Novosibirsk Oblast", RUS), + RU_TOM(478, "Tomsk Oblast", RUS), + RU_OMS(479, "Omsk Oblast", RUS), + RU_KK(480, "Khakassia Republic", RUS), + RU_KEM(481, "Kemerovo Oblast", RUS), + RU_AL(482, "Altai Republic", RUS), + RU_ALT(483, "Altai Krai", RUS), + RU_TY(484, "Tuva Republic", RUS), + RU_KYA(485, "Krasnoyarsk Krai", RUS), + RU_MAG(486, "Magadan Oblast", RUS), + RU_CHU(487, "Chukotka Okrug", RUS), + RU_KAM(488, "Kamchatka Krai", RUS), + RU_SAK(489, "Sakhalin Oblast", RUS), + RU_PO(490, "Primorsky Krai", RUS, new String[]{"RU-PRI"}), + RU_YEV(491, "Jewish Autonomous Oblast", RUS), + RU_KHA(492, "Khabarovsk Krai", RUS), + RU_AMU(493, "Amur Oblast", RUS), + RU_SA(494, "Sakha Republic", RUS, null, new String[]{"Yakutia Republic"}), + CN_SH(497, "Shanghai", CHN, new String[]{"CN-31"}), + CN_TJ(498, "Tianjin", CHN, new String[]{"CN-12"}), + CN_BJ(499, "Beijing", CHN, new String[]{"CN-11"}), + CN_HI(500, "Hainan", CHN, new String[]{"CN-46"}), + CN_NX(501, "Ningxia Hui", CHN, new String[]{"CN-64"}), + CN_CQ(502, "Chongqing", CHN, new String[]{"CN-50"}), + CN_ZJ(503, "Zhejiang", CHN, new String[]{"CN-33"}), + CN_JS(504, "Jiangsu", CHN, new String[]{"CN-32"}), + CN_FJ(505, "Fujian", CHN, new String[]{"CN-35"}), + CN_AH(506, "Anhui", CHN, new String[]{"CN-34"}), + CN_LN(507, "Liaoning", CHN, new String[]{"CN-21"}), + CN_SD(508, "Shandong", CHN, new String[]{"CN-37"}), + CN_SX(509, "Shanxi", CHN, new String[]{"CN-14"}), + CN_JX(510, "Jiangxi", CHN, new String[]{"CN-36"}), + CN_HA(511, "Henan", CHN, new String[]{"CN-41"}), + CN_GZ(512, "Guizhou", CHN, new String[]{"CN-52"}), + CN_GD(513, "Guangdong", CHN, new String[]{"CN-44"}), + CN_HB(514, "Hubei", CHN, new String[]{"CN-42"}), + CN_JL(515, "Jilin", CHN, new String[]{"CN-22"}), + CN_HE(516, "Hebei", CHN, new String[]{"CN-13"}), + CN_SN(517, "Shaanxi", CHN, new String[]{"CN-61"}), + CN_NM(518, "Nei Mongol", CHN, new String[]{"CN-15"}, new String[]{"Inner Mongolia"}), + CN_HL(519, "Heilongjiang", CHN, new String[]{"CN-23"}), + CN_HN(520, "Hunan", CHN, new String[]{"CN-43"}), + CN_GX(521, "Guangxi Zhuang", CHN, new String[]{"CN-45"}), + CN_SC(522, "Sichuan", CHN, new String[]{"CN-51"}), + CN_YN(523, "Yunnan", CHN, new String[]{"CN-53"}), + CN_XZ(524, "Xizang", CHN, new String[]{"CN-54"}, new String[]{"Tibet"}), + CN_GS(525, "Gansu", CHN, new String[]{"CN-62"}), + CN_QH(526, "Qinghai", CHN, new String[]{"CN-63"}), + CN_XJ(527, "Xinjiang Uyghur", CHN, new String[]{"CN-65"}), UMI(529, "United States Minor Outlying Islands", null, new String[]{"US-UM", "USA-UM", "JTN"}), CPT(530, "Clipperton Island"), AAA(532, "International", null, null, new String[]{"Worldwide", "Earth"}); + @Nonnull + public static final Set PARENT_TERRITORIES = Collections.unmodifiableSet( + EnumSet.of(USA, IND, CAN, AUS, MEX, BRA, RUS, CHN, ATA)); + private final int number; @Nonnull private final String fullName; @@ -680,9 +684,12 @@ public static Territory fromString(@Nonnull final String alphaCode) throws Unkno @Nonnull public static Territory fromString( @Nonnull final String alphaCode, - @Nonnull final ParentTerritory parentTerritory) throws UnknownTerritoryException { + @Nonnull final Territory parentTerritory) throws UnknownTerritoryException { checkNonnull("alphaCode", alphaCode); checkNonnull("parentTerritory", parentTerritory); + if (!PARENT_TERRITORIES.contains(parentTerritory)) { + throw new IllegalArgumentException("Parameter " + parentTerritory + " is not a parent territory"); + } return createFromString(alphaCode, parentTerritory); } @@ -785,14 +792,14 @@ private Territory( private Territory( final int number, @Nonnull final String fullName, - @Nullable final ParentTerritory parentTerritory) { + @Nullable final Territory parentTerritory) { this(number, fullName, parentTerritory, null, null); } private Territory( final int number, @Nonnull final String fullName, - @Nullable final ParentTerritory parentTerritory, + @Nullable final Territory parentTerritory, @Nullable final String[] aliases) { this(number, fullName, parentTerritory, aliases, null); } @@ -800,12 +807,12 @@ private Territory( private Territory( final int number, @Nonnull final String fullName, - @Nullable final ParentTerritory parentTerritory, + @Nullable final Territory parentTerritory, @Nullable final String[] aliases, @Nullable final String[] fullNameAliases) { this.number = number; this.fullName = fullName; - this.parentTerritory = (parentTerritory == null) ? null : parentTerritory.getTerritory(); + this.parentTerritory = parentTerritory; this.aliases = (aliases == null) ? new String[]{} : aliases; this.fullNameAliases = (fullNameAliases == null) ? new String[]{} : fullNameAliases; } @@ -898,7 +905,7 @@ private Territory( @Nonnull private static Territory createFromString( @Nonnull final String alphaCode, - @Nullable final ParentTerritory parentTerritory) throws UnknownTerritoryException { + @Nullable final Territory parentTerritory) throws UnknownTerritoryException { final String trimmed = Mapcode.convertStringToPlainAscii(alphaCode.trim().replace('_', '-')).toUpperCase(); // Try as alpha code. @@ -907,9 +914,8 @@ private static Territory createFromString( if (parentTerritory == null) { return territories.get(0); } - final Territory actualParentTerritory = parentTerritory.getTerritory(); for (final Territory territory : territories) { - if (territory.getParentTerritory() == actualParentTerritory) { + if (territory.getParentTerritory() == parentTerritory) { return territory; } } diff --git a/src/site/apt/ReleaseNotes.apt.vm b/src/site/apt/ReleaseNotes.apt.vm index 00d6968..a1ee1ef 100755 --- a/src/site/apt/ReleaseNotes.apt.vm +++ b/src/site/apt/ReleaseNotes.apt.vm @@ -15,6 +15,8 @@ Release Notes (Version ${project.version}) * Removed public microdegree references from <<>> class. + * Removed <<>> class. + [] * 2.0.1 diff --git a/src/test/java/com/mapcode/TerritoryTest.java b/src/test/java/com/mapcode/TerritoryTest.java index 102078e..bb98b75 100644 --- a/src/test/java/com/mapcode/TerritoryTest.java +++ b/src/test/java/com/mapcode/TerritoryTest.java @@ -59,8 +59,8 @@ public void disambiguateMNTest1() throws Exception { LOG.info("disambiguateMNTest2"); final Territory territory0 = Territory.fromString("IND-MN"); final Territory territory1 = Territory.fromString("IN-MN"); - final Territory territory2 = Territory.fromString("MN", ParentTerritory.IND); - final Territory territory3 = Territory.fromString("MN", ParentTerritory.USA); + final Territory territory2 = Territory.fromString("MN", Territory.IND); + final Territory territory3 = Territory.fromString("MN", Territory.USA); assertEquals(territory0, territory1); assertEquals(territory1, territory2); assertNotEquals(territory2, territory3); @@ -69,7 +69,7 @@ public void disambiguateMNTest1() throws Exception { @Test(expected = UnknownTerritoryException.class) public void disambiguateMNTest2() throws Exception { LOG.info("disambiguateMNTest2"); - Territory.fromString("MN", ParentTerritory.RUS); + Territory.fromString("MN", Territory.RUS); } @Test From 6cc713e9178fb83bb1fb4a09324b71ef74517ad4 Mon Sep 17 00:00:00 2001 From: Rijn Buve Date: Thu, 6 Aug 2015 12:59:07 +0200 Subject: [PATCH 5/5] Updated release notes --- src/site/apt/ReleaseNotes.apt.vm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/site/apt/ReleaseNotes.apt.vm b/src/site/apt/ReleaseNotes.apt.vm index a1ee1ef..0322586 100755 --- a/src/site/apt/ReleaseNotes.apt.vm +++ b/src/site/apt/ReleaseNotes.apt.vm @@ -13,7 +13,7 @@ Release Notes (Version ${project.version}) * Renamed <<>> to <<>>. - * Removed public microdegree references from <<>> class. + * Removed public microdegree references from <<>> class. Everything is degrees now. * Removed <<>> class.