diff --git a/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java b/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java
index cb2c0caec..a5fb1ca21 100644
--- a/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java
+++ b/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java
@@ -102,14 +102,14 @@ public class BuildMetadataFromXml {
int numOfTerritories = territory.getLength();
for (int i = 0; i < numOfTerritories; i++) {
Element territoryElement = (Element) territory.item(i);
- String id = territoryElement.getAttribute("id");
- try {
- PhoneMetadata metadata = loadCountryMetadata(id, territoryElement);
- metadataCollection.addMetadata(metadata);
- } catch (IllegalArgumentException e) {
- LOGGER.log(Level.WARNING, "Found data for region '" + id + "' but no valid region code " +
- "can be found to match this. Data will be ignored.");
+ String regionCode = "";
+ // For the main metadata file this should always be set, but for other supplementary data
+ // files the country calling code may be all that is needed.
+ if (territoryElement.hasAttribute("id")) {
+ regionCode = territoryElement.getAttribute("id");
}
+ PhoneMetadata metadata = loadCountryMetadata(regionCode, territoryElement);
+ metadataCollection.addMetadata(metadata);
}
return metadataCollection.build();
}
@@ -170,8 +170,7 @@ public class BuildMetadataFromXml {
// @VisibleForTesting
static PhoneMetadata.Builder loadTerritoryTagMetadata(String regionCode, Element element,
- String nationalPrefix,
- String nationalPrefixFormattingRule) {
+ String nationalPrefix) {
PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder();
metadata.setId(regionCode);
metadata.setCountryCode(Integer.parseInt(element.getAttribute(COUNTRY_CODE)));
@@ -280,7 +279,7 @@ public class BuildMetadataFromXml {
* the parent (territory) element.
*/
// @VisibleForTesting
- static void loadAvailableFormats(PhoneMetadata.Builder metadata, String regionCode,
+ static void loadAvailableFormats(PhoneMetadata.Builder metadata,
Element element, String nationalPrefix,
String nationalPrefixFormattingRule,
boolean nationalPrefixOptionalWhenFormatting) {
@@ -450,12 +449,11 @@ public class BuildMetadataFromXml {
public static PhoneMetadata loadCountryMetadata(String regionCode, Element element) {
String nationalPrefix = getNationalPrefix(element);
+ PhoneMetadata.Builder metadata =
+ loadTerritoryTagMetadata(regionCode, element, nationalPrefix);
String nationalPrefixFormattingRule =
getNationalPrefixFormattingRuleFromElement(element, nationalPrefix);
- PhoneMetadata.Builder metadata =
- loadTerritoryTagMetadata(regionCode, element, nationalPrefix, nationalPrefixFormattingRule);
-
- loadAvailableFormats(metadata, regionCode, element, nationalPrefix.toString(),
+ loadAvailableFormats(metadata, element, nationalPrefix.toString(),
nationalPrefixFormattingRule.toString(),
element.hasAttribute(NATIONAL_PREFIX_OPTIONAL_WHEN_FORMATTING));
loadGeneralDesc(metadata, element);
diff --git a/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java b/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java
index 529cc6d35..f46da3290 100644
--- a/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java
+++ b/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java
@@ -104,7 +104,7 @@ public class BuildMetadataFromXmlTest extends TestCase {
"";
Element territoryElement = parseXmlString(xmlInput);
PhoneMetadata.Builder phoneMetadata =
- BuildMetadataFromXml.loadTerritoryTagMetadata("33", territoryElement, "0", "");
+ BuildMetadataFromXml.loadTerritoryTagMetadata("33", territoryElement, "0");
assertEquals(33, phoneMetadata.getCountryCode());
assertEquals("2", phoneMetadata.getLeadingDigits());
assertEquals("00", phoneMetadata.getInternationalPrefix());
@@ -122,7 +122,7 @@ public class BuildMetadataFromXmlTest extends TestCase {
String xmlInput = "";
Element territoryElement = parseXmlString(xmlInput);
PhoneMetadata.Builder phoneMetadata =
- BuildMetadataFromXml.loadTerritoryTagMetadata("33", territoryElement, "", "");
+ BuildMetadataFromXml.loadTerritoryTagMetadata("33", territoryElement, "");
assertFalse(phoneMetadata.getMainCountryForCode());
assertFalse(phoneMetadata.isLeadingZeroPossible());
}
@@ -132,7 +132,7 @@ public class BuildMetadataFromXmlTest extends TestCase {
String xmlInput = "";
Element territoryElement = parseXmlString(xmlInput);
PhoneMetadata.Builder phoneMetadata =
- BuildMetadataFromXml.loadTerritoryTagMetadata("33", territoryElement, "00", "");
+ BuildMetadataFromXml.loadTerritoryTagMetadata("33", territoryElement, "00");
// When unspecified, nationalPrefixForParsing defaults to nationalPrefix.
assertEquals("00", phoneMetadata.getNationalPrefix());
assertEquals(phoneMetadata.getNationalPrefix(), phoneMetadata.getNationalPrefixForParsing());
@@ -143,7 +143,7 @@ public class BuildMetadataFromXmlTest extends TestCase {
String xmlInput = "";
Element territoryElement = parseXmlString(xmlInput);
// Should not throw any exception.
- BuildMetadataFromXml.loadTerritoryTagMetadata("33", territoryElement, "", "");
+ BuildMetadataFromXml.loadTerritoryTagMetadata("33", territoryElement, "");
}
// Tests loadInternationalFormat().
@@ -260,7 +260,7 @@ public class BuildMetadataFromXmlTest extends TestCase {
Element element = parseXmlString(xmlInput);
PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder();
BuildMetadataFromXml.loadAvailableFormats(
- metadata, "AE", element, "0", "", false /* NP not optional */);
+ metadata, element, "0", "", false /* NP not optional */);
assertEquals("($1)", metadata.getNumberFormat(0).getNationalPrefixFormattingRule());
assertEquals("0 $CC ($1)", metadata.getNumberFormat(0).getDomesticCarrierCodeFormattingRule());
assertEquals("$1 $2 $3", metadata.getNumberFormat(0).getFormat());
@@ -279,7 +279,7 @@ public class BuildMetadataFromXmlTest extends TestCase {
Element element = parseXmlString(xmlInput);
PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder();
BuildMetadataFromXml.loadAvailableFormats(
- metadata, "AE", element, "0", "", false /* NP not optional */);
+ metadata, element, "0", "", false /* NP not optional */);
assertEquals("($1)", metadata.getNumberFormat(0).getNationalPrefixFormattingRule());
assertEquals("0 $CC ($1)", metadata.getNumberFormat(0).getDomesticCarrierCodeFormattingRule());
assertEquals("$1 $2 $3", metadata.getNumberFormat(0).getFormat());
@@ -296,7 +296,7 @@ public class BuildMetadataFromXmlTest extends TestCase {
Element element = parseXmlString(xmlInput);
PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder();
BuildMetadataFromXml.loadAvailableFormats(
- metadata, "AE", element, "", "($1)", false /* NP not optional */);
+ metadata, element, "", "($1)", false /* NP not optional */);
assertEquals("($1)", metadata.getNumberFormat(0).getNationalPrefixFormattingRule());
}
@@ -311,7 +311,7 @@ public class BuildMetadataFromXmlTest extends TestCase {
Element element = parseXmlString(xmlInput);
PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder();
BuildMetadataFromXml.loadAvailableFormats(
- metadata, "AE", element, "0", "($1)", false /* NP not optional */);
+ metadata, element, "0", "($1)", false /* NP not optional */);
assertEquals(0, metadata.intlNumberFormatSize());
}
@@ -327,7 +327,7 @@ public class BuildMetadataFromXmlTest extends TestCase {
Element element = parseXmlString(xmlInput);
PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder();
BuildMetadataFromXml.loadAvailableFormats(
- metadata, "AE", element, "0", "($1)", false /* NP not optional */);
+ metadata, element, "0", "($1)", false /* NP not optional */);
assertEquals("$1 $2 $3", metadata.getNumberFormat(0).getFormat());
assertEquals("$1-$2", metadata.getNumberFormat(1).getFormat());
}
diff --git a/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar b/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar
index 23c7ea9e0..2bdd1bd05 100644
Binary files a/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar and b/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar differ
diff --git a/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar b/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar
index 516a1bd05..2d63a1132 100644
Binary files a/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar and b/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar differ