diff options
author | lararennie@google.com <lararennie@google.com@ee073f10-1060-11df-b6a4-87a95322a99c> | 2013-07-12 15:09:24 +0000 |
---|---|---|
committer | lararennie@google.com <lararennie@google.com@ee073f10-1060-11df-b6a4-87a95322a99c> | 2013-07-12 15:09:24 +0000 |
commit | 7fee6b5f270aaaf097d7061ec2917b69e3039e78 (patch) | |
tree | 2a5aad6c725db251bc9763f995e0a4d3615d7fac | |
parent | 2455a1e00b592bef3be285992384e584c90a66e0 (diff) | |
download | android_external_libphonenumbergoogle-7fee6b5f270aaaf097d7061ec2917b69e3039e78.tar.gz android_external_libphonenumbergoogle-7fee6b5f270aaaf097d7061ec2917b69e3039e78.tar.bz2 android_external_libphonenumbergoogle-7fee6b5f270aaaf097d7061ec2917b69e3039e78.zip |
JAVA/DATA/TOOLS: Adding some short number metadata separately, and adjusting the build tools to handle this.
git-svn-id: http://libphonenumber.googlecode.com/svn/trunk@589 ee073f10-1060-11df-b6a4-87a95322a99c
57 files changed, 1437 insertions, 8 deletions
diff --git a/java/build.xml b/java/build.xml index baceb90..01a19db 100644 --- a/java/build.xml +++ b/java/build.xml @@ -41,6 +41,20 @@ </exec> </target> + <target name="build-short-metadata"> + <exec executable="java"> + <arg value="-jar" /> + <arg value="${build.tools.jar}"/> + <arg value="BuildMetadataProtoFromXml"/> + <arg value="--input-file=${resources.dir}/ShortNumberMetadata.xml"/> + <arg value="--output-dir=${libphonenumber.src.dir}/com/google/i18n/phonenumbers"/> + <arg value="--data-prefix=data/ShortNumberMetadataProto"/> + <arg value="--mapping-class=ShortNumbersRegionCodeSet"/> + <arg value="--copyright=2013"/> + <arg value="--lite-build=false"/> + </exec> + </target> + <target name="build-test-metadata"> <exec executable="java"> <arg value="-jar" /> 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 0000000..252b4f6 --- /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<String> getRegionCodeSet() { + // The capacity is set to 1 as there are 50 different entries, + // and this offers a load factor of roughly 0.75. + Set<String> regionCodeSet = new HashSet<String>(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 Binary files differnew file mode 100644 index 0000000..0e9080e --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AM diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AR b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AR Binary files differnew file mode 100644 index 0000000..8d718a2 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AR diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BD b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BD Binary files differnew file mode 100644 index 0000000..503a867 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BD diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CH b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CH Binary files differnew file mode 100644 index 0000000..54eeec7 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CH diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CR b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CR Binary files differnew file mode 100644 index 0000000..9334bdf --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CR diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CU b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CU Binary files differnew file mode 100644 index 0000000..8f7dc14 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CU diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CZ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CZ Binary files differnew file mode 100644 index 0000000..19cafbd --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CZ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DE b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DE Binary files differnew file mode 100644 index 0000000..1e2f10e --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DE diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EE b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EE Binary files differnew file mode 100644 index 0000000..d64301b --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EE diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FJ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FJ Binary files differnew file mode 100644 index 0000000..82c8f13 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FJ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FK b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FK Binary files differnew file mode 100644 index 0000000..eaab365 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FK diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FO b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FO Binary files differnew file mode 100644 index 0000000..1c3c5af --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FO diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FR b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FR Binary files differnew file mode 100644 index 0000000..e78665b --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FR diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GB b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GB Binary files differnew file mode 100644 index 0000000..4c2c7e1 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GB diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GG b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GG Binary files differnew file mode 100644 index 0000000..a635fe5 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GG diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GI b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GI Binary files differnew file mode 100644 index 0000000..185a070 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GI diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GT b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GT Binary files differnew file mode 100644 index 0000000..27dd276 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GT diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GY b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GY Binary files differnew file mode 100644 index 0000000..f517d3c --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GY diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HT b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HT Binary files differnew file mode 100644 index 0000000..87a12db --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HT diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IL b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IL Binary files differnew file mode 100644 index 0000000..5eccf83 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IL diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IM b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IM Binary files differnew file mode 100644 index 0000000..787e2db --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IM diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IT b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IT Binary files differnew file mode 100644 index 0000000..91a64f5 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IT diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JE b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JE Binary files differnew file mode 100644 index 0000000..dc6507c --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JE diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JO b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JO Binary files differnew file mode 100644 index 0000000..18a23c1 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JO diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KE b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KE Binary files differnew file mode 100644 index 0000000..45ed696 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KE diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KI b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KI Binary files differnew file mode 100644 index 0000000..c388868 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KI diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KW b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KW Binary files differnew file mode 100644 index 0000000..b6c6797 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KW diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LI b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LI Binary files differnew file mode 100644 index 0000000..4ef3269 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LI diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LU b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LU Binary files differnew file mode 100644 index 0000000..81f1cab --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LU diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MD b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MD Binary files differnew file mode 100644 index 0000000..caedfc8 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MD diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ME b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ME Binary files differnew file mode 100644 index 0000000..e8fb198 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ME diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MU b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MU Binary files differnew file mode 100644 index 0000000..93e5b40 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MU diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MV b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MV Binary files differnew file mode 100644 index 0000000..5db0ae2 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MV diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MZ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MZ Binary files differnew file mode 100644 index 0000000..83e308a --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MZ diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NA b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NA Binary files differnew file mode 100644 index 0000000..97cce4a --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NA diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NC b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NC Binary files differnew file mode 100644 index 0000000..3fcc43c --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NC diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NL b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NL Binary files differnew file mode 100644 index 0000000..059f869 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NL diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NR b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NR Binary files differnew file mode 100644 index 0000000..ab5e8e5 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NR diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PA b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PA Binary files differnew file mode 100644 index 0000000..209e031 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PA diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PY b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PY Binary files differnew file mode 100644 index 0000000..2bda927 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PY diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_QA b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_QA Binary files differnew file mode 100644 index 0000000..2a22f69 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_QA diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RS b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RS Binary files differnew file mode 100644 index 0000000..f0632f3 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RS diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SA b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SA Binary files differnew file mode 100644 index 0000000..bcdd702 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SA diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SB b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SB Binary files differnew file mode 100644 index 0000000..24ae10c --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SB diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SC b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SC Binary files differnew file mode 100644 index 0000000..15fbb6a --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SC diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SG b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SG Binary files differnew file mode 100644 index 0000000..7377e18 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SG diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SH b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SH Binary files differnew file mode 100644 index 0000000..1b79932 --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SH diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SR b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SR Binary files differnew file mode 100644 index 0000000..026114b --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SR diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TL b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TL Binary files differnew file mode 100644 index 0000000..769406d --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TL diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UY b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UY Binary files differnew file mode 100644 index 0000000..4b6535e --- /dev/null +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UY diff --git a/resources/ShortNumberMetadata.xml b/resources/ShortNumberMetadata.xml new file mode 100644 index 0000000..2dff278 --- /dev/null +++ b/resources/ShortNumberMetadata.xml @@ -0,0 +1,1301 @@ +<!-- 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. + + @author: David Yonge-Mallo + @author: Shaopeng Jia + @author: Lara Rennie + + Metadata on Short Number patterns, containing information for classifying short numbers by + type and cost. Note that this is used in addition to the information provided by the + PhoneNumberMetadata.xml file - patterns should not be duplicated between these files. + For now, metadata for emergency numbers lives in PhoneNumberMetadata.xml. +--> + +<!DOCTYPE phoneNumberMetadata [ + <!ELEMENT phoneNumberMetadata (territories)> + <!ELEMENT territories (territory+)> + <!ELEMENT territory (generalDesc, carrierSpecific?, tollFree?, standardRate?, premiumRate?)> + <!ELEMENT generalDesc (nationalNumberPattern, possibleNumberPattern, exampleNumber?)> + <!ELEMENT shortCode (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)> + + <!-- carrierSpecific numbers are numbers which can be called only from a specific carrier, + and will not necessarily work on another carrier. --> + <!ELEMENT carrierSpecific (nationalNumberPattern, possibleNumberPattern?, exampleNumber?)> + + <!-- The following cost categories are mutually exclusive. Emergency numbers are implicitly + considered toll free and do not need to be repeated here. Otherwise, a short number which + does not fall into one of these categories is considered to have unknown cost. --> + <!ELEMENT tollFree (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)> + <!ELEMENT standardRate (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)> + <!ELEMENT premiumRate (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)> + + <!ELEMENT nationalNumberPattern (#PCDATA)> + <!ELEMENT possibleNumberPattern (#PCDATA)> + <!ELEMENT exampleNumber (#PCDATA)> + + <!ATTLIST territory id CDATA #REQUIRED> +]> + +<phoneNumberMetadata> + <territories> + <!-- Armenia --> + <territory id="AM"> + <generalDesc> + <nationalNumberPattern>[18]\d{2,3}</nationalNumberPattern> + <possibleNumberPattern>\d{3,4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 8[1-7]\d{2}| + 1(?: + 0[04-9]| + [1-9]\d + ) + </nationalNumberPattern> + <exampleNumber>8711</exampleNumber> + </shortCode> + </territory> + + <!-- Argentina --> + <territory id="AR"> + <generalDesc> + <nationalNumberPattern>1\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + 0[2356]| + 1[02-5]| + 21 + ) + </nationalNumberPattern> + <exampleNumber>121</exampleNumber> + </shortCode> + </territory> + + <!-- Bangladesh --> + <territory id="BD"> + <generalDesc> + <nationalNumberPattern>1\d{2,4}</nationalNumberPattern> + <possibleNumberPattern>\d{3,5}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 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] + ) + </nationalNumberPattern> + <exampleNumber>103</exampleNumber> + </shortCode> + </territory> + + <!-- Switzerland --> + <!-- http://www.bakom.admin.ch/themen/telekom/00479/00604/index.html?lang=en --> + <!-- http://en.wikipedia.org/wiki/Telephone_numbers_in_Switzerland#Short_numbers --> + <!-- http://csi.sunrise.ch/smartzone/_privat/csv_export.php --> + <territory id="CH"> + <generalDesc> + <nationalNumberPattern>1\d{2,5}</nationalNumberPattern> + <possibleNumberPattern>\d{3,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <!-- According to the "E.164 national numbering plan of Switzerland", some short numbers + may be accessible from abroad. However, it does not specify which ones. --> + <nationalNumberPattern> + 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} + </nationalNumberPattern> + <exampleNumber>147</exampleNumber> + </shortCode> + <expandedEmergency> + <nationalNumberPattern> + 14(?: + [0356]| + 1[45] + ) + </nationalNumberPattern> + <possibleNumberPattern>\d{3,4}</possibleNumberPattern> + <exampleNumber>140</exampleNumber> + </expandedEmergency> + <tollFree> + <nationalNumberPattern>116\d{3}</nationalNumberPattern> + <exampleNumber>116000</exampleNumber> + </tollFree> + <premiumRate> + <!-- http://www.zouk88.com/switzerland/index.htm --> + <!-- http://aonebill.com/coverage&tariffs#Switzerland --> + <nationalNumberPattern> + 543| + 83111 + </nationalNumberPattern> + <possibleNumberPattern>\d{3,5}</possibleNumberPattern> + <exampleNumber>543</exampleNumber> + </premiumRate> + <carrierSelectionCodes> + <!-- https://www.eofcom.admin.ch/eofcom/public/listEofcom_cscAllocated.do --> + <nationalNumberPattern>10[78]\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{5}</possibleNumberPattern> + <exampleNumber>10742</exampleNumber> + </carrierSelectionCodes> + <directoryServices> + <nationalNumberPattern>18\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{4}</possibleNumberPattern> + <exampleNumber>1818</exampleNumber> + </directoryServices> + <smsServices> + <nationalNumberPattern>[2-9]\d{2,4}</nationalNumberPattern> + <possibleNumberPattern>\d{3,6}</possibleNumberPattern> + <exampleNumber>600</exampleNumber> + </smsServices> + <socialServices> + <nationalNumberPattern>116\d{3}</nationalNumberPattern> + <possibleNumberPattern>\d{6}</possibleNumberPattern> + <exampleNumber>116000</exampleNumber> + </socialServices> + </territory> + + <!-- Costa Rica --> + <territory id="CR"> + <generalDesc> + <nationalNumberPattern>1\d{3}</nationalNumberPattern> + <possibleNumberPattern>\d{4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <!-- This pattern excludes 4-digit SMS content numbers for now. --> + <nationalNumberPattern> + 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 + ) + </nationalNumberPattern> + <exampleNumber>1022</exampleNumber> + </shortCode> + </territory> + + <!-- Cuba --> + <territory id="CU"> + <generalDesc> + <nationalNumberPattern>1\d{2,5}</nationalNumberPattern> + <possibleNumberPattern>\d{3,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + 1(?: + 6111| + 8 + )| + 40 + ) + </nationalNumberPattern> + <exampleNumber>140</exampleNumber> + </shortCode> + </territory> + + <!-- Czech Rep. --> + <territory id="CZ"> + <generalDesc> + <nationalNumberPattern>1\d{3,5}</nationalNumberPattern> + <possibleNumberPattern>\d{4,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + 1(?: + 6\d{3}| + 8\d + )| + 2\d{2,3}| + 3\d{3,4}| + 4\d{3}| + 99 + ) + </nationalNumberPattern> + <exampleNumber>116123</exampleNumber> + </shortCode> + </territory> + + <!-- Germany --> + <territory id="DE"> + <generalDesc> + <nationalNumberPattern>1\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <!-- Public Service Number for German administration. --> + <nationalNumberPattern>115</nationalNumberPattern> + <exampleNumber>115</exampleNumber> + </shortCode> + </territory> + + <!-- Estonia --> + <territory id="EE"> + <generalDesc> + <nationalNumberPattern>1\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + 1[13-9]| + [2-9]\d + ) + </nationalNumberPattern> + <exampleNumber>116</exampleNumber> + </shortCode> + </territory> + + <!-- France --> + <!-- http://www.arcep.fr/index.php?id=8146 --> + <!-- http://fr.wikipedia.org/wiki/Num%C3%A9ro_d'appel_d'urgence --> + <territory id="FR"> + <generalDesc> + <nationalNumberPattern> + 1\d{1,5}| + 3\d{3,4}| + [4-8]\d{4} + </nationalNumberPattern> + <possibleNumberPattern>\d{2,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <!-- 110 is a number used for different campaigns such as Sidaction for a limited time only. + --> + <nationalNumberPattern> + 1(?: + 0\d{2}| + 1(?: + [02459]| + 6000| + 8\d{3} + )| + [578] + )| + 3\d{3} + </nationalNumberPattern> + <exampleNumber>1010</exampleNumber> + </shortCode> + <tollFree> + <!-- http://www.appel118.fr/detail.php#histo --> + <!-- Includes some "urgent services" numbers, plus short-codes designated as being free of + cost and European harmonised numbers (116XXX). --> + <nationalNumberPattern> + 1(?: + 1(?: + [02459]| + 6\d{3}| + 8710 + )| + [578] + )| + 3[01]\d{2} + </nationalNumberPattern> + <exampleNumber>3010</exampleNumber> + </tollFree> + <standardRate> + <!-- http://www.appel118.fr/detail.php#histo --> + <nationalNumberPattern>118777</nationalNumberPattern> + <possibleNumberPattern>\d{6}</possibleNumberPattern> + <exampleNumber>118777</exampleNumber> + </standardRate> + <premiumRate> + <!-- According to + http://www.arcep.fr/uploads/tx_gspublication/guide-operateurs-editeurs-sva-sept2012.pdf + these numbers may be premium rate or standard rate; here we assume the higher cost. + 118XYZ numbers are supposed to be tollfree by 2015 according to + http://www.arcep.fr/uploads/tx_gspublication/guide-operateurs-editeurs-sva-sept2012.pdf + but their current prices vary: according to http://www.appel118.fr/detail.php#histo + only one number is free at the moment, and one number standard rate. + SMS Services [4-8]\d{4} vary in price from 0.05 euro to 4.50 euro per SMS, based on + prefix - we consider these all premium rate for now. --> + <nationalNumberPattern> + (?: + 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} + </nationalNumberPattern> + <possibleNumberPattern>\d{4,6}</possibleNumberPattern> + <exampleNumber>3200</exampleNumber> + </premiumRate> + <carrierSelectionCodes> + <!-- The specific carrier selection codes have not yet been assigned. --> + <nationalNumberPattern>16\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{4}</possibleNumberPattern> + <exampleNumber>1600</exampleNumber> + </carrierSelectionCodes> + <!-- Other services in the French plan: --> + <carrierServices> + <nationalNumberPattern>10\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{4}</possibleNumberPattern> + <exampleNumber>1012</exampleNumber> + </carrierServices> + <directoryServices> + <nationalNumberPattern>118\d{3}</nationalNumberPattern> + <possibleNumberPattern>\d{6}</possibleNumberPattern> + <exampleNumber>118218</exampleNumber> + </directoryServices> + <socialServices> + <nationalNumberPattern>116\d{3}</nationalNumberPattern> + <possibleNumberPattern>\d{6}</possibleNumberPattern> + <exampleNumber>116000</exampleNumber> + </socialServices> + <!-- https://clients.txtnation.com/entries/22523777-France-Premium-SMS-Short-Code-Regulations + --> + <smsServices> + <nationalNumberPattern>[3-8]\d{4}</nationalNumberPattern> + <possibleNumberPattern>\d{5}</possibleNumberPattern> + <exampleNumber>30000</exampleNumber> + </smsServices> + </territory> + + <!-- Fiji --> + <territory id="FJ"> + <generalDesc> + <nationalNumberPattern>[0-579]\d{1,2}</nationalNumberPattern> + <possibleNumberPattern>\d{2,3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <!-- From the Emergency Numbers page on the Telecom Fiji website. --> + <nationalNumberPattern> + 0(?: + 04| + 1[34]| + 8[1-4] + )| + 1(?: + 0[1-3]| + [25]9 + )| + 2[289]| + 30| + [45]4| + 75| + 913 + </nationalNumberPattern> + <exampleNumber>22</exampleNumber> + </shortCode> + </territory> + + <!-- Falkland Islands (Malvinas) --> + <territory id="FK"> + <generalDesc> + <nationalNumberPattern>1\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <!-- Service numbers use 3 digit short codes --> + <exampleNumber>123</exampleNumber> + </shortCode> + </territory> + + <!-- Faroe Islands --> + <territory id="FO"> + <generalDesc> + <nationalNumberPattern>1\d{2,3}</nationalNumberPattern> + <possibleNumberPattern>\d{3,4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <!-- Includes special numbers, special services and universal services. --> + <nationalNumberPattern> + 1(?: + 1[48]| + 4[124]\d| + 71\d| + 8[7-9]\d + ) + </nationalNumberPattern> + <exampleNumber>114</exampleNumber> + </shortCode> + </territory> + + <!-- United Kingdom --> + <territory id="GB"> + <generalDesc> + <nationalNumberPattern>[1-4679]\d{2,5}</nationalNumberPattern> + <possibleNumberPattern>\d{3,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <!-- This is a list of the ones that can be called (as opposed to numbers used by text + delivery or data services). --> + <nationalNumberPattern> + 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 + </nationalNumberPattern> + <exampleNumber>150</exampleNumber> + </shortCode> + </territory> + + <!-- Guernsey --> + <territory id="GG"> + <generalDesc> + <nationalNumberPattern>1\d{2,5}</nationalNumberPattern> + <possibleNumberPattern>\d{3,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <!-- Taken from numbers listed explicitly as Public Telephone Network Numbers in + http://stakeholders.ofcom.org.uk/binaries/telecoms/numbering/numplan201210.pdf --> + <nationalNumberPattern> + 1(?: + 0[01]| + 1(?: + 1| + [68]\d{3} + )| + 23| + 4(?: + 1| + 7\d + )| + 55| + 800\d| + 95 + ) + </nationalNumberPattern> + <exampleNumber>155</exampleNumber> + </shortCode> + </territory> + + <!-- Gibraltar --> + <territory id="GI"> + <generalDesc> + <nationalNumberPattern>[18]\d{2,5}</nationalNumberPattern> + <possibleNumberPattern>\d{3,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 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 + ) + </nationalNumberPattern> + <exampleNumber>116000</exampleNumber> + </shortCode> + </territory> + + <!-- Guatemala --> + <territory id="GT"> + <generalDesc> + <nationalNumberPattern>1\d{2,3}</nationalNumberPattern> + <possibleNumberPattern>\d{3,4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + 10| + 2\d| + [57]\d{2} + ) + </nationalNumberPattern> + <exampleNumber>123</exampleNumber> + </shortCode> + </territory> + + <!-- Guyana --> + <territory id="GY"> + <generalDesc> + <nationalNumberPattern>0\d{2,3}</nationalNumberPattern> + <possibleNumberPattern>\d{3,4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 0(?: + 02| + 171| + 444| + 7[67]7| + 801| + 9(?: + 0[78]| + [2-47] + ) + ) + </nationalNumberPattern> + <exampleNumber>0801</exampleNumber> + </shortCode> + </territory> + + <!-- Haiti --> + <territory id="HT"> + <generalDesc> + <nationalNumberPattern>1\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <exampleNumber>114</exampleNumber> + </shortCode> + </territory> + + <!-- Israel --> + <territory id="IL"> + <generalDesc> + <nationalNumberPattern>1\d{3}</nationalNumberPattern> + <possibleNumberPattern>\d{4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <exampleNumber>1455</exampleNumber> + </shortCode> + </territory> + + <!-- Isle of Man --> + <territory id="IM"> + <generalDesc> + <nationalNumberPattern>1\d{2,5}</nationalNumberPattern> + <possibleNumberPattern>\d{3,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern>1\d{2}(?:\d{3})?</nationalNumberPattern> + <exampleNumber>150</exampleNumber> + </shortCode> + </territory> + + <!-- Italy --> + <territory id="IT"> + <generalDesc> + <nationalNumberPattern>1\d{2,5}</nationalNumberPattern> + <possibleNumberPattern>\d{3,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <!-- Later, when we have better support for short-codes, we could add the codes + used for MMS and SMS services here too. --> + <nationalNumberPattern> + 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 + ) + ) + </nationalNumberPattern> + <exampleNumber>114</exampleNumber> + </shortCode> + </territory> + + <!-- Jersey --> + <territory id="JE"> + <generalDesc> + <nationalNumberPattern>[12]\d{2,5}</nationalNumberPattern> + <possibleNumberPattern>\d{3,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <!-- http://www.jcra.je/cms3/v2/public/cmsChild.asp?pageID=1024&childID=1036 --> + <nationalNumberPattern> + 1(?: + 00| + 18\d{3}| + 23| + 4(?: + [14]| + 28| + 7\d + )| + 5\d| + 7(?: + 0[12]| + [128]| + 35? + )| + 808| + 9[135] + )| + 23[234] + </nationalNumberPattern> + <exampleNumber>150</exampleNumber> + </shortCode> + </territory> + + <!-- Jordan --> + <territory id="JO"> + <generalDesc> + <nationalNumberPattern>1\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + 09| + 1[01]| + 9[024-79] + ) + </nationalNumberPattern> + <exampleNumber>111</exampleNumber> + </shortCode> + </territory> + + <!-- Kenya --> + <territory id="KE"> + <generalDesc> + <nationalNumberPattern>1\d{2,3}</nationalNumberPattern> + <possibleNumberPattern>\d{3,4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <!-- Excluding SMS-only premium-rate short codes for now. --> + <nationalNumberPattern> + 1(?: + 0[09]| + 1(?: + [06]| + 9[0-2579] + )| + 2[13]| + 3[01] + ) + </nationalNumberPattern> + <exampleNumber>116</exampleNumber> + </shortCode> + </territory> + + <!-- Kiribati --> + <territory id="KI"> + <generalDesc> + <nationalNumberPattern>1\d{2,3}</nationalNumberPattern> + <possibleNumberPattern>\d{3,4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 10(?: + [0-8]| + 5[01259] + ) + </nationalNumberPattern> + <exampleNumber>100</exampleNumber> + </shortCode> + </territory> + + <!-- Kuwait --> + <territory id="KW"> + <generalDesc> + <nationalNumberPattern>1\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + [02-9]\d| + 1[013-9] + ) + </nationalNumberPattern> + <exampleNumber>177</exampleNumber> + </shortCode> + </territory> + + <!-- Liechtenstein --> + <territory id="LI"> + <generalDesc> + <nationalNumberPattern>1\d{2,3}</nationalNumberPattern> + <possibleNumberPattern>\d{3,4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + 145| + 4(?: + [0357]| + 14 + )| + 50\d{4}| + 6(?: + 00| + [1-4] + )| + 75| + 8(?: + 1[128]| + 7 + ) + ) + </nationalNumberPattern> + <exampleNumber>1600</exampleNumber> + </shortCode> + </territory> + + <!-- Luxembourg --> + <territory id="LU"> + <generalDesc> + <nationalNumberPattern>12\d{3}</nationalNumberPattern> + <possibleNumberPattern>\d{5}</possibleNumberPattern> + </generalDesc> + <shortCode> + <exampleNumber>12123</exampleNumber> + </shortCode> + </territory> + + <!-- Moldova, Rep. of --> + <territory id="MD"> + <generalDesc> + <nationalNumberPattern>1\d{2,5}</nationalNumberPattern> + <possibleNumberPattern>\d{3,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 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 + ) + ) + </nationalNumberPattern> + <exampleNumber>116000</exampleNumber> + </shortCode> + </territory> + + <!-- Montenegro --> + <territory id="ME"> + <generalDesc> + <nationalNumberPattern>1\d{2,5}</nationalNumberPattern> + <possibleNumberPattern>\d{3,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + 16\d{3}| + 2(?: + [015-9]| + \d{2} + )| + [0135]\d{2}| + 4\d{2,3}| + 9\d{3} + ) + </nationalNumberPattern> + <exampleNumber>1011</exampleNumber> + </shortCode> + </territory> + + <!-- Mauritius --> + <territory id="MU"> + <generalDesc> + <nationalNumberPattern>[189]\d{2,4}</nationalNumberPattern> + <possibleNumberPattern>\d{3,5}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1\d{2,4}| + 8\d{3}| + 99\d + </nationalNumberPattern> + <exampleNumber>995</exampleNumber> + </shortCode> + </territory> + + <!-- Maldives --> + <territory id="MV"> + <generalDesc> + <nationalNumberPattern>1\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + [19]0| + 23 + ) + </nationalNumberPattern> + <exampleNumber>123</exampleNumber> + </shortCode> + </territory> + + <!-- Mozambique --> + <territory id="MZ"> + <generalDesc> + <nationalNumberPattern>1\d{3}</nationalNumberPattern> + <possibleNumberPattern>\d{4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern>1[02-5]\d{2}</nationalNumberPattern> + <exampleNumber>1011</exampleNumber> + </shortCode> + </territory> + + <!-- Namibia --> + <territory id="NA"> + <generalDesc> + <nationalNumberPattern>[19]\d{2,4}</nationalNumberPattern> + <possibleNumberPattern>\d{3,5}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1\d{3}| + 9(?: + 3111| + \d{2} + ) + </nationalNumberPattern> + <exampleNumber>93111</exampleNumber> + </shortCode> + </territory> + + <!-- New Caledonia (Territoire français d'outre-mer) --> + <territory id="NC"> + <generalDesc> + <nationalNumberPattern>1\d{3}</nationalNumberPattern> + <possibleNumberPattern>\d{4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <!-- OPT: Office des Postes et Télécommunications de Nouvelle Calédonie --> + <nationalNumberPattern> + 10(?: + 0[06]| + 1[02-46]| + 20| + 3[0125]| + 42| + 5[058]| + 77 + ) + </nationalNumberPattern> + <exampleNumber>1000</exampleNumber> + </shortCode> + </territory> + + <!-- Netherlands --> + <territory id="NL"> + <generalDesc> + <nationalNumberPattern>18\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <exampleNumber>1833</exampleNumber> + </shortCode> + </territory> + + <!-- Nauru --> + <territory id="NR"> + <generalDesc> + <nationalNumberPattern>1\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + 1[0-2]| + 23| + 92 + ) + </nationalNumberPattern> + <exampleNumber>110</exampleNumber> + </shortCode> + </territory> + + <!-- Panama --> + <territory id="PA"> + <generalDesc> + <nationalNumberPattern>10[2-4]</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <exampleNumber>102</exampleNumber> + </shortCode> + </territory> + + <!-- Paraguay --> + <territory id="PY"> + <generalDesc> + <nationalNumberPattern>1[1-4]\d</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <exampleNumber>123</exampleNumber> + </shortCode> + </territory> + + <!-- Qatar --> + <territory id="QA"> + <generalDesc> + <nationalNumberPattern>[129]\d{2,4}</nationalNumberPattern> + <possibleNumberPattern>\d{3,5}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + (?: + 1| + 20| + 9[27]\d + )\d{2} + </nationalNumberPattern> + <exampleNumber>2012</exampleNumber> + </shortCode> + </territory> + + <!-- Serbia --> + <territory id="RS"> + <generalDesc> + <nationalNumberPattern>1\d{2,5}</nationalNumberPattern> + <possibleNumberPattern>\d{3,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1[189]\d{1,4}| + 9[234] + </nationalNumberPattern> + <exampleNumber>112</exampleNumber> + </shortCode> + </territory> + + <!-- Saudi Arabia --> + <territory id="SA"> + <generalDesc> + <nationalNumberPattern>[19]\d{2,5}</nationalNumberPattern> + <possibleNumberPattern>\d{3,6}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + 16111| + 9(?: + 00| + 1[89]| + 9(?: + 099| + 22| + 91 + ) + ) + )| + 9( + 37| + 8[6-8]| + 9[2-6] + ) + </nationalNumberPattern> + <exampleNumber>937</exampleNumber> + </shortCode> + </territory> + + <!-- Solomon Islands --> + <territory id="SB"> + <generalDesc> + <nationalNumberPattern>[19]\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + 0[02-79]| + 1[12]| + 2[0-26]| + 4[189]| + 68 + )| + 9(?: + [01]1| + 22| + 33| + 55| + 77| + 88 + ) + </nationalNumberPattern> + <exampleNumber>100</exampleNumber> + </shortCode> + </territory> + + <!-- Seychelles --> + <territory id="SC"> + <generalDesc> + <nationalNumberPattern>[19]\d{2,3}</nationalNumberPattern> + <possibleNumberPattern>\d{3,4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 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} + </nationalNumberPattern> + <exampleNumber>100</exampleNumber> + </shortCode> + </territory> + + <!-- Singapore --> + <territory id="SG"> + <generalDesc> + <nationalNumberPattern>[19]\d{2,4}</nationalNumberPattern> + <possibleNumberPattern>\d{3,5}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + [0136]\d{2}| + [89](?: + [1-9]\d| + 0[1-9] + )| + [57]\d{2,3})| + 99[0246-8] + </nationalNumberPattern> + <exampleNumber>1312</exampleNumber> + </shortCode> + </territory> + + <!-- Saint Helena and Tristan da Cunha --> + <territory id="SH"> + <generalDesc> + <nationalNumberPattern>1\d{2,3}</nationalNumberPattern> + <possibleNumberPattern>\d{3,4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <exampleNumber>1234</exampleNumber> + </shortCode> + </territory> + + <!-- Suriname --> + <territory id="SR"> + <generalDesc> + <nationalNumberPattern>1\d{2,3}</nationalNumberPattern> + <possibleNumberPattern>\d{3,4}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + [02-9]\d| + 1[0-46-9]| + \d{3} + ) + </nationalNumberPattern> + <exampleNumber>1234</exampleNumber> + </shortCode> + </territory> + + <!-- Timor-Leste (East Timor) --> + <territory id="TL"> + <generalDesc> + <nationalNumberPattern>1\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + 0[02]| + 2[0138]| + 72| + 9[07] + ) + </nationalNumberPattern> + <exampleNumber>102</exampleNumber> + </shortCode> + </territory> + + <!-- Uruguay --> + <territory id="UY"> + <generalDesc> + <nationalNumberPattern>1\d{2}</nationalNumberPattern> + <possibleNumberPattern>\d{3}</possibleNumberPattern> + </generalDesc> + <shortCode> + <nationalNumberPattern> + 1(?: + 0[4-9]| + 1[2368]| + 2[0-3568] + ) + </nationalNumberPattern> + <exampleNumber>104</exampleNumber> + </shortCode> + </territory> + </territories> +</phoneNumberMetadata> 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 15fd2b7..5ce14c2 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 Binary files differindex 5398924..60c4d73 100644 --- 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 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 452adce..64160b1 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<Integer> countryCodeSet) { - writer.addToBody(SET_COMMENT); + private static void writeRegionCodeSet(ClassWriter writer, int capacity, + List<String> regionCodeSet) { + writer.addToBody(REGION_CODE_SET_COMMENT); + + writer.addToImports("java.util.HashSet"); + writer.addToImports("java.util.Set"); + + writer.addToBody(" static Set<String> getRegionCodeSet() {\n"); + writer.formatToBody(CAPACITY_COMMENT, capacity, regionCodeSet.size()); + writer.addToBody(" Set<String> regionCodeSet = new HashSet<String>(" + 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<Integer> 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 Binary files differindex b44d6fa..8101287 100644 --- 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 |