JS: Fix duplicate keys in countryToMetadata map
authortronikos@gmail.com <tronikos@gmail.com@ee073f10-1060-11df-b6a4-87a95322a99c>
Thu, 10 May 2012 18:57:05 +0000 (18:57 +0000)
committertronikos@gmail.com <tronikos@gmail.com@ee073f10-1060-11df-b6a4-87a95322a99c>
Thu, 10 May 2012 18:57:05 +0000 (18:57 +0000)
git-svn-id: http://libphonenumber.googlecode.com/svn/trunk@453 ee073f10-1060-11df-b6a4-87a95322a99c

java/build.xml
javascript/i18n/phonenumbers/metadata.js
javascript/i18n/phonenumbers/metadatafortesting.js
javascript/i18n/phonenumbers/metadatalite.js
javascript/i18n/phonenumbers/phonenumberutil.js
tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java
tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar

index 8ce3ba3..2777266 100644 (file)
@@ -10,8 +10,8 @@
   <property name="jar.dir" value="${build.dir}/jar"/>
   <property name="lib.dir" value="lib"/>
   <property name="report.dir" value="${build.dir}/junitreport"/>
-  <property name="resources.dir" value="../resources/"/>
-  <property name="javascript.dir" value="../javascript/"/>
+  <property name="resources.dir" value="../resources"/>
+  <property name="javascript.dir" value="../javascript"/>
   <property name="build.tools.jar"
       value="../tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar"/>
 
index 514315e..84a3a92 100644 (file)
@@ -5059,7 +5059,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,[,,"(?:112|99[3459])","\\d{3}",,,"999"]
 ,[,,"NA","NA"]
 ]
