diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java index a0d9957b2..c9a1f5c31 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java @@ -62,7 +62,7 @@ public class AsYouTypeFormatter { // code, from the national number. private static final char SEPARATOR_BEFORE_NATIONAL_NUMBER = ' '; private static final PhoneMetadata EMPTY_METADATA = - new PhoneMetadata().setInternationalPrefix("NA"); + PhoneMetadata.newBuilder().setId("").setInternationalPrefix("NA").build(); private PhoneMetadata defaultMetadata; private PhoneMetadata currentMetadata; @@ -166,9 +166,9 @@ public class AsYouTypeFormatter { // First decide whether we should use international or national number rules. boolean isInternationalNumber = isCompleteNumber && extractedNationalPrefix.length() == 0; List formatList = - (isInternationalNumber && currentMetadata.intlNumberFormatSize() > 0) - ? currentMetadata.intlNumberFormats() - : currentMetadata.numberFormats(); + (isInternationalNumber && currentMetadata.getIntlNumberFormatCount() > 0) + ? currentMetadata.getIntlNumberFormatList() + : currentMetadata.getNumberFormatList(); for (NumberFormat format : formatList) { // Discard a few formats that we know are not relevant based on the presence of the national // prefix. @@ -203,12 +203,12 @@ public class AsYouTypeFormatter { Iterator it = possibleFormats.iterator(); while (it.hasNext()) { NumberFormat format = it.next(); - if (format.leadingDigitsPatternSize() == 0) { + if (format.getLeadingDigitsPatternCount() == 0) { // Keep everything that isn't restricted by leading digits. continue; } int lastLeadingDigitsPattern = - Math.min(indexOfLeadingDigitsPattern, format.leadingDigitsPatternSize() - 1); + Math.min(indexOfLeadingDigitsPattern, format.getLeadingDigitsPatternCount() - 1); Pattern leadingDigitsPattern = regexCache.getPatternForRegex( format.getLeadingDigitsPattern(lastLeadingDigitsPattern)); Matcher m = leadingDigitsPattern.matcher(leadingDigits); diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java index 0cb73fd1b..c7bde8e13 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java @@ -578,8 +578,8 @@ final class PhoneNumberMatcher implements Iterator { MetadataManager.getAlternateFormatsForCountry(number.getCountryCode()); String nationalSignificantNumber = util.getNationalSignificantNumber(number); if (alternateFormats != null) { - for (NumberFormat alternateFormat : alternateFormats.numberFormats()) { - if (alternateFormat.leadingDigitsPatternSize() > 0) { + for (NumberFormat alternateFormat : alternateFormats.getNumberFormatList()) { + if (alternateFormat.getLeadingDigitsPatternCount() > 0) { // There is only one leading digits pattern for alternate formats. Pattern pattern = regexCache.getPatternForRegex(alternateFormat.getLeadingDigitsPattern(0)); @@ -667,7 +667,7 @@ final class PhoneNumberMatcher implements Iterator { // Check if a national prefix should be present when formatting this number. String nationalNumber = util.getNationalSignificantNumber(number); NumberFormat formatRule = - util.chooseFormattingPatternForNumber(metadata.numberFormats(), nationalNumber); + util.chooseFormattingPatternForNumber(metadata.getNumberFormatList(), nationalNumber); // To do this, we check that a national prefix formatting rule was present and that it wasn't // just the first-group symbol ($1) with punctuation. if ((formatRule != null) && formatRule.getNationalPrefixFormattingRule().length() > 0) { diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java index a725a0331..56e38870a 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java @@ -1306,7 +1306,7 @@ public class PhoneNumberUtil { } } formattedNumber.append( - formatNsnUsingPattern(nationalSignificantNumber, numFormatCopy, numberFormat)); + formatNsnUsingPattern(nationalSignificantNumber, numFormatCopy.build(), numberFormat)); } maybeAppendFormattedExtension(number, metadata, numberFormat, formattedNumber); prefixNumberWithCountryCallingCode(countryCallingCode, numberFormat, formattedNumber); @@ -1615,7 +1615,7 @@ public class PhoneNumberUtil { PhoneMetadata metadata = getMetadataForRegion(regionCode); String nationalNumber = getNationalSignificantNumber(number); NumberFormat formatRule = - chooseFormattingPatternForNumber(metadata.numberFormats(), nationalNumber); + chooseFormattingPatternForNumber(metadata.getNumberFormatList(), nationalNumber); // The format rule could still be null here if the national number was 0 and there was no // raw input (this should not be possible for numbers generated by the phonenumber library // as they would also not have a country calling code and we would have exited earlier). @@ -1647,7 +1647,7 @@ public class PhoneNumberUtil { numFormatCopy.mergeFrom(formatRule); numFormatCopy.clearNationalPrefixFormattingRule(); List numberFormats = new ArrayList(1); - numberFormats.add(numFormatCopy); + numberFormats.add(numFormatCopy.build()); formattedNumber = formatByPattern(number, PhoneNumberFormat.NATIONAL, numberFormats); break; } @@ -1694,7 +1694,7 @@ public class PhoneNumberUtil { } String nationalNumber = getNationalSignificantNumber(number); NumberFormat formatRule = - chooseFormattingPatternForNumber(metadata.numberFormats(), nationalNumber); + chooseFormattingPatternForNumber(metadata.getNumberFormatList(), nationalNumber); return formatRule != null; } @@ -1758,7 +1758,7 @@ public class PhoneNumberUtil { } else if (metadataForRegionCallingFrom != null && countryCode == getCountryCodeForValidRegion(regionCallingFrom)) { NumberFormat formattingPattern = - chooseFormattingPatternForNumber(metadataForRegionCallingFrom.numberFormats(), + chooseFormattingPatternForNumber(metadataForRegionCallingFrom.getNumberFormatList(), nationalNumber); if (formattingPattern == null) { // If no pattern above is matched, we format the original input. @@ -1775,7 +1775,7 @@ public class PhoneNumberUtil { // This will not work in the cases where the pattern (and not the leading digits) decide // whether a national prefix needs to be used, since we have overridden the pattern to match // anything, but that is not the case in the metadata to date. - return formatNsnUsingPattern(rawInput, newFormat, PhoneNumberFormat.NATIONAL); + return formatNsnUsingPattern(rawInput, newFormat.build(), PhoneNumberFormat.NATIONAL); } String internationalPrefixForFormatting = ""; // If an unsupported region-calling-from is entered, or a country with multiple international @@ -1868,13 +1868,13 @@ public class PhoneNumberUtil { PhoneMetadata metadata, PhoneNumberFormat numberFormat, CharSequence carrierCode) { - List intlNumberFormats = metadata.intlNumberFormats(); + List intlNumberFormats = metadata.getIntlNumberFormatList(); // When the intlNumberFormats exists, we use that to format national number for the // INTERNATIONAL format instead of using the numberDesc.numberFormats. List availableFormats = (intlNumberFormats.size() == 0 || numberFormat == PhoneNumberFormat.NATIONAL) - ? metadata.numberFormats() - : metadata.intlNumberFormats(); + ? metadata.getNumberFormatList() + : metadata.getIntlNumberFormatList(); NumberFormat formattingPattern = chooseFormattingPatternForNumber(availableFormats, number); return (formattingPattern == null) ? number @@ -1884,7 +1884,7 @@ public class PhoneNumberUtil { NumberFormat chooseFormattingPatternForNumber(List availableFormats, String nationalNumber) { for (NumberFormat numFormat : availableFormats) { - int size = numFormat.leadingDigitsPatternSize(); + int size = numFormat.getLeadingDigitsPatternCount(); if (size == 0 || regexCache.getPatternForRegex( // We always use the last leading_digits_pattern, as it is the most detailed. numFormat.getLeadingDigitsPattern(size - 1)).matcher(nationalNumber).lookingAt()) { @@ -2536,7 +2536,7 @@ public class PhoneNumberUtil { // Note that when adding the possible lengths from mobile, we have to again check they // aren't empty since if they are this indicates they are the same as the general desc and // should be obtained from there. - possibleLengths.addAll(mobileDesc.getPossibleLengthList().size() == 0 + possibleLengths.addAll(mobileDesc.getPossibleLengthCount() == 0 ? metadata.getGeneralDesc().getPossibleLengthList() : mobileDesc.getPossibleLengthList()); // The current list is sorted; we need to merge in the new list and re-sort (duplicates @@ -3518,6 +3518,6 @@ public class PhoneNumberUtil { logger.log(Level.WARNING, "Invalid or unknown region code provided: " + regionCode); return false; } - return metadata.isMobileNumberPortableRegion(); + return metadata.getMobileNumberPortableRegion(); } } diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/Phonemetadata.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/Phonemetadata.java index e2ef12276..8517c795f 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/Phonemetadata.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/Phonemetadata.java @@ -102,7 +102,9 @@ public final class Phonemetadata { public java.util.List leadingDigitPatterns() { return leadingDigitsPattern_; } - public int leadingDigitsPatternSize() { return leadingDigitsPattern_.size(); } + @Deprecated + public int leadingDigitsPatternSize() { return getLeadingDigitsPatternCount(); } + public int getLeadingDigitsPatternCount() { return leadingDigitsPattern_.size(); } public String getLeadingDigitsPattern(int index) { return leadingDigitsPattern_.get(index); } @@ -361,6 +363,16 @@ public final class Phonemetadata { public PhoneMetadata build() { return this; } + + public Builder setId(String value) { + super.setId(value); + return this; + } + + public Builder setInternationalPrefix(String value) { + super.setInternationalPrefix(value); + return this; + } } public static Builder newBuilder() { return new Builder(); @@ -371,6 +383,12 @@ public final class Phonemetadata { private PhoneNumberDesc generalDesc_ = null; public boolean hasGeneralDesc() { return hasGeneralDesc; } public PhoneNumberDesc getGeneralDesc() { return generalDesc_; } + public PhoneNumberDesc getGeneralDescBuilder() { + if (generalDesc_ == null) { + generalDesc_ = new PhoneNumberDesc(); + } + return generalDesc_ ; + } public PhoneMetadata setGeneralDesc(PhoneNumberDesc value) { if (value == null) { throw new NullPointerException(); @@ -730,10 +748,16 @@ public final class Phonemetadata { // repeated NumberFormat number_format = 19; private java.util.List numberFormat_ = new java.util.ArrayList(); + @Deprecated public java.util.List numberFormats() { + return getNumberFormatList(); + } + public java.util.List getNumberFormatList() { return numberFormat_; } - public int numberFormatSize() { return numberFormat_.size(); } + @Deprecated + public int numberFormatSize() { return getNumberFormatCount(); } + public int getNumberFormatCount() { return numberFormat_.size(); } public NumberFormat getNumberFormat(int index) { return numberFormat_.get(index); } @@ -748,10 +772,16 @@ public final class Phonemetadata { // repeated NumberFormat intl_number_format = 20; private java.util.List intlNumberFormat_ = new java.util.ArrayList(); + @Deprecated public java.util.List intlNumberFormats() { + return getIntlNumberFormatList(); + } + public java.util.List getIntlNumberFormatList() { return intlNumberFormat_; } - public int intlNumberFormatSize() { return intlNumberFormat_.size(); } + @Deprecated + public int intlNumberFormatSize() { return getIntlNumberFormatCount(); } + public int getIntlNumberFormatCount() { return intlNumberFormat_.size(); } public NumberFormat getIntlNumberFormat(int index) { return intlNumberFormat_.get(index); } @@ -818,7 +848,9 @@ public final class Phonemetadata { private boolean hasMobileNumberPortableRegion; private boolean mobileNumberPortableRegion_ = false; public boolean hasMobileNumberPortableRegion() { return hasMobileNumberPortableRegion; } - public boolean isMobileNumberPortableRegion() { return mobileNumberPortableRegion_; } + @Deprecated + public boolean isMobileNumberPortableRegion() { return getMobileNumberPortableRegion(); } + public boolean getMobileNumberPortableRegion() { return mobileNumberPortableRegion_; } public PhoneMetadata setMobileNumberPortableRegion(boolean value) { hasMobileNumberPortableRegion = true; mobileNumberPortableRegion_ = value; diff --git a/java/libphonenumber/test/com/google/i18n/phonenumbers/MetadataManagerTest.java b/java/libphonenumber/test/com/google/i18n/phonenumbers/MetadataManagerTest.java index f49055323..91b2f3950 100644 --- a/java/libphonenumber/test/com/google/i18n/phonenumbers/MetadataManagerTest.java +++ b/java/libphonenumber/test/com/google/i18n/phonenumbers/MetadataManagerTest.java @@ -28,7 +28,7 @@ public class MetadataManagerTest extends TestCase { // We should have some data for Germany. PhoneMetadata germanyMetadata = MetadataManager.getAlternateFormatsForCountry(49); assertNotNull(germanyMetadata); - assertTrue(germanyMetadata.numberFormats().size() > 0); + assertTrue(germanyMetadata.getNumberFormatCount() > 0); } public void testAlternateFormatsFailsGracefully() throws Exception { diff --git a/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java b/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java index 1b26a10d9..f3cd078c4 100644 --- a/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java +++ b/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java @@ -189,7 +189,7 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { assertEquals(1, metadata.getCountryCode()); assertEquals("011", metadata.getInternationalPrefix()); assertTrue(metadata.hasNationalPrefix()); - assertEquals(2, metadata.numberFormatSize()); + assertEquals(2, metadata.getNumberFormatCount()); assertEquals("(\\d{3})(\\d{3})(\\d{4})", metadata.getNumberFormat(1).getPattern()); assertEquals("$1 $2 $3", metadata.getNumberFormat(1).getFormat()); @@ -213,8 +213,8 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { assertEquals(49, metadata.getCountryCode()); assertEquals("00", metadata.getInternationalPrefix()); assertEquals("0", metadata.getNationalPrefix()); - assertEquals(6, metadata.numberFormatSize()); - assertEquals(1, metadata.getNumberFormat(5).leadingDigitsPatternSize()); + assertEquals(6, metadata.getNumberFormatCount()); + assertEquals(1, metadata.getNumberFormat(5).getLeadingDigitsPatternCount()); assertEquals("900", metadata.getNumberFormat(5).getLeadingDigitsPattern(0)); assertEquals("(\\d{3})(\\d{3,4})(\\d{4})", metadata.getNumberFormat(5).getPattern()); @@ -900,11 +900,11 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { } public void testFormatByPattern() { - NumberFormat newNumFormat = new NumberFormat(); + NumberFormat.Builder newNumFormat = NumberFormat.newBuilder(); newNumFormat.setPattern("(\\d{3})(\\d{3})(\\d{4})"); newNumFormat.setFormat("($1) $2-$3"); List newNumberFormats = new ArrayList(); - newNumberFormats.add(newNumFormat); + newNumberFormats.add(newNumFormat.build()); assertEquals("(650) 253-0000", phoneUtil.formatByPattern(US_NUMBER, PhoneNumberFormat.NATIONAL, newNumberFormats)); @@ -919,6 +919,7 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { // followed. newNumFormat.setNationalPrefixFormattingRule("$NP ($FG)"); newNumFormat.setFormat("$1 $2-$3"); + newNumberFormats.set(0, newNumFormat.build()); assertEquals("1 (242) 365-1234", phoneUtil.formatByPattern(BS_NUMBER, PhoneNumberFormat.NATIONAL, newNumberFormats)); @@ -928,7 +929,7 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { newNumFormat.setPattern("(\\d{2})(\\d{5})(\\d{3})"); newNumFormat.setFormat("$1-$2 $3"); - newNumberFormats.set(0, newNumFormat); + newNumberFormats.set(0, newNumFormat.build()); assertEquals("02-36618 300", phoneUtil.formatByPattern(IT_NUMBER, PhoneNumberFormat.NATIONAL, @@ -940,17 +941,19 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { newNumFormat.setNationalPrefixFormattingRule("$NP$FG"); newNumFormat.setPattern("(\\d{2})(\\d{4})(\\d{4})"); newNumFormat.setFormat("$1 $2 $3"); - newNumberFormats.set(0, newNumFormat); + newNumberFormats.set(0, newNumFormat.build()); assertEquals("020 7031 3000", phoneUtil.formatByPattern(GB_NUMBER, PhoneNumberFormat.NATIONAL, newNumberFormats)); newNumFormat.setNationalPrefixFormattingRule("($NP$FG)"); + newNumberFormats.set(0, newNumFormat.build()); assertEquals("(020) 7031 3000", phoneUtil.formatByPattern(GB_NUMBER, PhoneNumberFormat.NATIONAL, newNumberFormats)); newNumFormat.setNationalPrefixFormattingRule(""); + newNumberFormats.set(0, newNumFormat.build()); assertEquals("20 7031 3000", phoneUtil.formatByPattern(GB_NUMBER, PhoneNumberFormat.NATIONAL, newNumberFormats)); @@ -1814,29 +1817,32 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { } public void testMaybeStripNationalPrefix() { - PhoneMetadata metadata = new PhoneMetadata(); + PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder(); + metadata.setId("ignored"); metadata.setNationalPrefixForParsing("34"); - metadata.setGeneralDesc(new PhoneNumberDesc().setNationalNumberPattern("\\d{4,8}")); + metadata + .getGeneralDescBuilder() + .setNationalNumberPattern("\\d{4,8}"); StringBuilder numberToStrip = new StringBuilder("34356778"); String strippedNumber = "356778"; - assertTrue(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, null)); + assertTrue(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata.build(), null)); assertEquals("Should have had national prefix stripped.", strippedNumber, numberToStrip.toString()); // Retry stripping - now the number should not start with the national prefix, so no more // stripping should occur. - assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, null)); + assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata.build(), null)); assertEquals("Should have had no change - no national prefix present.", strippedNumber, numberToStrip.toString()); // Some countries have no national prefix. Repeat test with none specified. metadata.setNationalPrefixForParsing(""); - assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, null)); + assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata.build(), null)); assertEquals("Should not strip anything with empty national prefix.", strippedNumber, numberToStrip.toString()); // If the resultant number doesn't match the national rule, it shouldn't be stripped. metadata.setNationalPrefixForParsing("3"); numberToStrip = new StringBuilder("3123"); strippedNumber = "3123"; - assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, null)); + assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata.build(), null)); assertEquals("Should have had no change - after stripping, it wouldn't have matched " + "the national rule.", strippedNumber, numberToStrip.toString()); @@ -1845,8 +1851,9 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { numberToStrip = new StringBuilder("08122123456"); strippedNumber = "22123456"; StringBuilder carrierCode = new StringBuilder(); - assertTrue(phoneUtil.maybeStripNationalPrefixAndCarrierCode( - numberToStrip, metadata, carrierCode)); + assertTrue( + phoneUtil.maybeStripNationalPrefixAndCarrierCode( + numberToStrip, metadata.build(), carrierCode)); assertEquals("81", carrierCode.toString()); assertEquals("Should have had national prefix and carrier code stripped.", strippedNumber, numberToStrip.toString()); @@ -1856,7 +1863,8 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { metadata.setNationalPrefixForParsing("0(\\d{2})"); numberToStrip = new StringBuilder("031123"); String transformedNumber = "5315123"; - assertTrue(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, null)); + assertTrue( + phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata.build(), null)); assertEquals("Should transform the 031 to a 5315.", transformedNumber, numberToStrip.toString()); } diff --git a/java/libphonenumber/test/com/google/i18n/phonenumbers/internal/MatcherTest.java b/java/libphonenumber/test/com/google/i18n/phonenumbers/internal/MatcherTest.java index 822f40dcc..0470eb80b 100644 --- a/java/libphonenumber/test/com/google/i18n/phonenumbers/internal/MatcherTest.java +++ b/java/libphonenumber/test/com/google/i18n/phonenumbers/internal/MatcherTest.java @@ -29,9 +29,7 @@ public class MatcherTest extends TestCase { } private void checkMatcherBehavesAsExpected(MatcherApi matcher) { - PhoneNumberDesc desc = new PhoneNumberDesc(); - - desc = createDesc(""); + PhoneNumberDesc desc = createDesc(""); // Test if there is no matcher data. assertInvalid(matcher, "1", desc); @@ -60,11 +58,11 @@ public class MatcherTest extends TestCase { // Helper method to set national number fields in the PhoneNumberDesc proto. Empty fields won't be // set. private PhoneNumberDesc createDesc(String nationalNumberPattern) { - PhoneNumberDesc desc = new PhoneNumberDesc(); + PhoneNumberDesc.Builder desc = PhoneNumberDesc.newBuilder(); if (nationalNumberPattern.length() > 0) { desc.setNationalNumberPattern(nationalNumberPattern); } - return desc; + return desc.build(); } private void assertMatched(MatcherApi matcher, String number, PhoneNumberDesc desc) { diff --git a/pending_code_changes.txt b/pending_code_changes.txt index 8b1378917..0598f05d8 100644 --- a/pending_code_changes.txt +++ b/pending_code_changes.txt @@ -1 +1 @@ - +- [Java only] Use protobuf API v2 for PhoneMetadata only, mark old methods as deprecated. 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 b69c0ace4..d38927390 100644 --- a/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java +++ b/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java @@ -129,7 +129,7 @@ public class BuildMetadataFromXml { PhoneMetadata.Builder metadata = loadCountryMetadata(regionCode, territoryElement, isShortNumberMetadata, isAlternateFormatsMetadata); metadataFilter.filterMetadata(metadata); - metadataCollection.addMetadata(metadata); + metadataCollection.addMetadata(metadata.build()); } return metadataCollection.build(); } @@ -272,7 +272,7 @@ public class BuildMetadataFromXml { } if (intlFormat.hasFormat()) { - metadata.addIntlNumberFormat(intlFormat); + metadata.addIntlNumberFormat(intlFormat.build()); } return hasExplicitIntlFormatDefined; } @@ -438,7 +438,7 @@ public class BuildMetadataFromXml { * @return complete description of that phone number type */ // @VisibleForTesting - static PhoneNumberDesc.Builder processPhoneNumberDescElement(PhoneNumberDesc parentDesc, + static PhoneNumberDesc.Builder processPhoneNumberDescElement(PhoneNumberDesc.Builder parentDesc, Element countryElement, String numberType) { NodeList phoneNumberDescList = countryElement.getElementsByTagName(numberType); @@ -464,7 +464,7 @@ public class BuildMetadataFromXml { TreeSet lengths = new TreeSet(); TreeSet localOnlyLengths = new TreeSet(); populatePossibleLengthSets(element, lengths, localOnlyLengths); - setPossibleLengths(lengths, localOnlyLengths, parentDesc, numberDesc); + setPossibleLengths(lengths, localOnlyLengths, parentDesc.build(), numberDesc); } NodeList validPattern = element.getElementsByTagName(NATIONAL_NUMBER_PATTERN); @@ -484,15 +484,12 @@ public class BuildMetadataFromXml { // @VisibleForTesting static void setRelevantDescPatterns(PhoneMetadata.Builder metadata, Element element, boolean isShortNumberMetadata) { - PhoneNumberDesc.Builder generalDescBuilder = processPhoneNumberDescElement(null, element, + PhoneNumberDesc.Builder generalDesc = processPhoneNumberDescElement(null, element, GENERAL_DESC); // Calculate the possible lengths for the general description. This will be based on the // possible lengths of the child elements. - setPossibleLengthsGeneralDesc( - generalDescBuilder, metadata.getId(), element, isShortNumberMetadata); - metadata.setGeneralDesc(generalDescBuilder); - - PhoneNumberDesc generalDesc = metadata.getGeneralDesc(); + setPossibleLengthsGeneralDesc(generalDesc, metadata.getId(), element, isShortNumberMetadata); + metadata.setGeneralDesc(generalDesc); if (!isShortNumberMetadata) { // Set fields used by regular length phone numbers. 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 450a0c03a..c86bef251 100644 --- a/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java +++ b/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java @@ -340,7 +340,7 @@ public class BuildMetadataFromXmlTest extends TestCase { PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder(); BuildMetadataFromXml.loadAvailableFormats( metadata, element, "0", "($1)", false /* NP not optional */); - assertEquals(0, metadata.intlNumberFormatSize()); + assertEquals(0, metadata.getIntlNumberFormatCount()); } public void testLoadAvailableFormatsHandlesMultipleNumberFormats() @@ -369,7 +369,7 @@ public class BuildMetadataFromXmlTest extends TestCase { BuildMetadataFromXml.loadInternationalFormat(metadata, numberFormatElement, nationalFormat.build()); - assertEquals(0, metadata.intlNumberFormatSize()); + assertEquals(0, metadata.getIntlNumberFormatCount()); } // Tests setLeadingDigitsPatterns(). @@ -619,9 +619,7 @@ public class BuildMetadataFromXmlTest extends TestCase { + " \t \\d { 6 } " + ""; Element countryElement = parseXmlString(xmlInput); - PhoneNumberDesc.Builder phoneNumberDesc; - - phoneNumberDesc = BuildMetadataFromXml.processPhoneNumberDescElement( + PhoneNumberDesc.Builder phoneNumberDesc = BuildMetadataFromXml.processPhoneNumberDescElement( generalDesc, countryElement, "fixedLine"); assertEquals("\\d{6}", phoneNumberDesc.getNationalNumberPattern()); } diff --git a/tools/java/cpp-build/pom.xml b/tools/java/cpp-build/pom.xml index 4a7178845..efef9c57e 100644 --- a/tools/java/cpp-build/pom.xml +++ b/tools/java/cpp-build/pom.xml @@ -154,7 +154,7 @@ com.google.protobuf protobuf-java - 3.6.1 + 3.8.0