phonelib 0.5.2 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.rdoc +8 -0
- data/data/extended_data.dat +0 -0
- data/data/libphonenumber/README.md +1 -1
- data/data/libphonenumber/cpp/src/phonenumbers/lite_metadata.cc +9888 -9854
- data/data/libphonenumber/cpp/src/phonenumbers/metadata.cc +9798 -9762
- data/data/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc +6 -6
- data/data/libphonenumber/cpp/src/phonenumbers/short_metadata.cc +2495 -2494
- data/data/libphonenumber/debian/control +9 -7
- data/data/libphonenumber/debian/{libphonenumber6-dev.install → libphonenumber7-dev.install} +0 -0
- data/data/libphonenumber/debian/{libphonenumber6-java.jlibs → libphonenumber7-java.jlibs} +0 -0
- data/data/libphonenumber/debian/{libphonenumber6-java.poms → libphonenumber7-java.poms} +0 -0
- data/data/libphonenumber/debian/{libphonenumber6.install → libphonenumber7.install} +0 -0
- data/data/libphonenumber/debian/rules +2 -2
- data/data/libphonenumber/java/carrier/pom.xml +4 -4
- data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1246_en +0 -0
- data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/245_en +0 -0
- data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/252_en +0 -0
- data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/373_en +0 -0
- data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/62_en +0 -0
- data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/678_en +0 -0
- data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/880_en +0 -0
- data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/968_en +0 -0
- data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/98_en +0 -0
- data/data/libphonenumber/java/demo/pom.xml +5 -5
- data/data/libphonenumber/java/geocoder/pom.xml +4 -4
- data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/245_en +0 -0
- data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/245_pt +0 -0
- data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/968_en +0 -0
- data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/config +0 -0
- data/data/libphonenumber/java/internal/prefixmapper/pom.xml +3 -3
- data/data/libphonenumber/java/libphonenumber/pom.xml +4 -2
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataSource.java +1 -1
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java +7 -10
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java +6 -4
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/SingleFileMetadataSourceImpl.java +82 -30
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BB +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NO +0 -0
- data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/SingleFilePhoneNumberMetadataProto +0 -0
- data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/MultiFileMetadataSourceImplTest.java +10 -14
- data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/SingleFileMetadataSourceImplTest.java +40 -0
- data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/TestMetadataTestCase.java +1 -1
- data/data/libphonenumber/java/pom.xml +1 -1
- data/data/libphonenumber/java/release_notes.txt +19 -0
- data/data/libphonenumber/javascript/i18n/phonenumbers/demo-compiled.js +108 -106
- data/data/libphonenumber/javascript/i18n/phonenumbers/metadata.js +37 -34
- data/data/libphonenumber/javascript/i18n/phonenumbers/metadatalite.js +37 -34
- data/data/libphonenumber/resources/PhoneNumberMetadata.xml +199 -91
- data/data/libphonenumber/resources/ShortNumberMetadata.xml +20 -9
- data/data/libphonenumber/resources/carrier/en/1.txt +8 -0
- data/data/libphonenumber/resources/carrier/en/245.txt +4 -2
- data/data/libphonenumber/resources/carrier/en/252.txt +8 -0
- data/data/libphonenumber/resources/carrier/en/373.txt +1 -0
- data/data/libphonenumber/resources/carrier/en/62.txt +1 -0
- data/data/libphonenumber/resources/carrier/en/678.txt +4 -0
- data/data/libphonenumber/resources/carrier/en/968.txt +10 -4
- data/data/libphonenumber/resources/carrier/en/98.txt +1 -0
- data/data/libphonenumber/resources/geocoding/en/245.txt +22 -20
- data/data/libphonenumber/resources/geocoding/en/968.txt +18 -0
- data/data/libphonenumber/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
- data/data/libphonenumber/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
- data/data/phone_data.dat +0 -0
- data/lib/phonelib/core.rb +26 -0
- data/lib/phonelib/phone.rb +20 -2
- data/lib/phonelib/phone_analyzer_helper.rb +1 -0
- data/lib/phonelib/version.rb +1 -1
- data/lib/validators/phone_validator.rb +5 -1
- metadata +23 -6
|
@@ -28,15 +28,17 @@ Build-Depends: cdbs,
|
|
|
28
28
|
libprotobuf-java,
|
|
29
29
|
libservlet2.5-java,
|
|
30
30
|
libservlet2.5-java-doc
|
|
31
|
-
Standards-Version: 3.9.
|
|
31
|
+
Standards-Version: 3.9.6
|
|
32
32
|
Section: libs
|
|
33
33
|
Homepage: https://github.com/googlei18n/libphonenumber/
|
|
34
|
-
Vcs-Browser: https://
|
|
35
|
-
Vcs-Git:
|
|
34
|
+
Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/libphonenumber.git/
|
|
35
|
+
Vcs-Git: git://anonscm.debian.org/collab-maint/libphonenumber.git
|
|
36
36
|
|
|
37
|
-
Package:
|
|
37
|
+
Package: libphonenumber7-java
|
|
38
38
|
Section: java
|
|
39
39
|
Architecture: all
|
|
40
|
+
Conflicts: libphonenumber6-java
|
|
41
|
+
Replaces: libphonenumber6-java
|
|
40
42
|
Depends: ${misc:Depends}, ${maven:Depends}
|
|
41
43
|
Recommends: ${maven:OptionalDepends}
|
|
42
44
|
Description: parsing/formatting/validating phone numbers - java
|
|
@@ -45,13 +47,13 @@ Description: parsing/formatting/validating phone numbers - java
|
|
|
45
47
|
.
|
|
46
48
|
This package contains the runtime library JARs for Java users.
|
|
47
49
|
|
|
48
|
-
Package:
|
|
50
|
+
Package: libphonenumber7-dev
|
|
49
51
|
Section: libdevel
|
|
50
52
|
Architecture: any
|
|
51
53
|
Provides: libphonenumber-dev
|
|
52
54
|
Conflicts: libphonenumber-dev
|
|
53
55
|
Replaces: libphonenumber-dev
|
|
54
|
-
Depends:
|
|
56
|
+
Depends: libphonenumber7 (=${binary:Version}), ${misc:Depends},
|
|
55
57
|
libboost-dev (>= 1.40),
|
|
56
58
|
libboost-system-dev (>= 1.40),
|
|
57
59
|
libboost-thread-dev (>= 1.40),
|
|
@@ -62,7 +64,7 @@ Description: parsing/formatting/validating phone numbers - development files
|
|
|
62
64
|
.
|
|
63
65
|
This package contains the static libraries and include files.
|
|
64
66
|
|
|
65
|
-
Package:
|
|
67
|
+
Package: libphonenumber7
|
|
66
68
|
Architecture: any
|
|
67
69
|
Pre-Depends: ${misc:Pre-Depends}
|
|
68
70
|
Depends: ${shlibs:Depends}, ${misc:Depends}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -53,7 +53,7 @@ endif
|
|
|
53
53
|
# dh $@ --with javahelper
|
|
54
54
|
|
|
55
55
|
#override_dh_auto_configure:
|
|
56
|
-
configure/
|
|
56
|
+
configure/libphonenumber7::
|
|
57
57
|
mkdir -p $(CPP_BUILD) && cd $(CPP_BUILD) && $(CMAKE) $(CMAKE_FLAGS) ..
|
|
58
58
|
|
|
59
59
|
#override_dh_auto_build:
|
|
@@ -61,7 +61,7 @@ configure/libphonenumber6::
|
|
|
61
61
|
# mkdir java/lib
|
|
62
62
|
# ln -s /usr/share/java/junit4.jar java/lib/junit-4.8.1.jar
|
|
63
63
|
# $(ANT) -f $(JAVA_BUILD).xml jar
|
|
64
|
-
build/
|
|
64
|
+
build/libphonenumber7::
|
|
65
65
|
ln -sf cpp-build-1.0-SNAPSHOT.jar tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar
|
|
66
66
|
ln -sf /usr/share/java/protobuf.jar tools/java/cpp-build/target/protobuf-java-debian.jar
|
|
67
67
|
$(MAKE) -C $(CPP_BUILD) phonenumber phonenumber-shared
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
<modelVersion>4.0.0</modelVersion>
|
|
4
4
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
5
5
|
<artifactId>carrier</artifactId>
|
|
6
|
-
<version>1.
|
|
6
|
+
<version>1.20-SNAPSHOT</version>
|
|
7
7
|
<packaging>jar</packaging>
|
|
8
8
|
<url>https://github.com/googlei18n/libphonenumber/</url>
|
|
9
9
|
|
|
10
10
|
<parent>
|
|
11
11
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
12
12
|
<artifactId>libphonenumber-parent</artifactId>
|
|
13
|
-
<version>7.
|
|
13
|
+
<version>7.1.2-SNAPSHOT</version>
|
|
14
14
|
</parent>
|
|
15
15
|
|
|
16
16
|
<build>
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
<dependency>
|
|
35
35
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
36
36
|
<artifactId>libphonenumber</artifactId>
|
|
37
|
-
<version>7.
|
|
37
|
+
<version>7.1.2-SNAPSHOT</version>
|
|
38
38
|
</dependency>
|
|
39
39
|
<dependency>
|
|
40
40
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
41
41
|
<artifactId>prefixmapper</artifactId>
|
|
42
|
-
<version>2.
|
|
42
|
+
<version>2.30-SNAPSHOT</version>
|
|
43
43
|
</dependency>
|
|
44
44
|
</dependencies>
|
|
45
45
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
<parent>
|
|
5
5
|
<artifactId>libphonenumber-parent</artifactId>
|
|
6
6
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
7
|
-
<version>7.
|
|
7
|
+
<version>7.1.2-SNAPSHOT</version>
|
|
8
8
|
</parent>
|
|
9
9
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
10
10
|
<artifactId>demo</artifactId>
|
|
11
|
-
<version>7.
|
|
11
|
+
<version>7.1.2-SNAPSHOT</version>
|
|
12
12
|
|
|
13
13
|
<properties>
|
|
14
14
|
<gae.version>1.5.4</gae.version>
|
|
@@ -43,17 +43,17 @@
|
|
|
43
43
|
<dependency>
|
|
44
44
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
45
45
|
<artifactId>libphonenumber</artifactId>
|
|
46
|
-
<version>7.
|
|
46
|
+
<version>7.1.2-SNAPSHOT</version>
|
|
47
47
|
</dependency>
|
|
48
48
|
<dependency>
|
|
49
49
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
50
50
|
<artifactId>geocoder</artifactId>
|
|
51
|
-
<version>2.
|
|
51
|
+
<version>2.30-SNAPSHOT</version>
|
|
52
52
|
</dependency>
|
|
53
53
|
<dependency>
|
|
54
54
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
55
55
|
<artifactId>carrier</artifactId>
|
|
56
|
-
<version>1.
|
|
56
|
+
<version>1.20-SNAPSHOT</version>
|
|
57
57
|
</dependency>
|
|
58
58
|
</dependencies>
|
|
59
59
|
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
<modelVersion>4.0.0</modelVersion>
|
|
4
4
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
5
5
|
<artifactId>geocoder</artifactId>
|
|
6
|
-
<version>2.
|
|
6
|
+
<version>2.30-SNAPSHOT</version>
|
|
7
7
|
<packaging>jar</packaging>
|
|
8
8
|
<url>https://github.com/googlei18n/libphonenumber/</url>
|
|
9
9
|
|
|
10
10
|
<parent>
|
|
11
11
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
12
12
|
<artifactId>libphonenumber-parent</artifactId>
|
|
13
|
-
<version>7.
|
|
13
|
+
<version>7.1.2-SNAPSHOT</version>
|
|
14
14
|
</parent>
|
|
15
15
|
|
|
16
16
|
<build>
|
|
@@ -42,12 +42,12 @@
|
|
|
42
42
|
<dependency>
|
|
43
43
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
44
44
|
<artifactId>libphonenumber</artifactId>
|
|
45
|
-
<version>7.
|
|
45
|
+
<version>7.1.2-SNAPSHOT</version>
|
|
46
46
|
</dependency>
|
|
47
47
|
<dependency>
|
|
48
48
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
49
49
|
<artifactId>prefixmapper</artifactId>
|
|
50
|
-
<version>2.
|
|
50
|
+
<version>2.30-SNAPSHOT</version>
|
|
51
51
|
</dependency>
|
|
52
52
|
</dependencies>
|
|
53
53
|
|
data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/245_en
CHANGED
|
Binary file
|
data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/245_pt
CHANGED
|
Binary file
|
|
Binary file
|
data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/config
CHANGED
|
Binary file
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
<modelVersion>4.0.0</modelVersion>
|
|
4
4
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
5
5
|
<artifactId>prefixmapper</artifactId>
|
|
6
|
-
<version>2.
|
|
6
|
+
<version>2.30-SNAPSHOT</version>
|
|
7
7
|
<packaging>jar</packaging>
|
|
8
8
|
<url>https://github.com/googlei18n/libphonenumber/</url>
|
|
9
9
|
|
|
10
10
|
<parent>
|
|
11
11
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
12
12
|
<artifactId>libphonenumber-parent</artifactId>
|
|
13
|
-
<version>7.
|
|
13
|
+
<version>7.1.2-SNAPSHOT</version>
|
|
14
14
|
<relativePath>../../pom.xml</relativePath>
|
|
15
15
|
</parent>
|
|
16
16
|
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<dependency>
|
|
30
30
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
31
31
|
<artifactId>libphonenumber</artifactId>
|
|
32
|
-
<version>7.
|
|
32
|
+
<version>7.1.2-SNAPSHOT</version>
|
|
33
33
|
</dependency>
|
|
34
34
|
</dependencies>
|
|
35
35
|
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
<modelVersion>4.0.0</modelVersion>
|
|
4
4
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
5
5
|
<artifactId>libphonenumber</artifactId>
|
|
6
|
-
<version>7.
|
|
6
|
+
<version>7.1.2-SNAPSHOT</version>
|
|
7
7
|
<packaging>jar</packaging>
|
|
8
8
|
<url>https://github.com/googlei18n/libphonenumber/</url>
|
|
9
9
|
|
|
10
10
|
<parent>
|
|
11
11
|
<groupId>com.googlecode.libphonenumber</groupId>
|
|
12
12
|
<artifactId>libphonenumber-parent</artifactId>
|
|
13
|
-
<version>7.
|
|
13
|
+
<version>7.1.2-SNAPSHOT</version>
|
|
14
14
|
</parent>
|
|
15
15
|
|
|
16
16
|
<build>
|
|
@@ -36,6 +36,8 @@
|
|
|
36
36
|
<excludes>
|
|
37
37
|
<exclude>**/SingleFileMetadataSourceImpl.class</exclude>
|
|
38
38
|
<exclude>**/SingleFileMetadataSourceImpl.java</exclude>
|
|
39
|
+
<exclude>**/SingleFileMetadataSourceImplTest.class</exclude>
|
|
40
|
+
<exclude>**/SingleFileMetadataSourceImplTest.java</exclude>
|
|
39
41
|
<exclude>**/SingleFilePhoneNumberMetadataProto</exclude>
|
|
40
42
|
<exclude>**/SingleFilePhoneNumberMetadataProtoForTesting</exclude>
|
|
41
43
|
</excludes>
|
|
@@ -55,14 +55,14 @@ final class MultiFileMetadataSourceImpl implements MetadataSource {
|
|
|
55
55
|
Collections.synchronizedMap(new HashMap<Integer, PhoneMetadata>());
|
|
56
56
|
|
|
57
57
|
// The prefix of the metadata files from which region data is loaded.
|
|
58
|
-
private final String
|
|
58
|
+
private final String filePrefix;
|
|
59
59
|
|
|
60
60
|
// The metadata loader used to inject alternative metadata sources.
|
|
61
61
|
private final MetadataLoader metadataLoader;
|
|
62
62
|
|
|
63
63
|
// It is assumed that metadataLoader is not null.
|
|
64
|
-
public MultiFileMetadataSourceImpl(String
|
|
65
|
-
this.
|
|
64
|
+
public MultiFileMetadataSourceImpl(String filePrefix, MetadataLoader metadataLoader) {
|
|
65
|
+
this.filePrefix = filePrefix;
|
|
66
66
|
this.metadataLoader = metadataLoader;
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -77,7 +77,7 @@ final class MultiFileMetadataSourceImpl implements MetadataSource {
|
|
|
77
77
|
if (!regionToMetadataMap.containsKey(regionCode)) {
|
|
78
78
|
// The regionCode here will be valid and won't be '001', so we don't need to worry about
|
|
79
79
|
// what to pass in for the country calling code.
|
|
80
|
-
loadMetadataFromFile(
|
|
80
|
+
loadMetadataFromFile(regionCode, 0);
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
return regionToMetadataMap.get(regionCode);
|
|
@@ -87,16 +87,14 @@ final class MultiFileMetadataSourceImpl implements MetadataSource {
|
|
|
87
87
|
public PhoneMetadata getMetadataForNonGeographicalRegion(int countryCallingCode) {
|
|
88
88
|
synchronized (countryCodeToNonGeographicalMetadataMap) {
|
|
89
89
|
if (!countryCodeToNonGeographicalMetadataMap.containsKey(countryCallingCode)) {
|
|
90
|
-
loadMetadataFromFile(
|
|
91
|
-
countryCallingCode, metadataLoader);
|
|
90
|
+
loadMetadataFromFile(PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY, countryCallingCode);
|
|
92
91
|
}
|
|
93
92
|
}
|
|
94
93
|
return countryCodeToNonGeographicalMetadataMap.get(countryCallingCode);
|
|
95
94
|
}
|
|
96
95
|
|
|
97
96
|
// @VisibleForTesting
|
|
98
|
-
void loadMetadataFromFile(String
|
|
99
|
-
MetadataLoader metadataLoader) {
|
|
97
|
+
void loadMetadataFromFile(String regionCode, int countryCallingCode) {
|
|
100
98
|
boolean isNonGeoRegion = PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY.equals(regionCode);
|
|
101
99
|
String fileName = filePrefix + "_" +
|
|
102
100
|
(isNonGeoRegion ? String.valueOf(countryCallingCode) : regionCode);
|
|
@@ -131,8 +129,7 @@ final class MultiFileMetadataSourceImpl implements MetadataSource {
|
|
|
131
129
|
|
|
132
130
|
/**
|
|
133
131
|
* Loads the metadata protocol buffer from the given stream and closes the stream afterwards. Any
|
|
134
|
-
* exceptions that occur while reading the stream are
|
|
135
|
-
* when the stream is closed will be ignored).
|
|
132
|
+
* exceptions that occur while reading or closing the stream are ignored.
|
|
136
133
|
*
|
|
137
134
|
* @param source the non-null stream from which metadata is to be read.
|
|
138
135
|
* @return the loaded metadata protocol buffer.
|
data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
CHANGED
|
@@ -1639,10 +1639,12 @@ public class PhoneNumberUtil {
|
|
|
1639
1639
|
} else {
|
|
1640
1640
|
// Invalid region entered as country-calling-from (so no metadata was found for it) or the
|
|
1641
1641
|
// region chosen has multiple international dialling prefixes.
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1642
|
+
if (!isValidRegionCode(regionCallingFrom)) {
|
|
1643
|
+
logger.log(Level.WARNING,
|
|
1644
|
+
"Trying to format number from invalid region "
|
|
1645
|
+
+ regionCallingFrom
|
|
1646
|
+
+ ". International formatting applied.");
|
|
1647
|
+
}
|
|
1646
1648
|
prefixNumberWithCountryCallingCode(countryCode,
|
|
1647
1649
|
PhoneNumberFormat.INTERNATIONAL,
|
|
1648
1650
|
formattedNumber);
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2015 The Libphonenumber Authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
package com.google.i18n.phonenumbers;
|
|
2
18
|
|
|
3
19
|
import com.google.i18n.phonenumbers.Phonemetadata.PhoneMetadata;
|
|
@@ -7,23 +23,21 @@ import java.io.IOException;
|
|
|
7
23
|
import java.io.InputStream;
|
|
8
24
|
import java.io.ObjectInputStream;
|
|
9
25
|
import java.util.Collections;
|
|
10
|
-
import java.util.EnumMap;
|
|
11
26
|
import java.util.HashMap;
|
|
12
|
-
import java.util.
|
|
27
|
+
import java.util.List;
|
|
13
28
|
import java.util.Map;
|
|
14
29
|
import java.util.logging.Level;
|
|
15
30
|
import java.util.logging.Logger;
|
|
16
31
|
|
|
17
32
|
/**
|
|
18
|
-
* Implementation of {@link MetadataSource} that reads from a resource file
|
|
19
|
-
* during initialization.
|
|
33
|
+
* Implementation of {@link MetadataSource} that reads from a single resource file.
|
|
20
34
|
*/
|
|
21
|
-
|
|
35
|
+
final class SingleFileMetadataSourceImpl implements MetadataSource {
|
|
22
36
|
|
|
23
37
|
private static final Logger logger =
|
|
24
38
|
Logger.getLogger(SingleFileMetadataSourceImpl.class.getName());
|
|
25
39
|
|
|
26
|
-
private static final String
|
|
40
|
+
private static final String META_DATA_FILE_NAME =
|
|
27
41
|
"/com/google/i18n/phonenumbers/data/SingleFilePhoneNumberMetadataProto";
|
|
28
42
|
|
|
29
43
|
// A mapping from a region code to the PhoneMetadata for that region.
|
|
@@ -40,57 +54,95 @@ public final class SingleFileMetadataSourceImpl implements MetadataSource {
|
|
|
40
54
|
private final Map<Integer, PhoneMetadata> countryCodeToNonGeographicalMetadataMap =
|
|
41
55
|
Collections.synchronizedMap(new HashMap<Integer, PhoneMetadata>());
|
|
42
56
|
|
|
57
|
+
// The metadata file from which region data is loaded.
|
|
58
|
+
private final String fileName;
|
|
59
|
+
|
|
60
|
+
// The metadata loader used to inject alternative metadata sources.
|
|
61
|
+
private final MetadataLoader metadataLoader;
|
|
62
|
+
|
|
63
|
+
// It is assumed that metadataLoader is not null.
|
|
64
|
+
public SingleFileMetadataSourceImpl(String fileName, MetadataLoader metadataLoader) {
|
|
65
|
+
this.fileName = fileName;
|
|
66
|
+
this.metadataLoader = metadataLoader;
|
|
67
|
+
}
|
|
68
|
+
|
|
43
69
|
// It is assumed that metadataLoader is not null.
|
|
44
70
|
public SingleFileMetadataSourceImpl(MetadataLoader metadataLoader) {
|
|
45
|
-
|
|
46
|
-
if (input == null) {
|
|
47
|
-
throw new IllegalStateException(
|
|
48
|
-
"no metadata available for PhoneNumberUtil: " + META_DATA_FILE);
|
|
49
|
-
}
|
|
50
|
-
PhoneMetadataCollection metadataCollection = loadMetadataAndCloseInput(input);
|
|
51
|
-
for (PhoneMetadata metadata : metadataCollection.getMetadataList()) {
|
|
52
|
-
String regionCode = metadata.getId();
|
|
53
|
-
int countryCallingCode = metadata.getCountryCode();
|
|
54
|
-
if (PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY.equals(regionCode)) {
|
|
55
|
-
countryCodeToNonGeographicalMetadataMap.put(countryCallingCode, metadata);
|
|
56
|
-
} else {
|
|
57
|
-
regionToMetadataMap.put(regionCode, metadata);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
71
|
+
this(META_DATA_FILE_NAME, metadataLoader);
|
|
60
72
|
}
|
|
61
73
|
|
|
62
74
|
@Override
|
|
63
75
|
public PhoneMetadata getMetadataForRegion(String regionCode) {
|
|
76
|
+
synchronized (regionToMetadataMap) {
|
|
77
|
+
if (!regionToMetadataMap.containsKey(regionCode)) {
|
|
78
|
+
// The regionCode here will be valid and won't be '001', so we don't need to worry about
|
|
79
|
+
// what to pass in for the country calling code.
|
|
80
|
+
loadMetadataFromFile();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
64
83
|
return regionToMetadataMap.get(regionCode);
|
|
65
84
|
}
|
|
66
85
|
|
|
67
86
|
@Override
|
|
68
87
|
public PhoneMetadata getMetadataForNonGeographicalRegion(int countryCallingCode) {
|
|
88
|
+
synchronized (countryCodeToNonGeographicalMetadataMap) {
|
|
89
|
+
if (!countryCodeToNonGeographicalMetadataMap.containsKey(countryCallingCode)) {
|
|
90
|
+
loadMetadataFromFile();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
69
93
|
return countryCodeToNonGeographicalMetadataMap.get(countryCallingCode);
|
|
70
94
|
}
|
|
71
95
|
|
|
96
|
+
// @VisibleForTesting
|
|
97
|
+
void loadMetadataFromFile() {
|
|
98
|
+
InputStream source = metadataLoader.loadMetadata(fileName);
|
|
99
|
+
if (source == null) {
|
|
100
|
+
logger.log(Level.SEVERE, "missing metadata: " + fileName);
|
|
101
|
+
throw new IllegalStateException("missing metadata: " + fileName);
|
|
102
|
+
}
|
|
103
|
+
ObjectInputStream in = null;
|
|
104
|
+
try {
|
|
105
|
+
in = new ObjectInputStream(source);
|
|
106
|
+
PhoneMetadataCollection metadataCollection = loadMetadataAndCloseInput(in);
|
|
107
|
+
List<PhoneMetadata> metadataList = metadataCollection.getMetadataList();
|
|
108
|
+
if (metadataList.isEmpty()) {
|
|
109
|
+
logger.log(Level.SEVERE, "empty metadata: " + fileName);
|
|
110
|
+
throw new IllegalStateException("empty metadata: " + fileName);
|
|
111
|
+
}
|
|
112
|
+
for (PhoneMetadata metadata : metadataList) {
|
|
113
|
+
String regionCode = metadata.getId();
|
|
114
|
+
int countryCallingCode = metadata.getCountryCode();
|
|
115
|
+
boolean isNonGeoRegion = PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY.equals(regionCode);
|
|
116
|
+
if (isNonGeoRegion) {
|
|
117
|
+
countryCodeToNonGeographicalMetadataMap.put(countryCallingCode, metadata);
|
|
118
|
+
} else {
|
|
119
|
+
regionToMetadataMap.put(regionCode, metadata);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
} catch (IOException e) {
|
|
123
|
+
logger.log(Level.SEVERE, "cannot load/parse metadata: " + fileName, e);
|
|
124
|
+
throw new RuntimeException("cannot load/parse metadata: " + fileName, e);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
72
128
|
/**
|
|
73
129
|
* Loads the metadata protocol buffer from the given stream and closes the stream afterwards. Any
|
|
74
|
-
* exceptions that occur while reading the stream are
|
|
75
|
-
* when the stream is closed will be ignored).
|
|
130
|
+
* exceptions that occur while reading or closing the stream are ignored.
|
|
76
131
|
*
|
|
77
132
|
* @param source the non-null stream from which metadata is to be read.
|
|
78
133
|
* @return the loaded metadata protocol buffer.
|
|
79
134
|
*/
|
|
80
|
-
private static PhoneMetadataCollection loadMetadataAndCloseInput(
|
|
135
|
+
private static PhoneMetadataCollection loadMetadataAndCloseInput(ObjectInputStream source) {
|
|
81
136
|
PhoneMetadataCollection metadataCollection = new PhoneMetadataCollection();
|
|
82
137
|
try {
|
|
83
|
-
|
|
84
|
-
ObjectInputStream in = new ObjectInputStream(source);
|
|
85
|
-
metadataCollection.readExternal(in);
|
|
86
|
-
return metadataCollection;
|
|
138
|
+
metadataCollection.readExternal(source);
|
|
87
139
|
} catch (IOException e) {
|
|
88
|
-
logger.log(Level.WARNING,
|
|
140
|
+
logger.log(Level.WARNING, "error reading input (ignored)", e);
|
|
89
141
|
} finally {
|
|
90
142
|
try {
|
|
91
143
|
source.close();
|
|
92
144
|
} catch (IOException e) {
|
|
93
|
-
logger.log(Level.WARNING,
|
|
145
|
+
logger.log(Level.WARNING, "error closing input stream (ignored)", e);
|
|
94
146
|
}
|
|
95
147
|
}
|
|
96
148
|
return metadataCollection;
|