-,"001":[,[,,"\\d{8}","\\d{8}",,,"12345678"]
+,"800":[,[,,"\\d{8}","\\d{8}",,,"12345678"]
 ,[,,"NA","NA",,,"12345678"]
 ,[,,"NA","NA",,,"12345678"]
 ,[,,"\\d{8}","\\d{8}",,,"12345678"]
@@ -5075,7 +5075,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"001":[,[,,"\\d{8}","\\d{8}",,,"12345678"]
+,"808":[,[,,"\\d{8}","\\d{8}",,,"12345678"]
 ,[,,"NA","NA",,,"12345678"]
 ,[,,"NA","NA",,,"12345678"]
 ,[,,"NA","NA"]
@@ -5091,7 +5091,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"001":[,[,,"[35-7]\\d{8}","\\d{9}",,,"301234567"]
+,"870":[,[,,"[35-7]\\d{8}","\\d{9}",,,"301234567"]
 ,[,,"NA","NA",,,"301234567"]
 ,[,,"(?:[356]\\d|7[6-8])\\d{7}","\\d{9}",,,"301234567"]
 ,[,,"NA","NA"]
@@ -5107,7 +5107,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"001":[,[,,"51\\d{7}(?:\\d{3})?","\\d{9}(?:\\d{3})?",,,"510012345"]
+,"883":[,[,,"51\\d{7}(?:\\d{3})?","\\d{9}(?:\\d{3})?",,,"510012345"]
 ,[,,"NA","NA",,,"510012345"]
 ,[,,"NA","NA",,,"510012345"]
 ,[,,"NA","NA"]
@@ -5124,7 +5124,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"001":[,[,,"\\d{11}","\\d{11}",,,"12345678901"]
+,"888":[,[,,"\\d{11}","\\d{11}",,,"12345678901"]
 ,[,,"NA","NA",,,"12345678901"]
 ,[,,"NA","NA",,,"12345678901"]
 ,[,,"NA","NA"]
@@ -5140,7 +5140,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"001":[,[,,"\\d{9}","\\d{9}",,,"123456789"]
+,"979":[,[,,"\\d{9}","\\d{9}",,,"123456789"]
 ,[,,"NA","NA",,,"123456789"]
 ,[,,"NA","NA",,,"123456789"]
 ,[,,"NA","NA"]
index 998012c..8585b29 100644 (file)
@@ -452,7 +452,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"001":[,[,,"\\d{8}","\\d{8}",,,"12345678"]
+,"800":[,[,,"\\d{8}","\\d{8}",,,"12345678"]
 ,[,,"NA","NA",,,"12345678"]
 ,[,,"NA","NA",,,"12345678"]
 ,[,,"\\d{8}","\\d{8}",,,"12345678"]
index 0b39932..fd45f0a 100644 (file)
@@ -5059,7 +5059,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,[,,"(?:112|99[3459])","\\d{3}"]
 ,[,,"NA","NA"]
 ]
-,"001":[,[,,"\\d{8}","\\d{8}"]
+,"800":[,[,,"\\d{8}","\\d{8}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"\\d{8}","\\d{8}"]
@@ -5075,7 +5075,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"001":[,[,,"\\d{8}","\\d{8}"]
+,"808":[,[,,"\\d{8}","\\d{8}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
@@ -5091,7 +5091,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"001":[,[,,"[35-7]\\d{8}","\\d{9}"]
+,"870":[,[,,"[35-7]\\d{8}","\\d{9}"]
 ,[,,"NA","NA"]
 ,[,,"(?:[356]\\d|7[6-8])\\d{7}","\\d{9}"]
 ,[,,"NA","NA"]
@@ -5107,7 +5107,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"001":[,[,,"51\\d{7}(?:\\d{3})?","\\d{9}(?:\\d{3})?"]
+,"883":[,[,,"51\\d{7}(?:\\d{3})?","\\d{9}(?:\\d{3})?"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
@@ -5124,7 +5124,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"001":[,[,,"\\d{11}","\\d{11}"]
+,"888":[,[,,"\\d{11}","\\d{11}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
@@ -5140,7 +5140,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"001":[,[,,"\\d{9}","\\d{9}"]
+,"979":[,[,,"\\d{9}","\\d{9}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
index 04d6980..ffc140b 100644 (file)
@@ -1250,9 +1250,16 @@ i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_ =
 i18n.phonenumbers.PhoneNumberUtil.prototype.isValidRegionCode_ =
     function(regionCode) {
 
+  // In Java we check whether the regionCode is contained in supportedRegions
+  // that is built out of all the values of countryCallingCodeToRegionCodeMap
+  // (countryCodeToRegionCodeMap in JS) minus REGION_CODE_FOR_NON_GEO_ENTITY.
+  // In JS we check whether the regionCode is contained in the keys of
+  // countryToMetadata but since for non-geographical country calling codes
+  // (e.g. +800) we use the country calling codes instead of the region code as
+  // key in the map we have to make sure regionCode is not a number to prevent
+  // returning true for non-geographical country calling codes.
   return regionCode != null &&
-      regionCode !=
-          i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY &&
+      isNaN(regionCode) &&
       regionCode.toUpperCase() in i18n.phonenumbers.metadata.countryToMetadata;
 };
 
@@ -2512,8 +2519,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.getMetadataForRegion =
 i18n.phonenumbers.PhoneNumberUtil.prototype.
     getMetadataForNonGeographicalRegion = function(countryCallingCode) {
 
-  return this.getMetadataForRegion(
-      this.getRegionCodeForCountryCode(countryCallingCode));
+  return this.getMetadataForRegion('' + countryCallingCode);
 };
 
 
index a130688..76e2814 100644 (file)
@@ -136,6 +136,11 @@ public class BuildMetadataJsonFromXml extends Command {
         writer.write(",");
       }
       String regionCode = metadata.getId();
+      // For non-geographical country calling codes (e.g. +800), use the country calling codes
+      // instead of the region code as key in the map.
+      if (regionCode.equals("001")) {
+        regionCode = Integer.toString(metadata.getCountryCode());
+      }
       JSArrayBuilder jsArrayBuilder = new JSArrayBuilder();
       toJsArray(metadata, jsArrayBuilder);
       writer.write("\"");
index 398f036..3d67596 100644 (file)
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