diff options
author | Shaopeng Jia <shaopengjia@google.com> | 2010-09-06 08:55:10 +0200 |
---|---|---|
committer | Shaopeng Jia <shaopengjia@google.com> | 2010-09-06 10:13:06 +0200 |
commit | b2697412130f6d087dde01fb1a978f7e5840a5fa (patch) | |
tree | 800c67209cd125bda25c47c66ce7c1cd2e56da35 | |
parent | 82a6d29f88ade70200c5532cca207d8b46c92d74 (diff) | |
download | libphonenumber-b2697412130f6d087dde01fb1a978f7e5840a5fa.tar.gz |
This change:
- Code improvement:
* Added new phone number type: pager
* Refactored BuildMetadataProtoFromXml.java into BuildMetadataFromXml.java and
BuildMetadataProtoFromXml.java
* Refactored CountryCodeToRegionCodeMap and CountryCodeToRegionCodeMapForTesting into separate
files.
- Bug fixes:
* ArrayOutOfBoundException in AsYouTypeFormatter.getRememberedPosition()
* AsYouTypeFormatter for UK childline number
- Metadata improvements:
* update to existing country: GG, IM, JE, RS, RU
Change-Id: I19a335cf40cb93a91bfbe449309300f0388682f1
267 files changed, 2046 insertions, 1193 deletions
diff --git a/README.android b/README.android index 350186bb..88feefd2 100644 --- a/README.android +++ b/README.android @@ -1,4 +1,4 @@ URL: http://code.google.com/p/libphonenumber/ -Version: r52 +Version: r56 License: Apache 2 Description: Google Phone Number Library. diff --git a/java/release_notes.txt b/java/release_notes.txt index 22f95b79..c51499dd 100644 --- a/java/release_notes.txt +++ b/java/release_notes.txt @@ -1,3 +1,23 @@ +September 4th, 2010 +* Code improvement: + - Added new phone number type: pager +* Metadata change: + - update to existing country: GG, IM, JE, RS, RU +* Bug fixes: + - ArrayOutOfBoundException in AsYouTypeFormatter.getRememberedPosition() + - AsYouTypeFormatter for UK childline number + +September 1st, 2010 +* Bug fix on KZ metadata. + +August 17th, 2010 +* Code improvement: + - Refactored BuildMetadataProtoFromXml.java into BuildMetadataFromXml.java and + BuildMetadataProtoFromXml.java + - Added BuildMetadataProtoFromXml.java and JSArrayBuilder.java + - Refactored CountryCodeToRegionCodeMap and CountryCodeToRegionCodeMapForTesting into separate + files. + August 16th, 2010 * Bug fixes - AsYouTypeFormatter for formatting Chinese geographical numbers entered in national format. @@ -8,7 +28,6 @@ August 16th, 2010 - update to existing countries: BF, FR, UK, PK, RE August 4th, 2010 - * Further improve startup performance - Preload no country specific metadata at startup. - Stop creating the file containing mapping from country calling code to region code @@ -24,7 +43,6 @@ July 31th, 2010 - Same change also applied to unittests July 30th, 2010 - * Metadata change: - new country: TL - update to existing country: AZ, CN, FR, GH, JO, LA, PG, PK, QA, SZ, UA, VN diff --git a/java/resources/com/google/i18n/phonenumbers/BuildMetadataFromXml.java b/java/resources/com/google/i18n/phonenumbers/BuildMetadataFromXml.java new file mode 100644 index 00000000..a33e1122 --- /dev/null +++ b/java/resources/com/google/i18n/phonenumbers/BuildMetadataFromXml.java @@ -0,0 +1,307 @@ +/* + * Copyright (C) 2009 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.i18n.phonenumbers; + +import com.google.i18n.phonenumbers.Phonemetadata.NumberFormat; +import com.google.i18n.phonenumbers.Phonemetadata.PhoneMetadata; +import com.google.i18n.phonenumbers.Phonemetadata.PhoneMetadataCollection; +import com.google.i18n.phonenumbers.Phonemetadata.PhoneNumberDesc; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.regex.Pattern; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +/** + * Library to build phone number metadata from the XML format. + * + * @author Shaopeng Jia + */ +public class BuildMetadataFromXml { + private static final Logger LOGGER = Logger.getLogger(BuildMetadataFromXml.class.getName()); + private static Boolean liteBuild; + + // Build the PhoneMetadataCollection from the input XML file. + public static PhoneMetadataCollection buildPhoneMetadataCollection(String inputXmlFile, + boolean liteBuild) throws Exception { + BuildMetadataFromXml.liteBuild = liteBuild; + DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = builderFactory.newDocumentBuilder(); + File xmlFile = new File(inputXmlFile); + Document document = builder.parse(xmlFile); + document.getDocumentElement().normalize(); + Element rootElement = document.getDocumentElement(); + NodeList territory = rootElement.getElementsByTagName("territory"); + PhoneMetadataCollection metadataCollection = new PhoneMetadataCollection(); + int numOfTerritories = territory.getLength(); + for (int i = 0; i < numOfTerritories; i++) { + Element territoryElement = (Element) territory.item(i); + String regionCode = territoryElement.getAttribute("id"); + PhoneMetadata metadata = loadCountryMetadata(regionCode, territoryElement); + metadataCollection.addMetadata(metadata); + } + return metadataCollection; + } + + // Build a mapping from a country calling code to the region codes which denote the country/region + // represented by that country code. In the case of multiple countries sharing a calling code, + // such as the NANPA countries, the one indicated with "isMainCountryForCode" in the metadata + // should be first. + public static Map<Integer, List<String>> buildCountryCodeToRegionCodeMap( + PhoneMetadataCollection metadataCollection) { + Map<Integer, List<String>> countryCodeToRegionCodeMap = + new TreeMap<Integer, List<String>>(); + for (PhoneMetadata metadata : metadataCollection.getMetadataList()) { + String regionCode = metadata.getId(); + int countryCode = metadata.getCountryCode(); + if (countryCodeToRegionCodeMap.containsKey(countryCode)) { + if (metadata.getMainCountryForCode()) { + countryCodeToRegionCodeMap.get(countryCode).add(0, regionCode); + } else { + countryCodeToRegionCodeMap.get(countryCode).add(regionCode); + } + } else { + // For most countries, there will be only one region code for the country calling code. + List<String> listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add(regionCode); + countryCodeToRegionCodeMap.put(countryCode, listWithRegionCode); + } + } + return countryCodeToRegionCodeMap; + } + + private static String validateRE(String regex) { + Pattern.compile(regex); + // return regex itself if it is of correct regex syntax + // i.e. compile did not fail with a PatternSyntaxException. + return regex; + } + + private static PhoneMetadata loadCountryMetadata(String regionCode, Element element) { + PhoneMetadata metadata = new PhoneMetadata(); + metadata.setId(regionCode); + metadata.setCountryCode(Integer.parseInt(element.getAttribute("countryCode"))); + if (element.hasAttribute("leadingDigits")) { + metadata.setLeadingDigits(validateRE(element.getAttribute("leadingDigits"))); + } + metadata.setInternationalPrefix(validateRE(element.getAttribute("internationalPrefix"))); + if (element.hasAttribute("preferredInternationalPrefix")) { + String preferredInternationalPrefix = element.getAttribute("preferredInternationalPrefix"); + metadata.setPreferredInternationalPrefix(preferredInternationalPrefix); + } + String nationalPrefix = ""; + String nationalPrefixFormattingRule = ""; + String carrierCodeFormattingRule = ""; + if (element.hasAttribute("nationalPrefix")) { + nationalPrefix = element.getAttribute("nationalPrefix"); + metadata.setNationalPrefix(nationalPrefix); + nationalPrefixFormattingRule = + validateRE(getNationalPrefixFormattingRuleFromElement(element, nationalPrefix)); + + if (element.hasAttribute("nationalPrefixForParsing")) { + metadata.setNationalPrefixForParsing( + validateRE(element.getAttribute("nationalPrefixForParsing"))); + if (element.hasAttribute("nationalPrefixTransformRule")) { + metadata.setNationalPrefixTransformRule( + validateRE(element.getAttribute("nationalPrefixTransformRule"))); + } + } else { + metadata.setNationalPrefixForParsing(nationalPrefix); + } + } + if (element.hasAttribute("preferredExtnPrefix")) { + metadata.setPreferredExtnPrefix(element.getAttribute("preferredExtnPrefix")); + } + if (element.hasAttribute("mainCountryForCode")) { + metadata.setMainCountryForCode(true); + } + + // Extract availableFormats + NodeList numberFormatElements = element.getElementsByTagName("numberFormat"); + int numOfFormatElements = numberFormatElements.getLength(); + if (numOfFormatElements > 0) { + for (int i = 0; i < numOfFormatElements; i++) { + Element numberFormatElement = (Element) numberFormatElements.item(i); + NumberFormat format = new NumberFormat(); + if (numberFormatElement.hasAttribute("nationalPrefixFormattingRule")) { + format.setNationalPrefixFormattingRule(validateRE( + getNationalPrefixFormattingRuleFromElement(numberFormatElement, nationalPrefix))); + } else { + format.setNationalPrefixFormattingRule(nationalPrefixFormattingRule); + } + if (numberFormatElement.hasAttribute("carrierCodeFormattingRule")) { + format.setDomesticCarrierCodeFormattingRule(validateRE( + getDomesticCarrierCodeFormattingRuleFromElement(numberFormatElement, + nationalPrefix))); + } else { + format.setDomesticCarrierCodeFormattingRule(carrierCodeFormattingRule); + } + setLeadingDigitsPatterns(numberFormatElement, format); + format.setPattern(validateRE(numberFormatElement.getAttribute("pattern"))); + NodeList formatPattern = numberFormatElement.getElementsByTagName("format"); + if (formatPattern.getLength() != 1) { + LOGGER.log(Level.SEVERE, + "Only one format pattern for a numberFormat element should be defined."); + throw new RuntimeException("Invalid number of format patterns for country: " + + regionCode); + } + format.setFormat(validateRE(formatPattern.item(0).getFirstChild().getNodeValue())); + metadata.addNumberFormat(format); + } + } + + NodeList intlNumberFormatElements = element.getElementsByTagName("intlNumberFormat"); + int numOfIntlFormatElements = intlNumberFormatElements.getLength(); + if (numOfIntlFormatElements > 0) { + for (int i = 0; i < numOfIntlFormatElements; i++) { + Element numberFormatElement = (Element) intlNumberFormatElements.item(i); + NumberFormat format = new NumberFormat(); + setLeadingDigitsPatterns(numberFormatElement, format); + format.setPattern(validateRE(numberFormatElement.getAttribute("pattern"))); + NodeList formatPattern = numberFormatElement.getElementsByTagName("format"); + if (formatPattern.getLength() != 1) { + LOGGER.log(Level.SEVERE, + "Only one format pattern for a numberFormat element should be defined."); + throw new RuntimeException("Invalid number of format patterns for country: " + + regionCode); + } + format.setFormat(validateRE(formatPattern.item(0).getFirstChild().getNodeValue())); + if (numberFormatElement.hasAttribute("carrierCodeFormattingRule")) { + format.setDomesticCarrierCodeFormattingRule(validateRE( + getDomesticCarrierCodeFormattingRuleFromElement(numberFormatElement, + nationalPrefix))); + } else { + format.setDomesticCarrierCodeFormattingRule(carrierCodeFormattingRule); + } + metadata.addIntlNumberFormat(format); + } + } + + PhoneNumberDesc generalDesc = new PhoneNumberDesc(); + generalDesc = processPhoneNumberDescElement(generalDesc, element, "generalDesc"); + metadata.setGeneralDesc(generalDesc); + metadata.setFixedLine(processPhoneNumberDescElement(generalDesc, element, "fixedLine")); + metadata.setMobile(processPhoneNumberDescElement(generalDesc, element, "mobile")); + metadata.setTollFree(processPhoneNumberDescElement(generalDesc, element, "tollFree")); + metadata.setPremiumRate(processPhoneNumberDescElement(generalDesc, element, "premiumRate")); + metadata.setSharedCost(processPhoneNumberDescElement(generalDesc, element, "sharedCost")); + metadata.setVoip(processPhoneNumberDescElement(generalDesc, element, "voip")); + metadata.setPersonalNumber(processPhoneNumberDescElement(generalDesc, element, + "personalNumber")); + metadata.setPager(processPhoneNumberDescElement(generalDesc, element, "pager")); + + if (metadata.getMobile().getNationalNumberPattern().equals( + metadata.getFixedLine().getNationalNumberPattern())) { + metadata.setSameMobileAndFixedLinePattern(true); + } + return metadata; + } + + private static void setLeadingDigitsPatterns(Element numberFormatElement, NumberFormat format) { + NodeList leadingDigitsPatternNodes = numberFormatElement.getElementsByTagName("leadingDigits"); + int numOfLeadingDigitsPatterns = leadingDigitsPatternNodes.getLength(); + if (numOfLeadingDigitsPatterns > 0) { + for (int i = 0; i < numOfLeadingDigitsPatterns; i++) { + format.addLeadingDigitsPattern( + validateRE((leadingDigitsPatternNodes.item(i)).getFirstChild().getNodeValue())); + } + } + } + + private static String getNationalPrefixFormattingRuleFromElement(Element element, + String nationalPrefix) { + String nationalPrefixFormattingRule = element.getAttribute("nationalPrefixFormattingRule"); + // Replace $NP with national prefix and $FG with the first group ($1). + nationalPrefixFormattingRule = + nationalPrefixFormattingRule.replaceFirst("\\$NP", nationalPrefix) + .replaceFirst("\\$FG", "\\$1"); + return nationalPrefixFormattingRule; + } + + private static String getDomesticCarrierCodeFormattingRuleFromElement(Element element, + String nationalPrefix) { + String carrierCodeFormattingRule = element.getAttribute("carrierCodeFormattingRule"); + // Replace $FG with the first group ($1) and $NP with the national prefix. + carrierCodeFormattingRule = carrierCodeFormattingRule.replaceFirst("\\$FG", "\\$1") + .replaceFirst("\\$NP", nationalPrefix); + return carrierCodeFormattingRule; + } + + /** + * Processes a phone number description element from the XML file and returns it as a + * PhoneNumberDesc. If the description element is a fixed line or mobile number, the general + * description will be used to fill in the whole element if necessary, or any components that are + * missing. For all other types, the general description will only be used to fill in missing + * components if the type has a partial definition. For example, if no "tollFree" element exists, + * we assume there are no toll free numbers for that locale, and return a phone number description + * with "NA" for both the national and possible number patterns. + * + * @param generalDesc a generic phone number description that will be used to fill in missing + * parts of the description + * @param countryElement the XML element representing all the country information + * @param numberType the name of the number type, corresponding to the appropriate tag in the XML + * file with information about that type + * @return complete description of that phone number type + */ + private static PhoneNumberDesc processPhoneNumberDescElement(PhoneNumberDesc generalDesc, + Element countryElement, + String numberType) { + NodeList phoneNumberDescList = countryElement.getElementsByTagName(numberType); + PhoneNumberDesc numberDesc = new PhoneNumberDesc(); + if (phoneNumberDescList.getLength() == 0 && + (!numberType.equals("fixedLine") && !numberType.equals("mobile") && + !numberType.equals("generalDesc"))) { + numberDesc.setNationalNumberPattern("NA"); + numberDesc.setPossibleNumberPattern("NA"); + return numberDesc; + } + numberDesc.mergeFrom(generalDesc); + if (phoneNumberDescList.getLength() > 0) { + Element element = (Element) phoneNumberDescList.item(0); + NodeList possiblePattern = element.getElementsByTagName("possibleNumberPattern"); + if (possiblePattern.getLength() > 0) { + numberDesc.setPossibleNumberPattern( + validateRE(possiblePattern.item(0).getFirstChild().getNodeValue())); + } + + NodeList validPattern = element.getElementsByTagName("nationalNumberPattern"); + if (validPattern.getLength() > 0) { + numberDesc.setNationalNumberPattern( + validateRE(validPattern.item(0).getFirstChild().getNodeValue())); + } + + if (!liteBuild) { + NodeList exampleNumber = element.getElementsByTagName("exampleNumber"); + if (exampleNumber.getLength() > 0) { + numberDesc.setExampleNumber(exampleNumber.item(0).getFirstChild().getNodeValue()); + } + } + } + return numberDesc; + } +} diff --git a/java/resources/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java b/java/resources/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java new file mode 100644 index 00000000..95952a71 --- /dev/null +++ b/java/resources/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java @@ -0,0 +1,384 @@ +/* + * Copyright (C) 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.i18n.phonenumbers; + +import com.google.i18n.phonenumbers.Phonemetadata.NumberFormat; +import com.google.i18n.phonenumbers.Phonemetadata.PhoneMetadata; +import com.google.i18n.phonenumbers.Phonemetadata.PhoneMetadataCollection; +import com.google.i18n.phonenumbers.Phonemetadata.PhoneNumberDesc; + +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Formatter; +import java.util.List; +import java.util.Map; + +/** + * Tool to convert phone number metadata from the XML format to JSON format. + * + * @author Nikolaos Trogkanis + */ +public class BuildMetadataJsonFromXml { + private static final String NAMESPACE = "i18n.phonenumbers.metadata"; + + private static final String HELP_MESSAGE = + "Usage:\n" + + "BuildMetadataJsonFromXml <inputFile> <outputFile> [<liteBuild>]\n" + + "\n" + + "where:\n" + + " inputFile The input file containing phone number metadata in XML format.\n" + + " outputFile The output file to contain phone number metadata in JSON format.\n" + + " liteBuild Whether to generate the lite-version of the metadata (default:\n" + + " false). When set to true certain metadata will be omitted.\n" + + " At this moment, example numbers information is omitted.\n" + + "\n" + + "Example command line invocation:\n" + + "BuildMetadataJsonFromXml PhoneNumberMetadata.xml metadatalite.js true\n"; + + static final String COPYRIGHT_NOTICE = + "/*\n" + + " * @license\n" + + " * Copyright (C) 2010 Google Inc.\n" + + " *\n" + + " * Licensed under the Apache License, Version 2.0 (the \"License\");\n" + + " * you may not use this file except in compliance with the License.\n" + + " * You may obtain a copy of the License at\n" + + " *\n" + + " * http://www.apache.org/licenses/LICENSE-2.0\n" + + " *\n" + + " * Unless required by applicable law or agreed to in writing, software\n" + + " * distributed under the License is distributed on an \"AS IS\" BASIS,\n" + + " * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" + + " * See the License for the specific language governing permissions and\n" + + " * limitations under the License.\n" + + " */\n\n"; + + private static final String FILE_OVERVIEW = + "/**\n" + + " * @fileoverview Generated metadata for file\n" + + " * %s\n" + + " * @author Nikolaos Trogkanis\n" + + " */\n\n"; + + private static final String COUNTRY_CODE_TO_REGION_CODE_MAP_COMMENT = + "/**\n" + + " * A mapping from a country code to the region codes which denote the\n" + + " * 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" + + " * @type {Object.<number, Array.<string>>}\n" + + " */\n"; + + private static final String COUNTRY_TO_METADATA_COMMENT = + "/**\n" + + " * A mapping from a region code to the PhoneMetadata for that region.\n" + + " * @type {Object.<string, Array>}\n" + + " */\n"; + + public static void main(String[] args) throws Exception { + if (args.length != 2 && args.length != 3) { + System.err.println(HELP_MESSAGE); + System.exit(1); + } + String inputFile = args[0]; + String outputFile = args[1]; + boolean liteBuild = args.length > 2 && args[2].equals("true"); + + PhoneMetadataCollection metadataCollection = + BuildMetadataFromXml.buildPhoneMetadataCollection(inputFile, liteBuild); + Map<Integer, List<String>> countryCodeToRegionCodeMap = + BuildMetadataFromXml.buildCountryCodeToRegionCodeMap(metadataCollection); + + BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile)); + + writer.write(COPYRIGHT_NOTICE); + Formatter formatter = new Formatter(writer); + formatter.format(FILE_OVERVIEW, inputFile); + + writer.write("goog.provide('" + NAMESPACE + "');\n\n"); + + writer.write(COUNTRY_CODE_TO_REGION_CODE_MAP_COMMENT); + writer.write(NAMESPACE + ".countryCodeToRegionCodeMap = "); + writeCountryCodeCodeToRegionCodeMap(countryCodeToRegionCodeMap, writer); + writer.write(";\n\n"); + + writer.write(COUNTRY_TO_METADATA_COMMENT); + writer.write(NAMESPACE + ".countryToMetadata = "); + writeCountryToMetadataMap(metadataCollection, writer); + writer.write(";\n"); + + writer.flush(); + writer.close(); + } + + // Writes a PhoneMetadataCollection in JSON format. + private static void writeCountryToMetadataMap(PhoneMetadataCollection metadataCollection, + BufferedWriter writer) throws IOException { + writer.write("{\n"); + boolean isFirstTimeInLoop = true; + for (PhoneMetadata metadata : metadataCollection.getMetadataList()) { + if (isFirstTimeInLoop) { + isFirstTimeInLoop = false; + } else { + writer.write(","); + } + String regionCode = metadata.getId(); + JSArrayBuilder jsArrayBuilder = new JSArrayBuilder(); + toJsArray(metadata, jsArrayBuilder); + writer.write("\""); + writer.write(regionCode); + writer.write("\":"); + writer.write(jsArrayBuilder.toString()); + } + writer.write("}"); + } + + // Writes a Map<Integer, List<String>> in JSON format. + private static void writeCountryCodeCodeToRegionCodeMap( + Map<Integer, List<String>> countryCodeToRegionCodeMap, + BufferedWriter writer) throws IOException { + writer.write("{\n"); + boolean isFirstTimeInLoop = true; + for (Map.Entry<Integer, List<String>> entry : countryCodeToRegionCodeMap.entrySet()) { + if (isFirstTimeInLoop) { + isFirstTimeInLoop = false; + } else { + writer.write(","); + } + writer.write(Integer.toString(entry.getKey())); + writer.write(":"); + JSArrayBuilder jsArrayBuilder = new JSArrayBuilder(); + jsArrayBuilder.beginArray(); + jsArrayBuilder.appendIterator(entry.getValue().iterator()); + jsArrayBuilder.endArray(); + writer.write(jsArrayBuilder.toString()); + } + writer.write("}"); + } + + // Converts NumberFormat to JSArray. + private static void toJsArray(NumberFormat format, JSArrayBuilder jsArrayBuilder) { + jsArrayBuilder.beginArray(); + + // missing 0 + jsArrayBuilder.append(null); + // required string pattern = 1; + jsArrayBuilder.append(format.getPattern()); + // required string format = 2; + jsArrayBuilder.append(format.getFormat()); + // repeated string leading_digits_pattern = 3; + int leadingDigitsPatternSize = format.getLeadingDigitsPatternCount(); + if (leadingDigitsPatternSize > 0) { + jsArrayBuilder.beginArray(); + for (int i = 0; i < leadingDigitsPatternSize; i++) { + jsArrayBuilder.append(format.getLeadingDigitsPattern(i)); + } + jsArrayBuilder.endArray(); + } else { + jsArrayBuilder.append(null); + } + // optional string national_prefix_formatting_rule = 4; + if (format.hasNationalPrefixFormattingRule()) { + jsArrayBuilder.append(format.getNationalPrefixFormattingRule()); + } else { + jsArrayBuilder.append(null); + } + // optional string domestic_carrier_code_formatting_rule = 5; + if (format.hasDomesticCarrierCodeFormattingRule()) { + jsArrayBuilder.append(format.getDomesticCarrierCodeFormattingRule()); + } else { + jsArrayBuilder.append(null); + } + + jsArrayBuilder.endArray(); + } + + // Converts PhoneNumberDesc to JSArray. + private static void toJsArray(PhoneNumberDesc desc, JSArrayBuilder jsArrayBuilder) { + jsArrayBuilder.beginArray(); + + // missing 0 + jsArrayBuilder.append(null); + // missing 1 + jsArrayBuilder.append(null); + // optional string national_number_pattern = 2; + if (desc.hasNationalNumberPattern()) { + jsArrayBuilder.append(desc.getNationalNumberPattern()); + } else { + jsArrayBuilder.append(null); + } + // optional string possible_number_pattern = 3; + if (desc.hasPossibleNumberPattern()) { + jsArrayBuilder.append(desc.getPossibleNumberPattern()); + } else { + jsArrayBuilder.append(null); + } + // missing 4 + jsArrayBuilder.append(null); + // missing 5 + jsArrayBuilder.append(null); + // optional string example_number = 6; + if (desc.hasExampleNumber()) { + jsArrayBuilder.append(desc.getExampleNumber()); + } else { + jsArrayBuilder.append(null); + } + + jsArrayBuilder.endArray(); + } + + // Converts PhoneMetadata to JSArray. + private static void toJsArray(PhoneMetadata metadata, JSArrayBuilder jsArrayBuilder) { + jsArrayBuilder.beginArray(); + + // missing 0 + jsArrayBuilder.append(null); + // required PhoneNumberDesc general_desc = 1; + if (metadata.hasGeneralDesc()) { + toJsArray(metadata.getGeneralDesc(), jsArrayBuilder); + } else { + jsArrayBuilder.append(null); + } + // required PhoneNumberDesc fixed_line = 2; + if (metadata.hasFixedLine()) { + toJsArray(metadata.getFixedLine(), jsArrayBuilder); + } else { + jsArrayBuilder.append(null); + } + // required PhoneNumberDesc mobile = 3; + if (metadata.hasMobile()) { + toJsArray(metadata.getMobile(), jsArrayBuilder); + } else { + jsArrayBuilder.append(null); + } + // required PhoneNumberDesc toll_free = 4; + if (metadata.hasTollFree()) { + toJsArray(metadata.getTollFree(), jsArrayBuilder); + } else { + jsArrayBuilder.append(null); + } + // required PhoneNumberDesc premium_rate = 5; + if (metadata.hasPremiumRate()) { + toJsArray(metadata.getPremiumRate(), jsArrayBuilder); + } else { + jsArrayBuilder.append(null); + } + // required PhoneNumberDesc shared_cost = 6; + if (metadata.hasSharedCost()) { + toJsArray(metadata.getSharedCost(), jsArrayBuilder); + } else { + jsArrayBuilder.append(null); + } + // required PhoneNumberDesc personal_number = 7; + if (metadata.hasPersonalNumber()) { + toJsArray(metadata.getPersonalNumber(), jsArrayBuilder); + } else { + jsArrayBuilder.append(null); + } + // required PhoneNumberDesc voip = 8; + if (metadata.hasVoip()) { + toJsArray(metadata.getVoip(), jsArrayBuilder); + } else { + jsArrayBuilder.append(null); + } + + // required string id = 9; + jsArrayBuilder.append(metadata.getId()); + // required int32 country_code = 10; + jsArrayBuilder.append(metadata.getCountryCode()); + // required string international_prefix = 11; + jsArrayBuilder.append(metadata.getInternationalPrefix()); + + // optional string national_prefix = 12; + if (metadata.hasNationalPrefix()) { + jsArrayBuilder.append(metadata.getNationalPrefix()); + } else { + jsArrayBuilder.append(null); + } + // optional string preferred_extn_prefix = 13; + if (metadata.hasPreferredExtnPrefix()) { + jsArrayBuilder.append(metadata.getPreferredExtnPrefix()); + } else { + jsArrayBuilder.append(null); + } + // missing 14 + jsArrayBuilder.append(null); + // optional string national_prefix_for_parsing = 15; + if (metadata.hasNationalPrefixForParsing()) { + jsArrayBuilder.append(metadata.getNationalPrefixForParsing()); + } else { + jsArrayBuilder.append(null); + } + // optional string national_prefix_transform_rule = 16; + if (metadata.hasNationalPrefixTransformRule()) { + jsArrayBuilder.append(metadata.getNationalPrefixTransformRule()); + } else { + jsArrayBuilder.append(null); + } + // optional string preferred_international_prefix = 17; + if (metadata.hasPreferredInternationalPrefix()) { + jsArrayBuilder.append(metadata.getPreferredInternationalPrefix()); + } else { + jsArrayBuilder.append(null); + } + // optional bool same_mobile_and_fixed_line_pattern = 18 [default=false]; + if (metadata.getSameMobileAndFixedLinePattern()) { + jsArrayBuilder.append(1); + } else { + jsArrayBuilder.append(null); + } + // repeated NumberFormat number_format = 19; + int numberFormatSize = metadata.getNumberFormatCount(); + if (numberFormatSize > 0) { + jsArrayBuilder.beginArray(); + for (int i = 0; i < numberFormatSize; i++) { + toJsArray(metadata.getNumberFormat(i), jsArrayBuilder); + } + jsArrayBuilder.endArray(); + } else { + jsArrayBuilder.append(null); + } + // repeated NumberFormat intl_number_format = 20; + int intlNumberFormatSize = metadata.getIntlNumberFormatCount(); + if (intlNumberFormatSize > 0) { + jsArrayBuilder.beginArray(); + for (int i = 0; i < intlNumberFormatSize; i++) { + toJsArray(metadata.getIntlNumberFormat(i), jsArrayBuilder); + } + jsArrayBuilder.endArray(); + } else { + jsArrayBuilder.append(null); + } + // missing 21 + jsArrayBuilder.append(null); + // optional bool main_country_for_code = 22 [default=false]; + if (metadata.getMainCountryForCode()) { + jsArrayBuilder.append(1); + } else { + jsArrayBuilder.append(null); + } + // optional string leading_digits = 23; + if (metadata.hasLeadingDigits()) { + jsArrayBuilder.append(metadata.getLeadingDigits()); + } else { + jsArrayBuilder.append(null); + } + + jsArrayBuilder.endArray(); + } +} diff --git a/java/resources/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java b/java/resources/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java index 7e3bcc18..6fa91245 100644 --- a/java/resources/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java +++ b/java/resources/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java @@ -16,275 +16,168 @@ package com.google.i18n.phonenumbers; -import com.google.i18n.phonenumbers.Phonemetadata.NumberFormat; import com.google.i18n.phonenumbers.Phonemetadata.PhoneMetadata; import com.google.i18n.phonenumbers.Phonemetadata.PhoneMetadataCollection; -import com.google.i18n.phonenumbers.Phonemetadata.PhoneNumberDesc; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; -import java.io.File; +import java.io.BufferedWriter; import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; import java.io.ObjectOutputStream; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.util.regex.Pattern; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; +import java.util.Formatter; +import java.util.List; +import java.util.Map; /** - * Tool to convert phone number metadata from the XML format to protocol buffer format. It is - * wrapped in the genrule of the BUILD file and run as a preprocessing step when building the - * phone number library. Example command line invocation: - * - * ./BuildMetadataProtoFromXml PhoneNumberMetadata.xml PhoneNumberMetadataProto true - * - * When liteBuild flag is set to true, the outputFile generated omits certain metadata which is not - * needed for clients using liteBuild. At this moment, example numbers information is omitted. + * Tool to convert phone number metadata from the XML format to protocol buffer format. * * @author Shaopeng Jia */ public class BuildMetadataProtoFromXml { - private BuildMetadataProtoFromXml() { - } - private static final Logger LOGGER = Logger.getLogger(BuildMetadataProtoFromXml.class.getName()); - private static Boolean liteBuild; + private static final String PACKAGE_NAME = PhoneNumberUtil.class.getPackage().getName(); + + private static final String HELP_MESSAGE = + "Usage:\n" + + "BuildMetadataProtoFromXml <inputFile> <outputDir> <forTesting> [<liteBuild>]\n" + + "\n" + + "where:\n" + + " inputFile The input file containing phone number metadata in XML format.\n" + + " outputDir The output directory to store phone number metadata in proto\n" + + " format (one file per region) and the country code to region code\n" + + " mapping file.\n" + + " forTesting Flag whether to generate metadata for testing purposes or not.\n" + + " liteBuild Whether to generate the lite-version of the metadata (default:\n" + + " false). When set to true certain metadata will be omitted.\n" + + " At this moment, example numbers information is omitted.\n" + + "\n" + + "Metadata will be stored in:\n" + + " <outputDir>" + PhoneNumberUtil.META_DATA_FILE_PREFIX + "_*\n" + + "Mapping file will be stored in:\n" + + " <outputDir>/" + PACKAGE_NAME.replaceAll("\\.", "/") + "/" + + PhoneNumberUtil.COUNTRY_CODE_TO_REGION_CODE_MAP_CLASS_NAME + ".java\n" + + "\n" + + "Example command line invocation:\n" + + "BuildMetadataProtoFromXml PhoneNumberMetadata.xml src false false\n"; public static void main(String[] args) throws Exception { + if (args.length != 3 && args.length != 4) { + System.err.println(HELP_MESSAGE); + System.exit(1); + } String inputFile = args[0]; - String filePrefix = args[1]; - liteBuild = args.length > 2 && Boolean.getBoolean(args[2]); - File xmlFile = new File(inputFile); + String outputDir = args[1]; + boolean forTesting = args[2].equals("true"); + boolean liteBuild = args.length > 3 && args[3].equals("true"); + + String filePrefix; + if (forTesting) { + filePrefix = outputDir + PhoneNumberUtilTest.TEST_META_DATA_FILE_PREFIX; + } else { + filePrefix = outputDir + PhoneNumberUtil.META_DATA_FILE_PREFIX; + } + + PhoneMetadataCollection metadataCollection = + BuildMetadataFromXml.buildPhoneMetadataCollection(inputFile, liteBuild); - DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = builderFactory.newDocumentBuilder(); - Document document = builder.parse(xmlFile); - document.getDocumentElement().normalize(); - Element rootElement = document.getDocumentElement(); - NodeList territory = rootElement.getElementsByTagName("territory"); - PhoneMetadataCollection metadataCollection = new PhoneMetadataCollection(); - int numOfTerritories = territory.getLength(); - for (int i = 0; i < numOfTerritories; i++) { - Element territoryElement = (Element) territory.item(i); - String regionCode = territoryElement.getAttribute("id"); - PhoneMetadata metadata = loadCountryMetadata(regionCode, territoryElement); - metadataCollection.addMetadata(metadata); + for (PhoneMetadata metadata : metadataCollection.getMetadataList()) { + String regionCode = metadata.getId(); + PhoneMetadataCollection outMetadataCollection = new PhoneMetadataCollection(); + outMetadataCollection.addMetadata(metadata); FileOutputStream outputForRegion = new FileOutputStream(filePrefix + "_" + regionCode); ObjectOutputStream out = new ObjectOutputStream(outputForRegion); - metadataCollection.writeExternal(out); + outMetadataCollection.writeExternal(out); out.close(); - metadataCollection.clear(); - } - } - - private static String validateRE(String regex) { - Pattern.compile(regex); - // return regex itself if it is of correct regex syntax - return regex; - } - - private static PhoneMetadata loadCountryMetadata(String regionCode, Element element) { - PhoneMetadata metadata = new PhoneMetadata(); - metadata.setId(regionCode); - metadata.setCountryCode(Integer.parseInt(element.getAttribute("countryCode"))); - if (element.hasAttribute("leadingDigits")) { - metadata.setLeadingDigits(validateRE(element.getAttribute("leadingDigits"))); } - metadata.setInternationalPrefix(validateRE(element.getAttribute("internationalPrefix"))); - if (element.hasAttribute("preferredInternationalPrefix")) { - String preferredInternationalPrefix = element.getAttribute("preferredInternationalPrefix"); - metadata.setPreferredInternationalPrefix(preferredInternationalPrefix); - } - String nationalPrefix = ""; - String nationalPrefixFormattingRule = ""; - String carrierCodeFormattingRule = ""; - if (element.hasAttribute("nationalPrefix")) { - nationalPrefix = element.getAttribute("nationalPrefix"); - metadata.setNationalPrefix(nationalPrefix); - nationalPrefixFormattingRule = - validateRE(getNationalPrefixFormattingRuleFromElement(element, nationalPrefix)); - if (element.hasAttribute("nationalPrefixForParsing")) { - metadata.setNationalPrefixForParsing( - validateRE(element.getAttribute("nationalPrefixForParsing"))); - if (element.hasAttribute("nationalPrefixTransformRule")) { - metadata.setNationalPrefixTransformRule( - element.getAttribute("nationalPrefixTransformRule")); - } - } else { - metadata.setNationalPrefixForParsing(nationalPrefix); - } - } - if (element.hasAttribute("preferredExtnPrefix")) { - metadata.setPreferredExtnPrefix(element.getAttribute("preferredExtnPrefix")); - } - - if (element.hasAttribute("mainCountryForCode")) { - metadata.setMainCountryForCode(true); - } + Map<Integer, List<String>> countryCodeToRegionCodeMap = + BuildMetadataFromXml.buildCountryCodeToRegionCodeMap(metadataCollection); - // Extract availableFormats - NodeList numberFormatElements = element.getElementsByTagName("numberFormat"); - int numOfFormatElements = numberFormatElements.getLength(); - if (numOfFormatElements > 0) { - for (int i = 0; i < numOfFormatElements; i++) { - Element numberFormatElement = (Element) numberFormatElements.item(i); - NumberFormat format = new NumberFormat(); - if (numberFormatElement.hasAttribute("nationalPrefixFormattingRule")) { - format.setNationalPrefixFormattingRule(validateRE( - getNationalPrefixFormattingRuleFromElement(numberFormatElement, nationalPrefix))); - } else { - format.setNationalPrefixFormattingRule(nationalPrefixFormattingRule); - } - if (numberFormatElement.hasAttribute("carrierCodeFormattingRule")) { - format.setDomesticCarrierCodeFormattingRule(validateRE( - getDomesticCarrierCodeFormattingRuleFromElement(numberFormatElement, - nationalPrefix))); - } else { - format.setDomesticCarrierCodeFormattingRule(carrierCodeFormattingRule); - } - setLeadingDigitsPatterns(numberFormatElement, format); - format.setPattern(validateRE(numberFormatElement.getAttribute("pattern"))); - NodeList formatPattern = numberFormatElement.getElementsByTagName("format"); - if (formatPattern.getLength() != 1) { - LOGGER.log(Level.SEVERE, - "Only one format pattern for a numberFormat element should be defined."); - throw new RuntimeException("Invalid number of format patterns for country: " + - regionCode); - } - format.setFormat(validateRE(formatPattern.item(0).getFirstChild().getNodeValue())); - metadata.addNumberFormat(format); - } - } - - NodeList intlNumberFormatElements = element.getElementsByTagName("intlNumberFormat"); - int numOfIntlFormatElements = intlNumberFormatElements.getLength(); - if (numOfIntlFormatElements > 0) { - for (int i = 0; i < numOfIntlFormatElements; i++) { - Element numberFormatElement = (Element) intlNumberFormatElements.item(i); - NumberFormat format = new NumberFormat(); - setLeadingDigitsPatterns(numberFormatElement, format); - format.setPattern(validateRE(numberFormatElement.getAttribute("pattern"))); - NodeList formatPattern = numberFormatElement.getElementsByTagName("format"); - if (formatPattern.getLength() != 1) { - LOGGER.log(Level.SEVERE, - "Only one format pattern for a numberFormat element should be defined."); - throw new RuntimeException("Invalid number of format patterns for country: " + - regionCode); - } - format.setFormat(validateRE(formatPattern.item(0).getFirstChild().getNodeValue())); - if (numberFormatElement.hasAttribute("carrierCodeFormattingRule")) { - format.setDomesticCarrierCodeFormattingRule(validateRE( - getDomesticCarrierCodeFormattingRuleFromElement(numberFormatElement, - nationalPrefix))); - } else { - format.setDomesticCarrierCodeFormattingRule(carrierCodeFormattingRule); - } - metadata.addIntlNumberFormat(format); - } - } - - PhoneNumberDesc generalDesc = - processPhoneNumberDescElement(new PhoneNumberDesc(), element, "generalDesc"); - metadata.setGeneralDesc(generalDesc); - metadata.setFixedLine(processPhoneNumberDescElement(generalDesc, element, "fixedLine")); - metadata.setMobile(processPhoneNumberDescElement(generalDesc, element, "mobile")); - metadata.setTollFree(processPhoneNumberDescElement(generalDesc, element, "tollFree")); - metadata.setPremiumRate(processPhoneNumberDescElement(generalDesc, element, "premiumRate")); - metadata.setSharedCost(processPhoneNumberDescElement(generalDesc, element, "sharedCost")); - metadata.setVoip(processPhoneNumberDescElement(generalDesc, element, "voip")); - metadata.setPersonalNumber(processPhoneNumberDescElement(generalDesc, element, - "personalNumber")); - - if (metadata.getMobile().getNationalNumberPattern().equals( - metadata.getFixedLine().getNationalNumberPattern())) { - metadata.setSameMobileAndFixedLinePattern(true); - } - return metadata; + writeCountryCallingCodeMappingToJavaFile(countryCodeToRegionCodeMap, outputDir, forTesting); } - private static void setLeadingDigitsPatterns(Element numberFormatElement, NumberFormat format) { - NodeList leadingDigitsPatternNodes = numberFormatElement.getElementsByTagName("leadingDigits"); - int numOfLeadingDigitsPatterns = leadingDigitsPatternNodes.getLength(); - if (numOfLeadingDigitsPatterns > 0) { - for (int i = 0; i < numOfLeadingDigitsPatterns; i++) { - format.addLeadingDigitsPattern( - validateRE((leadingDigitsPatternNodes.item(i)).getFirstChild().getNodeValue())); - } + static final String COPYRIGHT_NOTICE = + "/*\n" + + " * Copyright (C) 2010 Google Inc.\n" + + " *\n" + + " * Licensed under the Apache License, Version 2.0 (the \"License\");\n" + + " * you may not use this file except in compliance with the License.\n" + + " * You may obtain a copy of the License at\n" + + " *\n" + + " * http://www.apache.org/licenses/LICENSE-2.0\n" + + " *\n" + + " * Unless required by applicable law or agreed to in writing, software\n" + + " * distributed under the License is distributed on an \"AS IS\" BASIS,\n" + + " * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" + + " * See the License for the specific language governing permissions and\n" + + " * limitations under the License.\n" + + " *\n" + + " * This file is automatically generated by BuildMetadataProtoFromXml. Please\n" + + " * don't modify directly.\n" + + " */\n\n"; + private static final String MAPPING_IMPORTS = + "import java.util.ArrayList;\n" + + "import java.util.HashMap;\n" + + "import java.util.List;\n" + + "import java.util.Map;\n"; + private static final String MAPPING_COMMENT = + " // A mapping from a country code to the region codes which denote the\n" + + " // 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 double MAPPING_LOAD_FACTOR = 0.75; + private static final String MAPPING_COMMENT_2 = + " // The capacity is set to %d as there are %d different country codes,\n" + + " // and this offers a load factor of roughly " + MAPPING_LOAD_FACTOR + ".\n"; + + private static void writeCountryCallingCodeMappingToJavaFile( + Map<Integer, List<String>> countryCodeToRegionCodeMap, + String outputDir, boolean forTesting) throws IOException { + String mappingClassName; + if (forTesting) { + mappingClassName = PhoneNumberUtilTest.TEST_COUNTRY_CODE_TO_REGION_CODE_MAP_CLASS_NAME; + } else { + mappingClassName = PhoneNumberUtil.COUNTRY_CODE_TO_REGION_CODE_MAP_CLASS_NAME; } - } - - private static String getNationalPrefixFormattingRuleFromElement(Element element, - String nationalPrefix) { - String nationalPrefixFormattingRule = element.getAttribute("nationalPrefixFormattingRule"); - // Replace $NP with national prefix and $FG with the first group ($1). - nationalPrefixFormattingRule = - nationalPrefixFormattingRule.replaceFirst("\\$NP", nationalPrefix) - .replaceFirst("\\$FG", "\\$1"); - return nationalPrefixFormattingRule; - } + String mappingFile = + outputDir + "/" + PACKAGE_NAME.replaceAll("\\.", "/") + "/" + mappingClassName + ".java"; + int capacity = (int) (countryCodeToRegionCodeMap.size() / MAPPING_LOAD_FACTOR); - private static String getDomesticCarrierCodeFormattingRuleFromElement(Element element, - String nationalPrefix) { - String carrierCodeFormattingRule = element.getAttribute("carrierCodeFormattingRule"); - // Replace $FG with the first group ($1) and $NP with the national prefix. - carrierCodeFormattingRule = carrierCodeFormattingRule.replaceFirst("\\$FG", "\\$1") - .replaceFirst("\\$NP", nationalPrefix); - return carrierCodeFormattingRule; - } + BufferedWriter writer = new BufferedWriter(new FileWriter(mappingFile)); - /** - * Processes a phone number description element from the XML file and returns it as a - * PhoneNumberDesc. If the description element is a fixed line or mobile number, the general - * description will be used to fill in the whole element if necessary, or any components that are - * missing. For all other types, the general description will only be used to fill in missing - * components if the type has a partial definition. For example, if no "tollFree" element exists, - * we assume there are no toll free numbers for that locale, and return a phone number description - * with "NA" for both the national and possible number patterns. - * - * @param generalDesc a generic phone number description that will be used to fill in missing - * parts of the description - * @param countryElement the XML element representing all the country information - * @param numberType the name of the number type, corresponding to the appropriate tag in the XML - * file with information about that type - * @return complete description of that phone number type - */ - private static PhoneNumberDesc processPhoneNumberDescElement(PhoneNumberDesc generalDesc, - Element countryElement, - String numberType) { - NodeList phoneNumberDescList = countryElement.getElementsByTagName(numberType); - PhoneNumberDesc numberDesc = new PhoneNumberDesc(); - if (phoneNumberDescList.getLength() == 0 && - (!numberType.equals("fixedLine") && !numberType.equals("mobile") && - !numberType.equals("generalDesc"))) { - numberDesc.setNationalNumberPattern("NA"); - numberDesc.setPossibleNumberPattern("NA"); - return numberDesc; + writer.write(COPYRIGHT_NOTICE); + if (PACKAGE_NAME.length() > 0) { + writer.write("package " + PACKAGE_NAME + ";\n\n"); } - numberDesc.mergeFrom(generalDesc); - if (phoneNumberDescList.getLength() > 0) { - Element element = (Element) phoneNumberDescList.item(0); - NodeList possiblePattern = element.getElementsByTagName("possibleNumberPattern"); - if (possiblePattern.getLength() > 0) { - numberDesc.setPossibleNumberPattern( - validateRE(possiblePattern.item(0).getFirstChild().getNodeValue())); + writer.write(MAPPING_IMPORTS); + writer.write("\n"); + writer.write("public class " + mappingClassName + " {\n"); + writer.write(MAPPING_COMMENT); + writer.write(" static Map<Integer, List<String>> getCountryCodeToRegionCodeMap() {\n"); + Formatter formatter = new Formatter(writer); + formatter.format(MAPPING_COMMENT_2, capacity, countryCodeToRegionCodeMap.size()); + writer.write(" Map<Integer, List<String>> countryCodeToRegionCodeMap =\n"); + writer.write(" new HashMap<Integer, List<String>>(" + capacity + ");\n"); + writer.write("\n"); + writer.write(" ArrayList<String> listWithRegionCode;\n"); + writer.write("\n"); + + for (Map.Entry<Integer, List<String>> entry : countryCodeToRegionCodeMap.entrySet()) { + int countryCallingCode = entry.getKey(); + List<String> regionCodes = entry.getValue(); + writer.write(" listWithRegionCode = new ArrayList<String>(" + regionCodes.size() + ");\n"); + for (String regionCode : regionCodes) { + writer.write(" listWithRegionCode.add(\"" + regionCode + "\");\n"); } + writer.write(" countryCodeToRegionCodeMap.put(" + countryCallingCode + + ", listWithRegionCode);\n"); + writer.write("\n"); + } - NodeList validPattern = element.getElementsByTagName("nationalNumberPattern"); - if (validPattern.getLength() > 0) { - numberDesc.setNationalNumberPattern( - validateRE(validPattern.item(0).getFirstChild().getNodeValue())); - } + writer.write(" return countryCodeToRegionCodeMap;\n"); + writer.write(" }\n"); + writer.write("}\n"); - if (!liteBuild) { - NodeList exampleNumber = element.getElementsByTagName("exampleNumber"); - if (exampleNumber.getLength() > 0) { - numberDesc.setExampleNumber(exampleNumber.item(0).getFirstChild().getNodeValue()); - } - } - } - return numberDesc; + writer.flush(); + writer.close(); } } diff --git a/java/resources/com/google/i18n/phonenumbers/JSArrayBuilder.java b/java/resources/com/google/i18n/phonenumbers/JSArrayBuilder.java new file mode 100644 index 00000000..9998f639 --- /dev/null +++ b/java/resources/com/google/i18n/phonenumbers/JSArrayBuilder.java @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.i18n.phonenumbers; + +import java.util.Iterator; + +/** + * A sequence of elements representing a JavaScript Array. The principal operation on a + * JSArrayBuilder is the append method that appends an element to the array. To facilitate nesting + * beginArray and endArray are also supported. Example of a JSArray: ["a", ["b', "c"]]. + * + * @author Nikolaos Trogkanis + */ +public class JSArrayBuilder implements CharSequence { + // Internal representation. + private StringBuilder data = new StringBuilder(); + // Flag that keeps track whether the element being added to the array is the first element. + private boolean isFirstElement = true; + + /** + * Begin a new element. + */ + private void beginElement() { + if (!isFirstElement) { + data.append(','); + } + isFirstElement = false; + } + + /** + * Begin a new array. + */ + public JSArrayBuilder beginArray() { + beginElement(); + data.append('['); + isFirstElement = true; + return this; + } + + /** + * End an array. + */ + public JSArrayBuilder endArray() { + trimTrailingCommas(); + data.append("]\n"); + isFirstElement = false; + return this; + } + + /** + * Add a number to the array. + */ + public JSArrayBuilder append(int number) { + return append(Integer.toString(number), false); + } + + /** + * Add a string to the array. + */ + public JSArrayBuilder append(String string) { + return append(string, true); + } + + /** + * Add a collection of strings to the array. + */ + public final JSArrayBuilder appendIterator(Iterator<String> iterator) { + while (iterator.hasNext()) { + append(iterator.next()); + } + return this; + } + + // Adds a string to the array with an option to escape the string or not. + private JSArrayBuilder append(String string, boolean escapeString) { + beginElement(); + if (string != null) { + if (escapeString) { + escape(string, data); + } else { + data.append(string); + } + } + return this; + } + + // Returns a string representing the data in this JSArray. + @Override public String toString() { + return data.toString(); + } + + // Double quotes a string and replaces "\" with "\\". + private static void escape(String str, StringBuilder out) { + out.append('"'); + out.append(str.replaceAll("\\\\", "\\\\\\\\")); + out.append('"'); + } + + // Trims trailing commas. + private void trimTrailingCommas() { + int i = data.length(); + while (i > 0 && data.charAt(i - 1) == ',') { + i--; + } + if (i < data.length()) { + data.delete(i, data.length()); + } + } + + @Override public char charAt(int index) { + return data.charAt(index); + } + + @Override public int length() { + return data.length(); + } + + @Override public CharSequence subSequence(int start, int end) { + return data.subSequence(start, end); + } +} diff --git a/java/resources/com/google/i18n/phonenumbers/proto/phonemetadata.proto b/java/resources/com/google/i18n/phonenumbers/proto/phonemetadata.proto index b3486abf..7968feb2 100644 --- a/java/resources/com/google/i18n/phonenumbers/proto/phonemetadata.proto +++ b/java/resources/com/google/i18n/phonenumbers/proto/phonemetadata.proto @@ -117,6 +117,7 @@ message PhoneMetadata { required PhoneNumberDesc shared_cost = 6; required PhoneNumberDesc personal_number = 7; required PhoneNumberDesc voip = 8; + required PhoneNumberDesc pager = 21; // The ISO 3166-1 alpha-2 representation of a country/region required string id = 9; diff --git a/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml b/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml index f35e4f93..d94e95f8 100644 --- a/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml +++ b/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml @@ -35,7 +35,7 @@ <!ELEMENT phoneNumberMetadata (territories)> <!ELEMENT territories (territory+)> <!ELEMENT territory (availableFormats?, generalDesc?, fixedLine?, mobile?, tollFree?, - premiumRate?, sharedCost?, personalNumber?, voip?)> + premiumRate?, sharedCost?, personalNumber?, voip?, pager?)> <!ELEMENT generalDesc (nationalNumberPattern, possibleNumberPattern, exampleNumber?)> <!ELEMENT fixedLine (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)> <!ELEMENT mobile (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)> @@ -44,6 +44,7 @@ <!ELEMENT sharedCost (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)> <!ELEMENT personalNumber (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)> <!ELEMENT voip (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)> + <!ELEMENT pager (nationalNumberPattern?, possibleNumberPattern?, exampleNumber?)> <!ELEMENT availableFormats (numberFormat+, intlNumberFormat*)> <!ELEMENT nationalNumberPattern (#PCDATA)> <!ELEMENT possibleNumberPattern (#PCDATA)> @@ -2659,13 +2660,16 @@ <format>$1 $2</format> </numberFormat> <!-- UK child line --> - <numberFormat pattern="(800)(1111)"> + <numberFormat pattern="(800)(\d{4})"> <leadingDigits>800</leadingDigits> <leadingDigits>8001</leadingDigits> + <leadingDigits>80011</leadingDigits> + <leadingDigits>800111</leadingDigits> + <leadingDigits>8001111</leadingDigits> <format>$1 $2</format> </numberFormat> <numberFormat pattern="(8\d{2})(\d{3})(\d{3,4})"> - <leadingDigits>8(?:0|4[3-5]|7[01])</leadingDigits> + <leadingDigits>8(?:0|4[3-5]|7[0-3])</leadingDigits> <format>$1 $2 $3</format> </numberFormat> </availableFormats> @@ -2818,7 +2822,7 @@ </generalDesc> <fixedLine> <nationalNumberPattern>1481\d{6}</nationalNumberPattern> - <exampleNumber>1481123456</exampleNumber> + <exampleNumber>1481223456</exampleNumber> </fixedLine> <mobile> <nationalNumberPattern>7(?:781|839|911)\d{6}</nationalNumberPattern> @@ -2829,7 +2833,7 @@ <tollFree> <nationalNumberPattern>80(?:01111|\d{7,8})|500\d{6}</nationalNumberPattern> <possibleNumberPattern>\d{7,10}</possibleNumberPattern> - <exampleNumber>8012345678</exampleNumber> + <exampleNumber>8001234567</exampleNumber> </tollFree> <premiumRate> <nationalNumberPattern>(?:9[018]\d|87[1-3])\d{7}</nationalNumberPattern> @@ -3585,7 +3589,7 @@ </generalDesc> <fixedLine> <nationalNumberPattern>1624\d{6}</nationalNumberPattern> - <exampleNumber>1624123456</exampleNumber> + <exampleNumber>1624223456</exampleNumber> </fixedLine> <mobile> <nationalNumberPattern>7[69]24\d{6}</nationalNumberPattern> @@ -3595,7 +3599,7 @@ <tollFree> <nationalNumberPattern>80(?:01111|\d{7,8})|500\d{6}</nationalNumberPattern> <possibleNumberPattern>\d{7,10}</possibleNumberPattern> - <exampleNumber>8012345678</exampleNumber> + <exampleNumber>8001234567</exampleNumber> </tollFree> <premiumRate> <nationalNumberPattern>(?:9[018]\d|87[1-3])\d{7}</nationalNumberPattern> @@ -3941,7 +3945,7 @@ </generalDesc> <fixedLine> <nationalNumberPattern>1534\d{6}</nationalNumberPattern> - <exampleNumber>1534123456</exampleNumber> + <exampleNumber>1534223456</exampleNumber> </fixedLine> <mobile> <nationalNumberPattern>7(?:7(?:00|97)|829|937)\d{6}</nationalNumberPattern> @@ -3952,7 +3956,7 @@ <tollFree> <nationalNumberPattern>80(?:01111|\d{7,8})|500\d{6}</nationalNumberPattern> <possibleNumberPattern>\d{7,10}</possibleNumberPattern> - <exampleNumber>8012345678</exampleNumber> + <exampleNumber>8001234567</exampleNumber> </tollFree> <premiumRate> <nationalNumberPattern>(?:9[018]\d|87[1-3])\d{7}</nationalNumberPattern> @@ -6575,7 +6579,7 @@ <leadingDigits>6</leadingDigits> <format>$1 $2</format> </numberFormat> - <numberFormat pattern="([89]0\d)(\d{3,6})"> + <numberFormat pattern="([89]\d{2})(\d{3,6})"> <leadingDigits>[89]</leadingDigits> <format>$1 $2</format> </numberFormat> @@ -6617,11 +6621,11 @@ as http://www.minjust.ru/ru/structure/contact/. Contains formatting instructions for Kazakhstan as well. --> <numberFormat pattern="([34689]\d{2})(\d{3})(\d{2})(\d{2})"> - <leadingDigits>[34689]</leadingDigits> + <leadingDigits>[3489]</leadingDigits> <format>$1 $2-$3-$4</format> </numberFormat> - <numberFormat pattern="([7]\d{2})(\d{3})(\d{4})"> - <leadingDigits>7</leadingDigits> + <numberFormat pattern="([67]\d{2})(\d{3})(\d{4})"> + <leadingDigits>[67]</leadingDigits> <format>$1 $2 $3</format> </numberFormat> </availableFormats> diff --git a/java/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java b/java/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java index 37e76292..b0e500de 100644 --- a/java/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java +++ b/java/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java @@ -323,8 +323,10 @@ public class AsYouTypeFormatter { if (!ableToFormat) { return originalPosition; } - int accruedInputIndex = 0, currentOutputIndex = 0; - while (accruedInputIndex < positionToRemember) { + int accruedInputIndex = 0; + int currentOutputIndex = 0; + int currentOutputLength = currentOutput.length(); + while (accruedInputIndex < positionToRemember && currentOutputIndex < currentOutputLength) { if (accruedInputWithoutFormatting.charAt(accruedInputIndex) == currentOutput.charAt(currentOutputIndex)) { accruedInputIndex++; diff --git a/java/src/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMap.java b/java/src/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMap.java new file mode 100644 index 00000000..86e7f0b1 --- /dev/null +++ b/java/src/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMap.java @@ -0,0 +1,889 @@ +/* + * Copyright (C) 2010 Google Inc. + * + * 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 BuildMetadataProtoFromXml. Please + * don't modify directly. + */ + +package com.google.i18n.phonenumbers; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class CountryCodeToRegionCodeMap { + // A mapping from a country code to the region codes which denote the + // country/region represented by that country code. In the case of multiple + // countries sharing a calling code, such as the NANPA countries, the one + // indicated with "isMainCountryForCode" in the metadata should be first. + static Map<Integer, List<String>> getCountryCodeToRegionCodeMap() { + // The capacity is set to 272 as there are 204 different country codes, + // and this offers a load factor of roughly 0.75. + Map<Integer, List<String>> countryCodeToRegionCodeMap = + new HashMap<Integer, List<String>>(272); + + ArrayList<String> listWithRegionCode; + + listWithRegionCode = new ArrayList<String>(24); + listWithRegionCode.add("US"); + listWithRegionCode.add("AG"); + listWithRegionCode.add("AI"); + listWithRegionCode.add("AS"); + listWithRegionCode.add("BB"); + listWithRegionCode.add("BM"); + listWithRegionCode.add("BS"); + listWithRegionCode.add("CA"); + listWithRegionCode.add("DM"); + listWithRegionCode.add("DO"); + listWithRegionCode.add("GD"); + listWithRegionCode.add("GU"); + listWithRegionCode.add("JM"); + listWithRegionCode.add("KN"); + listWithRegionCode.add("KY"); + listWithRegionCode.add("LC"); + listWithRegionCode.add("MP"); + listWithRegionCode.add("MS"); + listWithRegionCode.add("PR"); + listWithRegionCode.add("TC"); + listWithRegionCode.add("TT"); + listWithRegionCode.add("VC"); + listWithRegionCode.add("VG"); + listWithRegionCode.add("VI"); + countryCodeToRegionCodeMap.put(1, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(2); + listWithRegionCode.add("RU"); + listWithRegionCode.add("KZ"); + countryCodeToRegionCodeMap.put(7, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("EG"); + countryCodeToRegionCodeMap.put(20, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("ZA"); + countryCodeToRegionCodeMap.put(27, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GR"); + countryCodeToRegionCodeMap.put(30, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("NL"); + countryCodeToRegionCodeMap.put(31, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BE"); + countryCodeToRegionCodeMap.put(32, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("FR"); + countryCodeToRegionCodeMap.put(33, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("ES"); + countryCodeToRegionCodeMap.put(34, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("HU"); + countryCodeToRegionCodeMap.put(36, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("IT"); + countryCodeToRegionCodeMap.put(39, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("RO"); + countryCodeToRegionCodeMap.put(40, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CH"); + countryCodeToRegionCodeMap.put(41, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AT"); + countryCodeToRegionCodeMap.put(43, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(4); + listWithRegionCode.add("GB"); + listWithRegionCode.add("GG"); + listWithRegionCode.add("IM"); + listWithRegionCode.add("JE"); + countryCodeToRegionCodeMap.put(44, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("DK"); + countryCodeToRegionCodeMap.put(45, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SE"); + countryCodeToRegionCodeMap.put(46, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("NO"); + countryCodeToRegionCodeMap.put(47, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("PL"); + countryCodeToRegionCodeMap.put(48, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("DE"); + countryCodeToRegionCodeMap.put(49, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("PE"); + countryCodeToRegionCodeMap.put(51, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MX"); + countryCodeToRegionCodeMap.put(52, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CU"); + countryCodeToRegionCodeMap.put(53, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AR"); + countryCodeToRegionCodeMap.put(54, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BR"); + countryCodeToRegionCodeMap.put(55, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CL"); + countryCodeToRegionCodeMap.put(56, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CO"); + countryCodeToRegionCodeMap.put(57, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("VE"); + countryCodeToRegionCodeMap.put(58, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MY"); + countryCodeToRegionCodeMap.put(60, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AU"); + countryCodeToRegionCodeMap.put(61, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("ID"); + countryCodeToRegionCodeMap.put(62, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("PH"); + countryCodeToRegionCodeMap.put(63, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("NZ"); + countryCodeToRegionCodeMap.put(64, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SG"); + countryCodeToRegionCodeMap.put(65, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("TH"); + countryCodeToRegionCodeMap.put(66, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("JP"); + countryCodeToRegionCodeMap.put(81, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("KR"); + countryCodeToRegionCodeMap.put(82, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("VN"); + countryCodeToRegionCodeMap.put(84, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CN"); + countryCodeToRegionCodeMap.put(86, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("TR"); + countryCodeToRegionCodeMap.put(90, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("IN"); + countryCodeToRegionCodeMap.put(91, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("PK"); + countryCodeToRegionCodeMap.put(92, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AF"); + countryCodeToRegionCodeMap.put(93, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("LK"); + countryCodeToRegionCodeMap.put(94, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MM"); + countryCodeToRegionCodeMap.put(95, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("IR"); + countryCodeToRegionCodeMap.put(98, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MA"); + countryCodeToRegionCodeMap.put(212, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("DZ"); + countryCodeToRegionCodeMap.put(213, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("TN"); + countryCodeToRegionCodeMap.put(216, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("LY"); + countryCodeToRegionCodeMap.put(218, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GM"); + countryCodeToRegionCodeMap.put(220, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SN"); + countryCodeToRegionCodeMap.put(221, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MR"); + countryCodeToRegionCodeMap.put(222, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("ML"); + countryCodeToRegionCodeMap.put(223, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GN"); + countryCodeToRegionCodeMap.put(224, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CI"); + countryCodeToRegionCodeMap.put(225, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BF"); + countryCodeToRegionCodeMap.put(226, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("NE"); + countryCodeToRegionCodeMap.put(227, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("TG"); + countryCodeToRegionCodeMap.put(228, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BJ"); + countryCodeToRegionCodeMap.put(229, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MU"); + countryCodeToRegionCodeMap.put(230, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("LR"); + countryCodeToRegionCodeMap.put(231, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SL"); + countryCodeToRegionCodeMap.put(232, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GH"); + countryCodeToRegionCodeMap.put(233, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("NG"); + countryCodeToRegionCodeMap.put(234, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("TD"); + countryCodeToRegionCodeMap.put(235, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CF"); + countryCodeToRegionCodeMap.put(236, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CM"); + countryCodeToRegionCodeMap.put(237, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CV"); + countryCodeToRegionCodeMap.put(238, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("ST"); + countryCodeToRegionCodeMap.put(239, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GQ"); + countryCodeToRegionCodeMap.put(240, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GA"); + countryCodeToRegionCodeMap.put(241, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CG"); + countryCodeToRegionCodeMap.put(242, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CD"); + countryCodeToRegionCodeMap.put(243, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AO"); + countryCodeToRegionCodeMap.put(244, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GW"); + countryCodeToRegionCodeMap.put(245, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("IO"); + countryCodeToRegionCodeMap.put(246, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SC"); + countryCodeToRegionCodeMap.put(248, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SD"); + countryCodeToRegionCodeMap.put(249, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("RW"); + countryCodeToRegionCodeMap.put(250, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("ET"); + countryCodeToRegionCodeMap.put(251, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SO"); + countryCodeToRegionCodeMap.put(252, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("DJ"); + countryCodeToRegionCodeMap.put(253, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("KE"); + countryCodeToRegionCodeMap.put(254, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("TZ"); + countryCodeToRegionCodeMap.put(255, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("UG"); + countryCodeToRegionCodeMap.put(256, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BI"); + countryCodeToRegionCodeMap.put(257, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MZ"); + countryCodeToRegionCodeMap.put(258, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("ZM"); + countryCodeToRegionCodeMap.put(260, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MG"); + countryCodeToRegionCodeMap.put(261, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(3); + listWithRegionCode.add("RE"); + listWithRegionCode.add("TF"); + listWithRegionCode.add("YT"); + countryCodeToRegionCodeMap.put(262, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("ZW"); + countryCodeToRegionCodeMap.put(263, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("NA"); + countryCodeToRegionCodeMap.put(264, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MW"); + countryCodeToRegionCodeMap.put(265, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("LS"); + countryCodeToRegionCodeMap.put(266, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BW"); + countryCodeToRegionCodeMap.put(267, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SZ"); + countryCodeToRegionCodeMap.put(268, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("KM"); + countryCodeToRegionCodeMap.put(269, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SH"); + countryCodeToRegionCodeMap.put(290, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("ER"); + countryCodeToRegionCodeMap.put(291, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AW"); + countryCodeToRegionCodeMap.put(297, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("FO"); + countryCodeToRegionCodeMap.put(298, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GL"); + countryCodeToRegionCodeMap.put(299, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GI"); + countryCodeToRegionCodeMap.put(350, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("PT"); + countryCodeToRegionCodeMap.put(351, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("LU"); + countryCodeToRegionCodeMap.put(352, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("IE"); + countryCodeToRegionCodeMap.put(353, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("IS"); + countryCodeToRegionCodeMap.put(354, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AL"); + countryCodeToRegionCodeMap.put(355, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MT"); + countryCodeToRegionCodeMap.put(356, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CY"); + countryCodeToRegionCodeMap.put(357, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("FI"); + countryCodeToRegionCodeMap.put(358, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BG"); + countryCodeToRegionCodeMap.put(359, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("LT"); + countryCodeToRegionCodeMap.put(370, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("LV"); + countryCodeToRegionCodeMap.put(371, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("EE"); + countryCodeToRegionCodeMap.put(372, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MD"); + countryCodeToRegionCodeMap.put(373, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AM"); + countryCodeToRegionCodeMap.put(374, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BY"); + countryCodeToRegionCodeMap.put(375, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AD"); + countryCodeToRegionCodeMap.put(376, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MC"); + countryCodeToRegionCodeMap.put(377, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SM"); + countryCodeToRegionCodeMap.put(378, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("VA"); + countryCodeToRegionCodeMap.put(379, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("UA"); + countryCodeToRegionCodeMap.put(380, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("RS"); + countryCodeToRegionCodeMap.put(381, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("ME"); + countryCodeToRegionCodeMap.put(382, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("HR"); + countryCodeToRegionCodeMap.put(385, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SI"); + countryCodeToRegionCodeMap.put(386, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BA"); + countryCodeToRegionCodeMap.put(387, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MK"); + countryCodeToRegionCodeMap.put(389, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CZ"); + countryCodeToRegionCodeMap.put(420, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SK"); + countryCodeToRegionCodeMap.put(421, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("LI"); + countryCodeToRegionCodeMap.put(423, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("FK"); + countryCodeToRegionCodeMap.put(500, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BZ"); + countryCodeToRegionCodeMap.put(501, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GT"); + countryCodeToRegionCodeMap.put(502, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SV"); + countryCodeToRegionCodeMap.put(503, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("HN"); + countryCodeToRegionCodeMap.put(504, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("NI"); + countryCodeToRegionCodeMap.put(505, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CR"); + countryCodeToRegionCodeMap.put(506, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("PA"); + countryCodeToRegionCodeMap.put(507, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("PM"); + countryCodeToRegionCodeMap.put(508, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("HT"); + countryCodeToRegionCodeMap.put(509, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(3); + listWithRegionCode.add("GP"); + listWithRegionCode.add("BL"); + listWithRegionCode.add("MF"); + countryCodeToRegionCodeMap.put(590, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BO"); + countryCodeToRegionCodeMap.put(591, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GY"); + countryCodeToRegionCodeMap.put(592, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("EC"); + countryCodeToRegionCodeMap.put(593, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GF"); + countryCodeToRegionCodeMap.put(594, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("PY"); + countryCodeToRegionCodeMap.put(595, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MQ"); + countryCodeToRegionCodeMap.put(596, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SR"); + countryCodeToRegionCodeMap.put(597, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("UY"); + countryCodeToRegionCodeMap.put(598, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AN"); + countryCodeToRegionCodeMap.put(599, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("TL"); + countryCodeToRegionCodeMap.put(670, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("NF"); + countryCodeToRegionCodeMap.put(672, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BN"); + countryCodeToRegionCodeMap.put(673, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("NR"); + countryCodeToRegionCodeMap.put(674, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("PG"); + countryCodeToRegionCodeMap.put(675, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("TO"); + countryCodeToRegionCodeMap.put(676, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SB"); + countryCodeToRegionCodeMap.put(677, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("VU"); + countryCodeToRegionCodeMap.put(678, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("FJ"); + countryCodeToRegionCodeMap.put(679, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("PW"); + countryCodeToRegionCodeMap.put(680, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("WF"); + countryCodeToRegionCodeMap.put(681, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("CK"); + countryCodeToRegionCodeMap.put(682, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("NU"); + countryCodeToRegionCodeMap.put(683, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("WS"); + countryCodeToRegionCodeMap.put(685, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("KI"); + countryCodeToRegionCodeMap.put(686, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("NC"); + countryCodeToRegionCodeMap.put(687, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("TV"); + countryCodeToRegionCodeMap.put(688, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("PF"); + countryCodeToRegionCodeMap.put(689, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("TK"); + countryCodeToRegionCodeMap.put(690, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("FM"); + countryCodeToRegionCodeMap.put(691, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MH"); + countryCodeToRegionCodeMap.put(692, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("KP"); + countryCodeToRegionCodeMap.put(850, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("HK"); + countryCodeToRegionCodeMap.put(852, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MO"); + countryCodeToRegionCodeMap.put(853, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("KH"); + countryCodeToRegionCodeMap.put(855, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("LA"); + countryCodeToRegionCodeMap.put(856, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BD"); + countryCodeToRegionCodeMap.put(880, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("TW"); + countryCodeToRegionCodeMap.put(886, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MV"); + countryCodeToRegionCodeMap.put(960, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("LB"); + countryCodeToRegionCodeMap.put(961, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("JO"); + countryCodeToRegionCodeMap.put(962, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SY"); + countryCodeToRegionCodeMap.put(963, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("IQ"); + countryCodeToRegionCodeMap.put(964, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("KW"); + countryCodeToRegionCodeMap.put(965, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SA"); + countryCodeToRegionCodeMap.put(966, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("YE"); + countryCodeToRegionCodeMap.put(967, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("OM"); + countryCodeToRegionCodeMap.put(968, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("PS"); + countryCodeToRegionCodeMap.put(970, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AE"); + countryCodeToRegionCodeMap.put(971, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("IL"); + countryCodeToRegionCodeMap.put(972, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BH"); + countryCodeToRegionCodeMap.put(973, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("QA"); + countryCodeToRegionCodeMap.put(974, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("BT"); + countryCodeToRegionCodeMap.put(975, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MN"); + countryCodeToRegionCodeMap.put(976, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("NP"); + countryCodeToRegionCodeMap.put(977, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("TJ"); + countryCodeToRegionCodeMap.put(992, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("TM"); + countryCodeToRegionCodeMap.put(993, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AZ"); + countryCodeToRegionCodeMap.put(994, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GE"); + countryCodeToRegionCodeMap.put(995, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("KG"); + countryCodeToRegionCodeMap.put(996, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("UZ"); + countryCodeToRegionCodeMap.put(998, listWithRegionCode); + + return countryCodeToRegionCodeMap; + } +} diff --git a/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java b/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java index 12a51c0e..b51ac673 100644 --- a/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java +++ b/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java @@ -50,8 +50,10 @@ public class PhoneNumberUtil { // The minimum and maximum length of the national significant number. private static final int MIN_LENGTH_FOR_NSN = 3; private static final int MAX_LENGTH_FOR_NSN = 15; - private static final String META_DATA_FILE_PREFIX = + static final String META_DATA_FILE_PREFIX = "/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto"; + static final String COUNTRY_CODE_TO_REGION_CODE_MAP_CLASS_NAME = + "CountryCodeToRegionCodeMap"; private String currentFilePrefix = META_DATA_FILE_PREFIX; private static final Logger LOGGER = Logger.getLogger(PhoneNumberUtil.class.getName()); @@ -59,11 +61,7 @@ public class PhoneNumberUtil { // represented by that country code. In the case of multiple countries sharing a calling code, // such as the NANPA countries, the one indicated with "isMainCountryForCode" in the metadata // should be first. - // The initial capacity is set to 300 as there are roughly 200 different - // country codes, and this offers a load factor of roughly 0.75. - - private Map<Integer, List<String> > countryCodeToRegionCodeMap = - new HashMap<Integer, List<String> >(300); + private Map<Integer, List<String>> countryCodeToRegionCodeMap = null; // The set of countries the library supports. // There are roughly 220 of them and we set the initial capacity of the HashSet to 300 to offer a @@ -326,6 +324,7 @@ public class PhoneNumberUtil { // MOBILE or FIXED_LINE number. Some more information can be found here: // http://en.wikipedia.org/wiki/Personal_Numbers PERSONAL_NUMBER, + PAGER, // A phone number is of type UNKNOWN when it does not fit any of the known patterns for a // specific country. UNKNOWN @@ -357,860 +356,10 @@ public class PhoneNumberUtil { private PhoneNumberUtil() { } - private void initializeCountryCodeToRegionCodeMap() { - countryCodeToRegionCodeMap.clear(); - ArrayList<String> listWithRegionCode = new ArrayList<String>(24); - listWithRegionCode.add("US"); - listWithRegionCode.add("AG"); - listWithRegionCode.add("AI"); - listWithRegionCode.add("AS"); - listWithRegionCode.add("BB"); - listWithRegionCode.add("BM"); - listWithRegionCode.add("BS"); - listWithRegionCode.add("CA"); - listWithRegionCode.add("DM"); - listWithRegionCode.add("DO"); - listWithRegionCode.add("GD"); - listWithRegionCode.add("GU"); - listWithRegionCode.add("JM"); - listWithRegionCode.add("KN"); - listWithRegionCode.add("KY"); - listWithRegionCode.add("LC"); - listWithRegionCode.add("MP"); - listWithRegionCode.add("MS"); - listWithRegionCode.add("PR"); - listWithRegionCode.add("TC"); - listWithRegionCode.add("TT"); - listWithRegionCode.add("VC"); - listWithRegionCode.add("VG"); - listWithRegionCode.add("VI"); - countryCodeToRegionCodeMap.put(1, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(2); - listWithRegionCode.add("RU"); - listWithRegionCode.add("KZ"); - countryCodeToRegionCodeMap.put(7, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("EG"); - countryCodeToRegionCodeMap.put(20, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("ZA"); - countryCodeToRegionCodeMap.put(27, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("NL"); - countryCodeToRegionCodeMap.put(31, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GR"); - countryCodeToRegionCodeMap.put(30, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("ES"); - countryCodeToRegionCodeMap.put(34, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BE"); - countryCodeToRegionCodeMap.put(32, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("FR"); - countryCodeToRegionCodeMap.put(33, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("IT"); - countryCodeToRegionCodeMap.put(39, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("HU"); - countryCodeToRegionCodeMap.put(36, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AT"); - countryCodeToRegionCodeMap.put(43, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("RO"); - countryCodeToRegionCodeMap.put(40, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CH"); - countryCodeToRegionCodeMap.put(41, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SE"); - countryCodeToRegionCodeMap.put(46, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("NO"); - countryCodeToRegionCodeMap.put(47, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(4); - listWithRegionCode.add("GB"); - listWithRegionCode.add("GG"); - listWithRegionCode.add("IM"); - listWithRegionCode.add("JE"); - countryCodeToRegionCodeMap.put(44, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("DK"); - countryCodeToRegionCodeMap.put(45, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("PE"); - countryCodeToRegionCodeMap.put(51, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("DE"); - countryCodeToRegionCodeMap.put(49, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("PL"); - countryCodeToRegionCodeMap.put(48, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BR"); - countryCodeToRegionCodeMap.put(55, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AR"); - countryCodeToRegionCodeMap.put(54, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CU"); - countryCodeToRegionCodeMap.put(53, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MX"); - countryCodeToRegionCodeMap.put(52, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("VE"); - countryCodeToRegionCodeMap.put(58, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CO"); - countryCodeToRegionCodeMap.put(57, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CL"); - countryCodeToRegionCodeMap.put(56, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("PH"); - countryCodeToRegionCodeMap.put(63, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("ID"); - countryCodeToRegionCodeMap.put(62, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AU"); - countryCodeToRegionCodeMap.put(61, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MY"); - countryCodeToRegionCodeMap.put(60, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("NZ"); - countryCodeToRegionCodeMap.put(64, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SG"); - countryCodeToRegionCodeMap.put(65, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("TH"); - countryCodeToRegionCodeMap.put(66, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("VN"); - countryCodeToRegionCodeMap.put(84, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CN"); - countryCodeToRegionCodeMap.put(86, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("JP"); - countryCodeToRegionCodeMap.put(81, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("KR"); - countryCodeToRegionCodeMap.put(82, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AF"); - countryCodeToRegionCodeMap.put(93, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("PK"); - countryCodeToRegionCodeMap.put(92, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MM"); - countryCodeToRegionCodeMap.put(95, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("LK"); - countryCodeToRegionCodeMap.put(94, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("IN"); - countryCodeToRegionCodeMap.put(91, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("TR"); - countryCodeToRegionCodeMap.put(90, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("IR"); - countryCodeToRegionCodeMap.put(98, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(3); - listWithRegionCode.add("GP"); - listWithRegionCode.add("BL"); - listWithRegionCode.add("MF"); - countryCodeToRegionCodeMap.put(590, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BO"); - countryCodeToRegionCodeMap.put(591, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("EC"); - countryCodeToRegionCodeMap.put(593, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GY"); - countryCodeToRegionCodeMap.put(592, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("PY"); - countryCodeToRegionCodeMap.put(595, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GF"); - countryCodeToRegionCodeMap.put(594, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SR"); - countryCodeToRegionCodeMap.put(597, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MQ"); - countryCodeToRegionCodeMap.put(596, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AN"); - countryCodeToRegionCodeMap.put(599, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("UY"); - countryCodeToRegionCodeMap.put(598, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("NC"); - countryCodeToRegionCodeMap.put(687, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("KI"); - countryCodeToRegionCodeMap.put(686, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("WS"); - countryCodeToRegionCodeMap.put(685, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("NU"); - countryCodeToRegionCodeMap.put(683, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CK"); - countryCodeToRegionCodeMap.put(682, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("WF"); - countryCodeToRegionCodeMap.put(681, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("PW"); - countryCodeToRegionCodeMap.put(680, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("FJ"); - countryCodeToRegionCodeMap.put(679, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("VU"); - countryCodeToRegionCodeMap.put(678, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SB"); - countryCodeToRegionCodeMap.put(677, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("TO"); - countryCodeToRegionCodeMap.put(676, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("PG"); - countryCodeToRegionCodeMap.put(675, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("NR"); - countryCodeToRegionCodeMap.put(674, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BN"); - countryCodeToRegionCodeMap.put(673, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("NF"); - countryCodeToRegionCodeMap.put(672, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MH"); - countryCodeToRegionCodeMap.put(692, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("TK"); - countryCodeToRegionCodeMap.put(690, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("FM"); - countryCodeToRegionCodeMap.put(691, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("TV"); - countryCodeToRegionCodeMap.put(688, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("PF"); - countryCodeToRegionCodeMap.put(689, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("TL"); - countryCodeToRegionCodeMap.put(670, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GM"); - countryCodeToRegionCodeMap.put(220, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SN"); - countryCodeToRegionCodeMap.put(221, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MR"); - countryCodeToRegionCodeMap.put(222, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("ML"); - countryCodeToRegionCodeMap.put(223, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("TN"); - countryCodeToRegionCodeMap.put(216, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("LY"); - countryCodeToRegionCodeMap.put(218, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MA"); - countryCodeToRegionCodeMap.put(212, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("DZ"); - countryCodeToRegionCodeMap.put(213, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("ST"); - countryCodeToRegionCodeMap.put(239, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CV"); - countryCodeToRegionCodeMap.put(238, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CM"); - countryCodeToRegionCodeMap.put(237, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CF"); - countryCodeToRegionCodeMap.put(236, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("TD"); - countryCodeToRegionCodeMap.put(235, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("NG"); - countryCodeToRegionCodeMap.put(234, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GH"); - countryCodeToRegionCodeMap.put(233, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SL"); - countryCodeToRegionCodeMap.put(232, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("LR"); - countryCodeToRegionCodeMap.put(231, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MU"); - countryCodeToRegionCodeMap.put(230, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BJ"); - countryCodeToRegionCodeMap.put(229, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("TG"); - countryCodeToRegionCodeMap.put(228, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("NE"); - countryCodeToRegionCodeMap.put(227, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BF"); - countryCodeToRegionCodeMap.put(226, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CI"); - countryCodeToRegionCodeMap.put(225, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GN"); - countryCodeToRegionCodeMap.put(224, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("KE"); - countryCodeToRegionCodeMap.put(254, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("TZ"); - countryCodeToRegionCodeMap.put(255, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SO"); - countryCodeToRegionCodeMap.put(252, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("DJ"); - countryCodeToRegionCodeMap.put(253, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("RW"); - countryCodeToRegionCodeMap.put(250, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("ET"); - countryCodeToRegionCodeMap.put(251, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SC"); - countryCodeToRegionCodeMap.put(248, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SD"); - countryCodeToRegionCodeMap.put(249, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("IO"); - countryCodeToRegionCodeMap.put(246, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AO"); - countryCodeToRegionCodeMap.put(244, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GW"); - countryCodeToRegionCodeMap.put(245, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CG"); - countryCodeToRegionCodeMap.put(242, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CD"); - countryCodeToRegionCodeMap.put(243, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GQ"); - countryCodeToRegionCodeMap.put(240, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GA"); - countryCodeToRegionCodeMap.put(241, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MZ"); - countryCodeToRegionCodeMap.put(258, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("UG"); - countryCodeToRegionCodeMap.put(256, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BI"); - countryCodeToRegionCodeMap.put(257, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(3); - listWithRegionCode.add("RE"); - listWithRegionCode.add("TF"); - listWithRegionCode.add("YT"); - countryCodeToRegionCodeMap.put(262, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("ZW"); - countryCodeToRegionCodeMap.put(263, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("ZM"); - countryCodeToRegionCodeMap.put(260, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MG"); - countryCodeToRegionCodeMap.put(261, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("LS"); - countryCodeToRegionCodeMap.put(266, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BW"); - countryCodeToRegionCodeMap.put(267, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("NA"); - countryCodeToRegionCodeMap.put(264, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MW"); - countryCodeToRegionCodeMap.put(265, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SZ"); - countryCodeToRegionCodeMap.put(268, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("KM"); - countryCodeToRegionCodeMap.put(269, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SH"); - countryCodeToRegionCodeMap.put(290, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("ER"); - countryCodeToRegionCodeMap.put(291, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AW"); - countryCodeToRegionCodeMap.put(297, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("FO"); - countryCodeToRegionCodeMap.put(298, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GL"); - countryCodeToRegionCodeMap.put(299, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BD"); - countryCodeToRegionCodeMap.put(880, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("TW"); - countryCodeToRegionCodeMap.put(886, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("PT"); - countryCodeToRegionCodeMap.put(351, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GI"); - countryCodeToRegionCodeMap.put(350, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MD"); - countryCodeToRegionCodeMap.put(373, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("KP"); - countryCodeToRegionCodeMap.put(850, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("EE"); - countryCodeToRegionCodeMap.put(372, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BY"); - countryCodeToRegionCodeMap.put(375, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AM"); - countryCodeToRegionCodeMap.put(374, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("KH"); - countryCodeToRegionCodeMap.put(855, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MO"); - countryCodeToRegionCodeMap.put(853, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("LV"); - countryCodeToRegionCodeMap.put(371, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("LT"); - countryCodeToRegionCodeMap.put(370, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("HK"); - countryCodeToRegionCodeMap.put(852, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("RS"); - countryCodeToRegionCodeMap.put(381, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("UA"); - countryCodeToRegionCodeMap.put(380, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("ME"); - countryCodeToRegionCodeMap.put(382, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("LA"); - countryCodeToRegionCodeMap.put(856, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MC"); - countryCodeToRegionCodeMap.put(377, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AD"); - countryCodeToRegionCodeMap.put(376, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("VA"); - countryCodeToRegionCodeMap.put(379, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SM"); - countryCodeToRegionCodeMap.put(378, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MT"); - countryCodeToRegionCodeMap.put(356, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CY"); - countryCodeToRegionCodeMap.put(357, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("FI"); - countryCodeToRegionCodeMap.put(358, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BG"); - countryCodeToRegionCodeMap.put(359, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("LU"); - countryCodeToRegionCodeMap.put(352, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("IE"); - countryCodeToRegionCodeMap.put(353, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("IS"); - countryCodeToRegionCodeMap.put(354, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AL"); - countryCodeToRegionCodeMap.put(355, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BA"); - countryCodeToRegionCodeMap.put(387, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SI"); - countryCodeToRegionCodeMap.put(386, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("HR"); - countryCodeToRegionCodeMap.put(385, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MK"); - countryCodeToRegionCodeMap.put(389, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SK"); - countryCodeToRegionCodeMap.put(421, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CZ"); - countryCodeToRegionCodeMap.put(420, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("LI"); - countryCodeToRegionCodeMap.put(423, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("TM"); - countryCodeToRegionCodeMap.put(993, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("TJ"); - countryCodeToRegionCodeMap.put(992, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GE"); - countryCodeToRegionCodeMap.put(995, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AZ"); - countryCodeToRegionCodeMap.put(994, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("KG"); - countryCodeToRegionCodeMap.put(996, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("UZ"); - countryCodeToRegionCodeMap.put(998, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("PM"); - countryCodeToRegionCodeMap.put(508, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("HT"); - countryCodeToRegionCodeMap.put(509, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("HN"); - countryCodeToRegionCodeMap.put(504, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("NI"); - countryCodeToRegionCodeMap.put(505, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("CR"); - countryCodeToRegionCodeMap.put(506, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("PA"); - countryCodeToRegionCodeMap.put(507, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("FK"); - countryCodeToRegionCodeMap.put(500, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BZ"); - countryCodeToRegionCodeMap.put(501, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MN"); - countryCodeToRegionCodeMap.put(976, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GT"); - countryCodeToRegionCodeMap.put(502, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SV"); - countryCodeToRegionCodeMap.put(503, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("NP"); - countryCodeToRegionCodeMap.put(977, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AE"); - countryCodeToRegionCodeMap.put(971, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("PS"); - countryCodeToRegionCodeMap.put(970, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("OM"); - countryCodeToRegionCodeMap.put(968, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BT"); - countryCodeToRegionCodeMap.put(975, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("QA"); - countryCodeToRegionCodeMap.put(974, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("BH"); - countryCodeToRegionCodeMap.put(973, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("IL"); - countryCodeToRegionCodeMap.put(972, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SY"); - countryCodeToRegionCodeMap.put(963, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("JO"); - countryCodeToRegionCodeMap.put(962, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("LB"); - countryCodeToRegionCodeMap.put(961, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MV"); - countryCodeToRegionCodeMap.put(960, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("YE"); - countryCodeToRegionCodeMap.put(967, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SA"); - countryCodeToRegionCodeMap.put(966, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("KW"); - countryCodeToRegionCodeMap.put(965, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("IQ"); - countryCodeToRegionCodeMap.put(964, listWithRegionCode); - } - private void init(String filePrefix) { currentFilePrefix = filePrefix; - for (Integer countryCallingCode : countryCodeToRegionCodeMap.keySet()) { - supportedCountries.addAll(countryCodeToRegionCodeMap.get(countryCallingCode)); + for (List<String> regionCodes : countryCodeToRegionCodeMap.values()) { + supportedCountries.addAll(regionCodes); } nanpaCountries.addAll(countryCodeToRegionCodeMap.get(NANPA_COUNTRY_CODE)); } @@ -1347,7 +496,7 @@ public class PhoneNumberUtil { * be used: * * PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance(); - * PhoneNumber number = phoneUtil.parse("16502530000", RegionCode.US); + * PhoneNumber number = phoneUtil.parse("16502530000", "US"); * String nationalSignificantNumber = PhoneNumberUtil.getNationalSignificantNumber(number); * String areaCode; * String subscriberNumber; @@ -1450,10 +599,9 @@ public class PhoneNumberUtil { static synchronized PhoneNumberUtil getInstance( String baseFileLocation, - Map<Integer, List<String> > countryCodeToRegionCodeMap) { + Map<Integer, List<String>> countryCodeToRegionCodeMap) { if (instance == null) { instance = new PhoneNumberUtil(); - instance.countryCodeToRegionCodeMap.clear(); instance.countryCodeToRegionCodeMap = countryCodeToRegionCodeMap; instance.init(baseFileLocation); } @@ -1487,9 +635,8 @@ public class PhoneNumberUtil { */ public static synchronized PhoneNumberUtil getInstance() { if (instance == null) { - instance = new PhoneNumberUtil(); - instance.initializeCountryCodeToRegionCodeMap(); - instance.init(META_DATA_FILE_PREFIX); + return getInstance(META_DATA_FILE_PREFIX, + CountryCodeToRegionCodeMap.getCountryCodeToRegionCodeMap()); } return instance; } @@ -1920,6 +1067,8 @@ public class PhoneNumberUtil { return metadata.getVoip(); case PERSONAL_NUMBER: return metadata.getPersonalNumber(); + case PAGER: + return metadata.getPager(); default: return metadata.getGeneralDesc(); } @@ -1962,6 +1111,9 @@ public class PhoneNumberUtil { if (isNumberMatchingDesc(nationalNumber, metadata.getPersonalNumber())) { return PhoneNumberType.PERSONAL_NUMBER; } + if (isNumberMatchingDesc(nationalNumber, metadata.getPager())) { + return PhoneNumberType.PAGER; + } boolean isFixedLine = isNumberMatchingDesc(nationalNumber, metadata.getFixedLine()); if (isFixedLine) { diff --git a/java/src/com/google/i18n/phonenumbers/Phonemetadata.java b/java/src/com/google/i18n/phonenumbers/Phonemetadata.java index 2aadd0cb..0c1aea0b 100644 --- a/java/src/com/google/i18n/phonenumbers/Phonemetadata.java +++ b/java/src/com/google/i18n/phonenumbers/Phonemetadata.java @@ -360,6 +360,20 @@ public final class Phonemetadata { return this; } + // required PhoneNumberDesc pager = 21; + private boolean hasPager; + private PhoneNumberDesc pager_ = null; + public boolean hasPager() { return hasPager; } + public PhoneNumberDesc getPager() { return pager_; } + public PhoneMetadata setPager(PhoneNumberDesc value) { + if (value == null) { + throw new NullPointerException(); + } + hasPager = true; + pager_ = value; + return this; + } + // required string id = 9; private boolean hasId; private String id_ = ""; @@ -550,6 +564,10 @@ public final class Phonemetadata { if (hasVoip) { voip_.writeExternal(objectOutput); } + objectOutput.writeBoolean(hasPager); + if (hasPager) { + pager_.writeExternal(objectOutput); + } objectOutput.writeUTF(id_); objectOutput.writeInt(countryCode_); @@ -651,6 +669,12 @@ public final class Phonemetadata { desc.readExternal(objectInput); setVoip(desc); } + hasDesc = objectInput.readBoolean(); + if (hasDesc) { + PhoneNumberDesc desc = new PhoneNumberDesc(); + desc.readExternal(objectInput); + setPager(desc); + } setId(objectInput.readUTF()); setCountryCode(objectInput.readInt()); diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD Binary files differindex e6c2e2f8..616dae9d 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE Binary files differindex 3afc1fe1..9ef7920b 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF Binary files differindex 8c8e5d43..cc68781c 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG Binary files differindex 66f24184..d9c73d62 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI Binary files differindex 9cd89aa5..6306b895 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL Binary files differindex 1684c845..9ace69a2 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM Binary files differindex 33486f3c..0fc855ad 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN Binary files differindex 9de37b84..f6cca2f0 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO Binary files differindex 06a7dee0..83acb24e 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR Binary files differindex 2dc8d463..7c154101 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS Binary files differindex 0bd9622a..a24dea96 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT Binary files differindex b7cf2629..54e77bc0 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU Binary files differindex ef5d35ce..b00eedd3 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW Binary files differindex dbac243d..8eae2ed3 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ Binary files differindex 935a12af..f1d442e8 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA Binary files differindex 84613f4c..8517a811 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB Binary files differindex 98f886d8..f569daf6 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD Binary files differindex 35d8bd60..a7d04c2b 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE Binary files differindex ca1deb07..925aa03b 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF Binary files differindex 3652a996..9f21ab13 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG Binary files differindex 680bf3b8..e437c936 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH Binary files differindex c6f3a401..65593320 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI Binary files differindex 0b1f30b8..db71deb9 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ Binary files differindex 58c9370c..3ed5c445 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL Binary files differindex 1d9e8707..276bbbc9 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM Binary files differindex 71e0fae6..58e3e3a7 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN Binary files differindex f6da2bf3..2b56da63 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO Binary files differindex ff0f394e..04d2f92e 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR Binary files differindex 7a1dfa2c..741d8b73 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS Binary files differindex 6178a923..2dc1ad3f 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT Binary files differindex 5a3ccafc..c5abdd1d 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW Binary files differindex 7108c195..a88ea9f5 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY Binary files differindex 828b31e5..0ef9b4d1 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ Binary files differindex bcbe4815..a890dcc2 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA Binary files differindex af5d4132..ddb61aee 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD Binary files differindex 8d4aedab..bfdfe3bb 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF Binary files differindex 5ec65ace..7ad9c1f2 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG Binary files differindex 21ccd0c7..0ad281c4 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH Binary files differindex f1a285d1..b9ec90d2 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI Binary files differindex 8d83b0d0..728b344a 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK Binary files differindex fb27ec29..a02cd7a1 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL Binary files differindex 47f74217..a5068d89 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM Binary files differindex f3605f62..48d92093 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN Binary files differindex 1343ba9a..f0e924bb 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO Binary files differindex 8776ba92..ec43e3ad 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR Binary files differindex fc19ae8d..699410da 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU Binary files differindex 824175fa..65665632 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV Binary files differindex 07e3b7d0..348260b5 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY Binary files differindex 527c2515..d59197b3 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ Binary files differindex b3540f28..9fd84fc0 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE Binary files differindex 6c8e2e8c..a2fc820b 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ Binary files differindex 71f9fc4b..b9e8dc61 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK Binary files differindex 69f4e4a9..294013b8 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM Binary files differindex 709a98e6..22327725 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO Binary files differindex 1edd2e7c..4876adbd 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ Binary files differindex 4feff2bf..809e4a28 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC Binary files differindex 1b17bce8..edb880d8 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE Binary files differindex 6a5d7d2b..dcb5b6c2 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG Binary files differindex b4d2578f..dc2b7723 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER Binary files differindex 32e1ba65..5dee5f6a 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES Binary files differindex 6d53f2e6..63dacfd9 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET Binary files differindex 8f35d070..45587dff 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI Binary files differindex ab326979..f544b38f 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ Binary files differindex d733826b..9756031d 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK Binary files differindex 40e43b5f..b10ad658 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM Binary files differindex 625e9b33..13fbbace 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO Binary files differindex 96b9722a..b76288c0 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR Binary files differindex e05f4fbe..af320de4 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA Binary files differindex 6e91babe..21886c62 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB Binary files differindex e13dd9b7..1a8b8b8d 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD Binary files differindex e0bea32c..7324f183 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE Binary files differindex 44e2572e..13f26f3f 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF Binary files differindex 7ad90210..b904357f 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG Binary files differindex f6edd00e..48a79134 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH Binary files differindex 8107a935..1295bddb 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI Binary files differindex 5204a98e..b597b4b6 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL Binary files differindex 75374232..a0934bc5 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM Binary files differindex 0a509069..09f0f45a 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN Binary files differindex a7f580e4..1ffdc7d4 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP Binary files differindex e213b75f..e9302aac 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ Binary files differindex a90838db..455e8aef 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR Binary files differindex 9f7f6b6f..7797c75a 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT Binary files differindex 3949fa20..82c4d1de 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU Binary files differindex c10a5087..321994fc 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW Binary files differindex bbdd17ef..a5c64f69 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY Binary files differindex a657bbc8..d11ba6d1 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK Binary files differindex 177c2b0b..aa8066c8 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN Binary files differindex 49a128ef..305ac3f3 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR Binary files differindex b39934c1..3a0bbe87 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT Binary files differindex e65f26ad..610a2d4a 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU Binary files differindex f9e95e0f..e0b9d9b5 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID Binary files differindex aca43aec..704fffee 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE Binary files differindex 988b47b7..2edbe886 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL Binary files differindex 49f0abd8..7657febc 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM Binary files differindex 8c017cd6..03b7a7dd 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN Binary files differindex b7db0344..6c8638e8 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO Binary files differindex eaf9bec0..a8da3f4d 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ Binary files differindex 3fc6bbb9..18d3ab2e 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR Binary files differindex cb4811f0..2fbfb2d3 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS Binary files differindex 6d3c9f87..ae9a5c95 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT Binary files differindex fee1f3f4..b3334c6f 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE Binary files differindex 56ea7e29..15ad12fa 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM Binary files differindex 6c4efe1b..5cff4281 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO Binary files differindex 13422421..45e54546 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP Binary files differindex d3da419a..f27ef87f 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE Binary files differindex 0fc18b79..ab8e9877 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG Binary files differindex 663d063c..a20e18d5 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH Binary files differindex 19ad37f6..2d186fef 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI Binary files differindex dc2906d3..8370801e 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM Binary files differindex 3c5ca9f4..2d6fe4fc 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN Binary files differindex 83569090..e97d2329 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP Binary files differindex 30c2f315..74310f17 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR Binary files differindex 452d730b..8109f816 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW Binary files differindex 9c2fe3d1..e184ec05 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY Binary files differindex 0e3ac3e8..2640b9e8 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ Binary files differindex 0ecf96ee..feec65c0 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA Binary files differindex 3ee7f5cb..4d0bedba 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB Binary files differindex 6673fd2c..2d11a0c6 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC Binary files differindex 8543a6b2..565e3d35 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI Binary files differindex 13ed8a6e..03207a10 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK Binary files differindex f40527bc..528b89ac 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR Binary files differindex 3c8e010b..a6d98d1b 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS Binary files differindex ce20cabf..aaafe00e 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT Binary files differindex b82c59a1..47f22282 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU Binary files differindex 6d498bde..2b9e4a8d 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV Binary files differindex 855793f7..92932980 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY Binary files differindex 0c32f609..f0433fd9 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA Binary files differindex 832a1cc1..7781aeb8 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC Binary files differindex 9723714b..66f0d765 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD Binary files differindex 49625e42..9b7ff42c 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME Binary files differindex 5caf3cdd..80be441b 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF Binary files differindex d9f2e5f0..5138d374 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG Binary files differindex 8400fc55..7b38ca3a 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH Binary files differindex b033f048..b8d3d45d 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK Binary files differindex d5f29e00..5401cbb8 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML Binary files differindex bcf2319a..73cc6dca 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM Binary files differindex f0425f20..f0be7e4c 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN Binary files differindex c6de525d..9fe3e04a 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO Binary files differindex d6a981f2..f0fbe002 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP Binary files differindex 2218205f..e50ccebe 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ Binary files differindex 84ebbf47..c13fbbf4 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR Binary files differindex 1fb60e6e..e7c1c5de 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS Binary files differindex 943d6346..a8b0e107 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT Binary files differindex 92b7f186..8bae5e4e 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU Binary files differindex 191dfd59..f6ae6ee1 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV Binary files differindex 6df01edf..ef2343e2 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW Binary files differindex daa030cc..aeb83349 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX Binary files differindex f4328320..c09bbf4b 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY Binary files differindex e04c636a..9ba15d72 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ Binary files differindex 74541096..3320fb12 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA Binary files differindex da2386e7..b87e997c 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC Binary files differindex 6a9fadad..b5e235af 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE Binary files differindex c245a6ba..9654c4d5 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF Binary files differindex 81a971fc..544eef3f 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG Binary files differindex 88363e5f..ddb825f7 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI Binary files differindex b007153d..42181d37 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL Binary files differindex ea0e3427..e85597f2 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO Binary files differindex b221c19c..7f32771d 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP Binary files differindex 416eeb4f..fc42a3fe 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR Binary files differindex 71630199..1ed47df6 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU Binary files differindex 215ba9dd..fb8ea167 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ Binary files differindex c5076e57..71b1d941 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM Binary files differindex c33b9527..9f31d3f8 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA Binary files differindex 080d2af8..7a7f1b4c 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE Binary files differindex 081c83c4..b368813c 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF Binary files differindex cbe240b1..921e217e 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG Binary files differindex 0aa87ac6..5350b0ce 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH Binary files differindex 30764636..39910ad4 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK Binary files differindex f2d41131..ac191776 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL Binary files differindex 51260850..1adeefd0 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM Binary files differindex c3375cb9..f108d308 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR Binary files differindex 164477d9..b6139f19 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS Binary files differindex 5c9bd81b..dc8b00f8 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT Binary files differindex f15b375c..3c4337be 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW Binary files differindex 4e81dcb1..f0fbeb9c 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY Binary files differindex 310accd0..546d5313 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA Binary files differindex af78d66d..3415b66f 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE Binary files differindex 73db8fec..3f9a186b 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO Binary files differindex 3ac59908..6f162158 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS Binary files differindex ef3697fa..6b0d501f 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU Binary files differindex 52cbfd22..e5dde379 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW Binary files differindex 1578ca1e..9b9f1d65 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA Binary files differindex 47ca9d6a..df752f21 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB Binary files differindex 884aa180..fa3af2f7 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC Binary files differindex 6538bda4..6a0ef37b 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD Binary files differindex 44688c8d..05dafe7f 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE Binary files differindex e19bf3b0..addbd0c9 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG Binary files differindex ebd558c0..399191b7 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH Binary files differindex 3754ba77..df0fa346 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI Binary files differindex 35fe0ed0..e592b21b 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK Binary files differindex a17a52f4..862ba163 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL Binary files differindex d0054b8c..ee6c80fa 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM Binary files differindex fae460c3..60532b71 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN Binary files differindex 01883c94..48518c5a 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO Binary files differindex 276f95e0..c58bcf30 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR Binary files differindex ed907c11..1acc4d5b 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST Binary files differindex bd31233f..4cf121b0 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV Binary files differindex 8d271ed7..1530fe38 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY Binary files differindex 55e16af0..bf871618 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ Binary files differindex ca05ebeb..2d434344 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC Binary files differindex 8334306d..b22f3593 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD Binary files differindex 052bafa6..e37f5ee9 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF Binary files differindex 70dbefb6..b434ff29 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG Binary files differindex bd37702a..473a79cf 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH Binary files differindex dd37ba3c..2148ca08 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ Binary files differindex 49a1150f..f938797e 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK Binary files differindex fac004c6..bc3a14c3 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL Binary files differindex 6e91c82a..60b6a85e 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM Binary files differindex 74a5f7d0..fef8dc06 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN Binary files differindex 55c59eb3..fa651eb3 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO Binary files differindex fbaa1bc3..5de89154 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR Binary files differindex ac898c06..beb21682 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT Binary files differindex dcfe980c..d76362e3 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV Binary files differindex c1472882..bc611bf4 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW Binary files differindex e2a9aa2a..e87da477 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ Binary files differindex 1eeeac09..d4bd4d01 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA Binary files differindex bdf7e834..9fe9153a 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG Binary files differindex e82ed60d..cddbc4a9 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US Binary files differindex 013523ad..3be038b4 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY Binary files differindex 0155f566..0160ccfe 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ Binary files differindex a6f951a0..2349b7d2 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA Binary files differindex f105e014..7da0693a 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC Binary files differindex c3cebe31..ac22b5f4 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE Binary files differindex ec87502e..41e1cf69 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG Binary files differindex c75a2954..b59311cb 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI Binary files differindex 294281b0..de0ea6fc 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN Binary files differindex 0bde54c5..81fbb02c 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU Binary files differindex 7643ede4..d2499c02 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF Binary files differindex 19ce6ea3..47b706ed 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS Binary files differindex cd472a2a..b4150e81 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE Binary files differindex a06ef7de..0858848c 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT Binary files differindex 286d4aa5..824eb773 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA Binary files differindex 7347bba3..f4a82cc4 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM Binary files differindex 3082fcea..addba8da 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW Binary files differindex 2e08a234..76cfe3be 100644 --- a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW +++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW diff --git a/java/test/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMapForTesting.java b/java/test/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMapForTesting.java new file mode 100644 index 00000000..45ef033e --- /dev/null +++ b/java/test/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMapForTesting.java @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2010 Google Inc. + * + * 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 BuildMetadataProtoFromXml. Please + * don't modify directly. + */ + +package com.google.i18n.phonenumbers; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class CountryCodeToRegionCodeMapForTesting { + // A mapping from a country code to the region codes which denote the + // country/region represented by that country code. In the case of multiple + // countries sharing a calling code, such as the NANPA countries, the one + // indicated with "isMainCountryForCode" in the metadata should be first. + static Map<Integer, List<String>> getCountryCodeToRegionCodeMap() { + // The capacity is set to 20 as there are 15 different country codes, + // and this offers a load factor of roughly 0.75. + Map<Integer, List<String>> countryCodeToRegionCodeMap = + new HashMap<Integer, List<String>>(20); + + ArrayList<String> listWithRegionCode; + + listWithRegionCode = new ArrayList<String>(2); + listWithRegionCode.add("US"); + listWithRegionCode.add("BS"); + countryCodeToRegionCodeMap.put(1, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("IT"); + countryCodeToRegionCodeMap.put(39, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("GB"); + countryCodeToRegionCodeMap.put(44, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("PL"); + countryCodeToRegionCodeMap.put(48, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("DE"); + countryCodeToRegionCodeMap.put(49, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("MX"); + countryCodeToRegionCodeMap.put(52, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AR"); + countryCodeToRegionCodeMap.put(54, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AU"); + countryCodeToRegionCodeMap.put(61, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("NZ"); + countryCodeToRegionCodeMap.put(64, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("SG"); + countryCodeToRegionCodeMap.put(65, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("JP"); + countryCodeToRegionCodeMap.put(81, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("KR"); + countryCodeToRegionCodeMap.put(82, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AO"); + countryCodeToRegionCodeMap.put(244, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(2); + listWithRegionCode.add("RE"); + listWithRegionCode.add("YT"); + countryCodeToRegionCodeMap.put(262, listWithRegionCode); + + listWithRegionCode = new ArrayList<String>(1); + listWithRegionCode.add("AD"); + countryCodeToRegionCodeMap.put(376, listWithRegionCode); + + return countryCodeToRegionCodeMap; + } +} diff --git a/java/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java b/java/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java index 667e955e..bfc21329 100644 --- a/java/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java +++ b/java/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java @@ -126,6 +126,13 @@ public class ExampleNumbersTest extends TestCase { assertEquals(0, wrongTypeCases.size()); } + public void testPager() throws Exception { + Set<PhoneNumberType> voipTypes = EnumSet.of(PhoneNumberType.PAGER); + checkNumbersValidAndCorrectType(PhoneNumberType.PAGER, voipTypes); + assertEquals(0, invalidCases.size()); + assertEquals(0, wrongTypeCases.size()); + } + public void testSharedCost() throws Exception { Set<PhoneNumberType> sharedCostTypes = EnumSet.of(PhoneNumberType.SHARED_COST); checkNumbersValidAndCorrectType(PhoneNumberType.SHARED_COST, sharedCostTypes); diff --git a/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java b/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java index e52a9120..4975189d 100644 --- a/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java +++ b/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java @@ -24,9 +24,7 @@ import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource; import junit.framework.TestCase; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.regex.Pattern; /** @@ -41,10 +39,10 @@ import java.util.regex.Pattern; */ public class PhoneNumberUtilTest extends TestCase { private PhoneNumberUtil phoneUtil; - private static final String TEST_META_DATA_FILE_PREFIX = + static final String TEST_META_DATA_FILE_PREFIX = "/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting"; - private static final Map<Integer, List<String> > COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING = - new HashMap<Integer, List<String> >(); + static final String TEST_COUNTRY_CODE_TO_REGION_CODE_MAP_CLASS_NAME = + "CountryCodeToRegionCodeMapForTesting"; public PhoneNumberUtilTest() { phoneUtil = initilizePhoneUtilForTesting(); @@ -53,72 +51,7 @@ public class PhoneNumberUtilTest extends TestCase { PhoneNumberUtil initilizePhoneUtilForTesting() { PhoneNumberUtil.resetInstance(); return PhoneNumberUtil.getInstance(TEST_META_DATA_FILE_PREFIX, - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING); - } - - static { - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.clear(); - ArrayList<String> listWithRegionCode = new ArrayList<String>(2); - listWithRegionCode.add("US"); - listWithRegionCode.add("BS"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(1, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("IT"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(39, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("GB"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(44, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("DE"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(49, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("PL"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(48, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AR"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(54, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("MX"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(52, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AU"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(61, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("NZ"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(64, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("SG"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(65, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("JP"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(81, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("KR"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(82, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AO"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(244, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(2); - listWithRegionCode.add("RE"); - listWithRegionCode.add("YT"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(262, listWithRegionCode); - - listWithRegionCode = new ArrayList<String>(1); - listWithRegionCode.add("AD"); - COUNTRY_CODE_TO_REGION_CODE_MAP_FOR_TESTING.put(376, listWithRegionCode); + CountryCodeToRegionCodeMapForTesting.getCountryCodeToRegionCodeMap()); } @Override diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD Binary files differindex 420a09ef..8f72b953 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO Binary files differindex 1fe371f1..76203392 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR Binary files differindex 879ff1f5..68b25027 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU Binary files differindex 1afde804..8a05649f 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS Binary files differindex 543069b4..f6f9f9cf 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE Binary files differindex e131c667..039192c6 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB Binary files differindex 71e628eb..4a3747bc 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT Binary files differindex 1e3c93f6..48652847 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP Binary files differindex 8666b3a7..43162974 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR Binary files differindex 12d49330..5bad0e2f 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX Binary files differindex eb82cb3d..98c475bc 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ Binary files differindex aab8cbd8..257c9557 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL Binary files differindex 9f561787..c6a0cb6f 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE Binary files differindex c0fb491e..69e0bb7a 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG Binary files differindex 359168d8..bb12d762 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US Binary files differindex b941f509..6070764a 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT Binary files differindex 50d8c934..47e6e065 100644 --- a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT +++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT |