diff --git a/java/build.xml b/java/build.xml index baceb903d..01a19dbd3 100644 --- a/java/build.xml +++ b/java/build.xml @@ -41,6 +41,20 @@ + + + + + + + + + + + + + + diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumbersRegionCodeSet.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumbersRegionCodeSet.java new file mode 100644 index 000000000..252b4f699 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumbersRegionCodeSet.java @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2013 The Libphonenumber Authors + * + * 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. + */ + +/* This file is automatically generated by {@link BuildMetadataProtoFromXml}. + * Please don't modify it directly. + */ + +package com.google.i18n.phonenumbers; + +import java.util.HashSet; +import java.util.Set; + +public class ShortNumbersRegionCodeSet { + // A set of all region codes for which data is available. + static Set getRegionCodeSet() { + // The capacity is set to 1 as there are 50 different entries, + // and this offers a load factor of roughly 0.75. + Set regionCodeSet = new HashSet(1); + + regionCodeSet.add("AM"); + regionCodeSet.add("AR"); + regionCodeSet.add("BD"); + regionCodeSet.add("CH"); + regionCodeSet.add("CR"); + regionCodeSet.add("CU"); + regionCodeSet.add("CZ"); + regionCodeSet.add("DE"); + regionCodeSet.add("EE"); + regionCodeSet.add("FR"); + regionCodeSet.add("FJ"); + regionCodeSet.add("FK"); + regionCodeSet.add("FO"); + regionCodeSet.add("GB"); + regionCodeSet.add("GG"); + regionCodeSet.add("GI"); + regionCodeSet.add("GT"); + regionCodeSet.add("GY"); + regionCodeSet.add("HT"); + regionCodeSet.add("IL"); + regionCodeSet.add("IM"); + regionCodeSet.add("IT"); + regionCodeSet.add("JE"); + regionCodeSet.add("JO"); + regionCodeSet.add("KE"); + regionCodeSet.add("KI"); + regionCodeSet.add("KW"); + regionCodeSet.add("LI"); + regionCodeSet.add("LU"); + regionCodeSet.add("MD"); + regionCodeSet.add("ME"); + regionCodeSet.add("MU"); + regionCodeSet.add("MV"); + regionCodeSet.add("MZ"); + regionCodeSet.add("NA"); + regionCodeSet.add("NC"); + regionCodeSet.add("NL"); + regionCodeSet.add("NR"); + regionCodeSet.add("PA"); + regionCodeSet.add("PY"); + regionCodeSet.add("QA"); + regionCodeSet.add("RS"); + regionCodeSet.add("SA"); + regionCodeSet.add("SB"); + regionCodeSet.add("SC"); + regionCodeSet.add("SG"); + regionCodeSet.add("SH"); + regionCodeSet.add("SR"); + regionCodeSet.add("TL"); + regionCodeSet.add("UY"); + + return regionCodeSet; + } +} diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AM b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AM new file mode 100644 index 000000000..0e9080ebe Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AM differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AR b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AR new file mode 100644 index 000000000..8d718a2c4 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AR differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BD b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BD new file mode 100644 index 000000000..503a8673b Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BD differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CH b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CH new file mode 100644 index 000000000..54eeec72d Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CH differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CR b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CR new file mode 100644 index 000000000..9334bdf9e Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CR differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CU b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CU new file mode 100644 index 000000000..8f7dc1437 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CU differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CZ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CZ new file mode 100644 index 000000000..19cafbd75 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CZ differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DE b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DE new file mode 100644 index 000000000..1e2f10e69 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DE differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EE b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EE new file mode 100644 index 000000000..d64301be5 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EE differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FJ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FJ new file mode 100644 index 000000000..82c8f1390 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FJ differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FK b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FK new file mode 100644 index 000000000..eaab36571 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FK differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FO b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FO new file mode 100644 index 000000000..1c3c5afbc Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FO differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FR b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FR new file mode 100644 index 000000000..e78665b99 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FR differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GB b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GB new file mode 100644 index 000000000..4c2c7e1d3 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GB differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GG b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GG new file mode 100644 index 000000000..a635fe5a6 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GG differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GI b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GI new file mode 100644 index 000000000..185a070fd Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GI differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GT b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GT new file mode 100644 index 000000000..27dd276c4 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GT differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GY b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GY new file mode 100644 index 000000000..f517d3c42 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GY differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HT b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HT new file mode 100644 index 000000000..87a12db25 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HT differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IL b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IL new file mode 100644 index 000000000..5eccf83f2 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IL differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IM b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IM new file mode 100644 index 000000000..787e2dbf8 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IM differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IT b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IT new file mode 100644 index 000000000..91a64f58f Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IT differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JE b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JE new file mode 100644 index 000000000..dc6507c00 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JE differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JO b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JO new file mode 100644 index 000000000..18a23c143 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JO differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KE b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KE new file mode 100644 index 000000000..45ed69684 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KE differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KI b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KI new file mode 100644 index 000000000..c38886829 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KI differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KW b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KW new file mode 100644 index 000000000..b6c6797f6 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KW differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LI b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LI new file mode 100644 index 000000000..4ef32694e Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LI differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LU b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LU new file mode 100644 index 000000000..81f1cab4f Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LU differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MD b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MD new file mode 100644 index 000000000..caedfc8bd Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MD differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ME b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ME new file mode 100644 index 000000000..e8fb198af Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ME differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MU b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MU new file mode 100644 index 000000000..93e5b4083 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MU differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MV b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MV new file mode 100644 index 000000000..5db0ae2ad Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MV differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MZ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MZ new file mode 100644 index 000000000..83e308ab8 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MZ differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NA b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NA new file mode 100644 index 000000000..97cce4a1f Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NA differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NC b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NC new file mode 100644 index 000000000..3fcc43c46 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NC differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NL b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NL new file mode 100644 index 000000000..059f8693b Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NL differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NR b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NR new file mode 100644 index 000000000..ab5e8e571 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NR differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PA b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PA new file mode 100644 index 000000000..209e03121 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PA differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PY b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PY new file mode 100644 index 000000000..2bda927b3 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PY differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_QA b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_QA new file mode 100644 index 000000000..2a22f6904 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_QA differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RS b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RS new file mode 100644 index 000000000..f0632f3dd Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RS differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SA b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SA new file mode 100644 index 000000000..bcdd70225 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SA differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SB b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SB new file mode 100644 index 000000000..24ae10c06 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SB differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SC b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SC new file mode 100644 index 000000000..15fbb6a55 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SC differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SG b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SG new file mode 100644 index 000000000..7377e188d Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SG differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SH b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SH new file mode 100644 index 000000000..1b799325f Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SH differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SR b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SR new file mode 100644 index 000000000..026114b9e Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SR differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TL b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TL new file mode 100644 index 000000000..769406d7d Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TL differ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UY b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UY new file mode 100644 index 000000000..4b6535eb7 Binary files /dev/null and b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UY differ diff --git a/resources/ShortNumberMetadata.xml b/resources/ShortNumberMetadata.xml new file mode 100644 index 000000000..2dff27851 --- /dev/null +++ b/resources/ShortNumberMetadata.xml @@ -0,0 +1,1301 @@ + + + + + + + + + + + + + + + + + + + + + +]> + + + + + + + [18]\d{2,3} + \d{3,4} + + + + 8[1-7]\d{2}| + 1(?: + 0[04-9]| + [1-9]\d + ) + + 8711 + + + + + + + 1\d{2} + \d{3} + + + + 1(?: + 0[2356]| + 1[02-5]| + 21 + ) + + 121 + + + + + + + 1\d{2,4} + \d{3,5} + + + + 1(?: + 0(?: + [39]| + 5(?: + 0\d| + [1-4] + )| + 6\d{2}| + 7[0-4]| + 8[0-29] + )| + 1[6-9]| + 2(?: + 2[0-5]| + [34] + )| + 3(?: + 1\d?| + 3\d| + 6[3-6] + )| + 4(?: + 0\d| + 1\d{2} + )| + 5[2-9] + ) + + 103 + + + + + + + + + + 1\d{2,5} + \d{3,6} + + + + + 1(?: + 0[78]\d{2}| + 1(?: + [278]| + 45| + 6(?: + 000| + 111 + ) + )| + 4(?: + [03457]| + 1[45] + )| + 6(?: + 00| + [1-46] + )| + 8(?: + 02| + 1[189]| + 50| + 7| + 8[08]| + 99 + ) + )| + [2-9]\d{2,4} + + 147 + + + + 14(?: + [0356]| + 1[45] + ) + + \d{3,4} + 140 + + + 116\d{3} + 116000 + + + + + + 543| + 83111 + + \d{3,5} + 543 + + + + 10[78]\d{2} + \d{5} + 10742 + + + 18\d{2} + \d{4} + 1818 + + + [2-9]\d{2,4} + \d{3,6} + 600 + + + 116\d{3} + \d{6} + 116000 + + + + + + + 1\d{3} + \d{4} + + + + + 1(?: + 0(?: + 00| + 15| + 2[2-4679] + )| + 1(?: + 1[0-35-9]| + 37| + [46]6| + 7[57]| + 8[79]| + 9[0-379] + )| + 2(?: + 00| + [12]2| + 34| + 55 + )| + 333| + 4(?: + 00| + 1[56] + )| + 5(?: + 15| + 5[15] + )| + 693| + 7(?: + 00| + 1[789]| + 2[02]| + [67]7 + )| + 975 + ) + + 1022 + + + + + + + 1\d{2,5} + \d{3,6} + + + + 1(?: + 1(?: + 6111| + 8 + )| + 40 + ) + + 140 + + + + + + + 1\d{3,5} + \d{4,6} + + + + 1(?: + 1(?: + 6\d{3}| + 8\d + )| + 2\d{2,3}| + 3\d{3,4}| + 4\d{3}| + 99 + ) + + 116123 + + + + + + + 1\d{2} + \d{3} + + + + 115 + 115 + + + + + + + 1\d{2} + \d{3} + + + + 1(?: + 1[13-9]| + [2-9]\d + ) + + 116 + + + + + + + + + + 1\d{1,5}| + 3\d{3,4}| + [4-8]\d{4} + + \d{2,6} + + + + + 1(?: + 0\d{2}| + 1(?: + [02459]| + 6000| + 8\d{3} + )| + [578] + )| + 3\d{3} + + 1010 + + + + + + 1(?: + 1(?: + [02459]| + 6\d{3}| + 8710 + )| + [578] + )| + 3[01]\d{2} + + 3010 + + + + 118777 + \d{6} + 118777 + + + + + (?: + 1(?: + 0| + 18( + [0-68]\d{3}| + 7(?: + 0\d| + 1[1-9]| + [2-9]\d + ) + ) + )| + 3[2-9]| + [4-8]\d{2} + )\d{2} + + \d{4,6} + 3200 + + + + 16\d{2} + \d{4} + 1600 + + + + 10\d{2} + \d{4} + 1012 + + + 118\d{3} + \d{6} + 118218 + + + 116\d{3} + \d{6} + 116000 + + + + [3-8]\d{4} + \d{5} + 30000 + + + + + + + [0-579]\d{1,2} + \d{2,3} + + + + + 0(?: + 04| + 1[34]| + 8[1-4] + )| + 1(?: + 0[1-3]| + [25]9 + )| + 2[289]| + 30| + [45]4| + 75| + 913 + + 22 + + + + + + + 1\d{2} + \d{3} + + + + 123 + + + + + + + 1\d{2,3} + \d{3,4} + + + + + 1(?: + 1[48]| + 4[124]\d| + 71\d| + 8[7-9]\d + ) + + 114 + + + + + + + [1-4679]\d{2,5} + \d{3,6} + + + + + 1(?: + 0[01]| + 1(?: + 1| + [68]\d{3} + )| + 2[123]| + 33| + 4(?: + 1| + 7\d + )| + 5\d| + 70\d| + 800\d| + 9[15] + )| + 2(?: + 02| + 2(?: + 02| + 11| + 2 + )| + 3(?: + 02| + 45 + )| + 425 + )| + 3[13]3| + 4(?: + 0[02]| + 35[01]| + 44[45]| + 5\d + )| + 650| + 789| + 901 + + 150 + + + + + + + 1\d{2,5} + \d{3,6} + + + + + 1(?: + 0[01]| + 1(?: + 1| + [68]\d{3} + )| + 23| + 4(?: + 1| + 7\d + )| + 55| + 800\d| + 95 + ) + + 155 + + + + + + + [18]\d{2,5} + \d{3,6} + + + + 1(?: + 00| + 1(?: + 6(?: + 00[06]| + 11[17] + )| + 8\d{2} + )| + 23| + 4(?: + 1| + 7[014] + )| + 5[015]| + 9[34] + )| + 8(?: + 00| + 4[0-2]| + 8\d + ) + + 116000 + + + + + + + 1\d{2,3} + \d{3,4} + + + + 1(?: + 10| + 2\d| + [57]\d{2} + ) + + 123 + + + + + + + 0\d{2,3} + \d{3,4} + + + + 0(?: + 02| + 171| + 444| + 7[67]7| + 801| + 9(?: + 0[78]| + [2-47] + ) + ) + + 0801 + + + + + + + 1\d{2} + \d{3} + + + 114 + + + + + + + 1\d{3} + \d{4} + + + 1455 + + + + + + + 1\d{2,5} + \d{3,6} + + + 1\d{2}(?:\d{3})? + 150 + + + + + + + 1\d{2,5} + \d{3,6} + + + + + 1(?: + 1(?: + [47]| + 6\d{3} + )| + 2\d{2}| + 4(?: + 82| + 9\d{1,3} + )| + 5(?: + 00| + 1[58]| + 2[25]| + 3[03]| + 44 + )| + 86| + 9(?: + 2(?: + [01]\d{2}| + [2-9]\d + )| + 4\d| + 696 + ) + ) + + 114 + + + + + + + [12]\d{2,5} + \d{3,6} + + + + + 1(?: + 00| + 18\d{3}| + 23| + 4(?: + [14]| + 28| + 7\d + )| + 5\d| + 7(?: + 0[12]| + [128]| + 35? + )| + 808| + 9[135] + )| + 23[234] + + 150 + + + + + + + 1\d{2} + \d{3} + + + + 1(?: + 09| + 1[01]| + 9[024-79] + ) + + 111 + + + + + + + 1\d{2,3} + \d{3,4} + + + + + 1(?: + 0[09]| + 1(?: + [06]| + 9[0-2579] + )| + 2[13]| + 3[01] + ) + + 116 + + + + + + + 1\d{2,3} + \d{3,4} + + + + 10(?: + [0-8]| + 5[01259] + ) + + 100 + + + + + + + 1\d{2} + \d{3} + + + + 1(?: + [02-9]\d| + 1[013-9] + ) + + 177 + + + + + + + 1\d{2,3} + \d{3,4} + + + + 1(?: + 145| + 4(?: + [0357]| + 14 + )| + 50\d{4}| + 6(?: + 00| + [1-4] + )| + 75| + 8(?: + 1[128]| + 7 + ) + ) + + 1600 + + + + + + + 12\d{3} + \d{5} + + + 12123 + + + + + + + 1\d{2,5} + \d{3,6} + + + + 1(?: + 1(?: + [79]| + 6(?: + 000| + 1(?: + 11| + 23 + ) + )| + 8\d + )| + 4\d{3}| + 5[0-3]\d| + 6[0-389]\d| + 8\d{2}| + 9(?: + 0[04-9]| + [1-4]\d + ) + ) + + 116000 + + + + + + + 1\d{2,5} + \d{3,6} + + + + 1(?: + 16\d{3}| + 2(?: + [015-9]| + \d{2} + )| + [0135]\d{2}| + 4\d{2,3}| + 9\d{3} + ) + + 1011 + + + + + + + [189]\d{2,4} + \d{3,5} + + + + 1\d{2,4}| + 8\d{3}| + 99\d + + 995 + + + + + + + 1\d{2} + \d{3} + + + + 1(?: + [19]0| + 23 + ) + + 123 + + + + + + + 1\d{3} + \d{4} + + + 1[02-5]\d{2} + 1011 + + + + + + + [19]\d{2,4} + \d{3,5} + + + + 1\d{3}| + 9(?: + 3111| + \d{2} + ) + + 93111 + + + + + + + 1\d{3} + \d{4} + + + + + 10(?: + 0[06]| + 1[02-46]| + 20| + 3[0125]| + 42| + 5[058]| + 77 + ) + + 1000 + + + + + + + 18\d{2} + \d{4} + + + 1833 + + + + + + + 1\d{2} + \d{3} + + + + 1(?: + 1[0-2]| + 23| + 92 + ) + + 110 + + + + + + + 10[2-4] + \d{3} + + + 102 + + + + + + + 1[1-4]\d + \d{3} + + + 123 + + + + + + + [129]\d{2,4} + \d{3,5} + + + + (?: + 1| + 20| + 9[27]\d + )\d{2} + + 2012 + + + + + + + 1\d{2,5} + \d{3,6} + + + + 1[189]\d{1,4}| + 9[234] + + 112 + + + + + + + [19]\d{2,5} + \d{3,6} + + + + 1(?: + 16111| + 9(?: + 00| + 1[89]| + 9(?: + 099| + 22| + 91 + ) + ) + )| + 9( + 37| + 8[6-8]| + 9[2-6] + ) + + 937 + + + + + + + [19]\d{2} + \d{3} + + + + 1(?: + 0[02-79]| + 1[12]| + 2[0-26]| + 4[189]| + 68 + )| + 9(?: + [01]1| + 22| + 33| + 55| + 77| + 88 + ) + + 100 + + + + + + + [19]\d{2,3} + \d{3,4} + + + + 1(?: + 0\d| + 1[027]| + 2[0-8]| + 3[13]| + 4[0-2]| + [59][15]| + 6[1-9]| + 7[124-6]| + 8[158] + )| + 96\d{2} + + 100 + + + + + + + [19]\d{2,4} + \d{3,5} + + + + 1(?: + [0136]\d{2}| + [89](?: + [1-9]\d| + 0[1-9] + )| + [57]\d{2,3})| + 99[0246-8] + + 1312 + + + + + + + 1\d{2,3} + \d{3,4} + + + 1234 + + + + + + + 1\d{2,3} + \d{3,4} + + + + 1(?: + [02-9]\d| + 1[0-46-9]| + \d{3} + ) + + 1234 + + + + + + + 1\d{2} + \d{3} + + + + 1(?: + 0[02]| + 2[0138]| + 72| + 9[07] + ) + + 102 + + + + + + + 1\d{2} + \d{3} + + + + 1(?: + 0[4-9]| + 1[2368]| + 2[0-3568] + ) + + 104 + + + + diff --git a/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java b/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java index 15fd2b747..5ce14c2e5 100644 --- a/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java +++ b/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java @@ -166,7 +166,9 @@ public class BuildMetadataFromXml { String nationalPrefix) { PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder(); metadata.setId(regionCode); - metadata.setCountryCode(Integer.parseInt(element.getAttribute(COUNTRY_CODE))); + if (element.hasAttribute(COUNTRY_CODE)) { + metadata.setCountryCode(Integer.parseInt(element.getAttribute(COUNTRY_CODE))); + } if (element.hasAttribute(LEADING_DIGITS)) { metadata.setLeadingDigits(validateRE(element.getAttribute(LEADING_DIGITS))); } diff --git a/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar b/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar index 5398924b0..60c4d73b7 100644 Binary files a/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar and b/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar differ diff --git a/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java b/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java index 452adce2d..64160b1a6 100644 --- a/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java +++ b/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java @@ -177,11 +177,13 @@ public class BuildMetadataProtoFromXml extends Command { " // country/region represented by that country code. In the case of multiple\n" + " // countries sharing a calling code, such as the NANPA countries, the one\n" + " // indicated with \"isMainCountryForCode\" in the metadata should be first.\n"; - private static final String SET_COMMENT = + private static final String COUNTRY_CODE_SET_COMMENT = " // A set of all country codes for which data is available.\n"; + private static final String REGION_CODE_SET_COMMENT = + " // A set of all region codes for which data is available.\n"; private static final double CAPACITY_FACTOR = 0.75; private static final String CAPACITY_COMMENT = - " // The capacity is set to %d as there are %d different country codes,\n" + + " // The capacity is set to %d as there are %d different entries,\n" + " // and this offers a load factor of roughly " + CAPACITY_FACTOR + ".\n"; private static void writeCountryCallingCodeMappingToJavaFile( @@ -197,13 +199,16 @@ public class BuildMetadataProtoFromXml extends Command { break; } } + boolean hasCountryCodes = countryCodeToRegionCodeMap.size() > 1; ClassWriter writer = new ClassWriter(outputDir, mappingClass, copyright); - if (hasRegionCodes) { + if (hasRegionCodes && hasCountryCodes) { writeMap(writer, capacity, countryCodeToRegionCodeMap); + } else if (hasCountryCodes) { + writeCountryCodeSet(writer, capacity, countryCodeToRegionCodeMap.keySet()); } else { - writeSet(writer, capacity, countryCodeToRegionCodeMap.keySet()); + writeRegionCodeSet(writer, capacity, countryCodeToRegionCodeMap.get(0)); } writer.writeToFile(); @@ -243,9 +248,30 @@ public class BuildMetadataProtoFromXml extends Command { writer.addToBody(" }\n"); } - private static void writeSet(ClassWriter writer, int capacity, - Set countryCodeSet) { - writer.addToBody(SET_COMMENT); + private static void writeRegionCodeSet(ClassWriter writer, int capacity, + List regionCodeSet) { + writer.addToBody(REGION_CODE_SET_COMMENT); + + writer.addToImports("java.util.HashSet"); + writer.addToImports("java.util.Set"); + + writer.addToBody(" static Set getRegionCodeSet() {\n"); + writer.formatToBody(CAPACITY_COMMENT, capacity, regionCodeSet.size()); + writer.addToBody(" Set regionCodeSet = new HashSet(" + capacity + ");\n"); + writer.addToBody("\n"); + + for (String regionCode : regionCodeSet) { + writer.addToBody(" regionCodeSet.add(\"" + regionCode + "\");\n"); + } + + writer.addToBody("\n"); + writer.addToBody(" return regionCodeSet;\n"); + writer.addToBody(" }\n"); + } + + private static void writeCountryCodeSet(ClassWriter writer, int capacity, + Set countryCodeSet) { + writer.addToBody(COUNTRY_CODE_SET_COMMENT); writer.addToImports("java.util.HashSet"); writer.addToImports("java.util.Set"); diff --git a/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar b/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar index b44d6fa05..81012875b 100644 Binary files a/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar and b/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar differ