From 792cf3cccb085fa3c4d9bec2231a92ad06ebb5c8 Mon Sep 17 00:00:00 2001 From: David Yonge-Mallo Date: Fri, 9 Oct 2015 18:19:34 +0200 Subject: [PATCH] replace Phonemetadata API for fields other than repeated fields, in preparation for switch to nanoproto --- .../i18n/phonenumbers/AsYouTypeFormatter.java | 39 +- .../i18n/phonenumbers/MetadataManager.java | 2 +- .../i18n/phonenumbers/PhoneNumberMatcher.java | 6 +- .../i18n/phonenumbers/PhoneNumberUtil.java | 144 ++-- .../i18n/phonenumbers/Phonemetadata.java | 722 +++++------------- .../i18n/phonenumbers/ShortNumberInfo.java | 51 +- .../SingleFileMetadataSourceImpl.java | 4 +- .../internal/RegexBasedMatcher.java | 4 +- .../i18n/phonenumbers/ExampleNumbersTest.java | 18 +- .../phonenumbers/MetadataManagerTest.java | 2 +- .../phonenumbers/PhoneNumberUtilTest.java | 117 +-- java/pom.xml | 5 + .../phonenumbers/BuildMetadataFromXml.java | 161 ++-- .../BuildMetadataFromXmlTest.java | 134 ++-- .../BuildMetadataJsonFromXml.java | 98 +-- .../BuildMetadataProtoFromXml.java | 4 +- 16 files changed, 579 insertions(+), 932 deletions(-) diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java index 456c8edaa..a277ac5f7 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java @@ -61,8 +61,11 @@ public class AsYouTypeFormatter { // Character used when appropriate to separate a prefix, such as a long NDD or a country calling // code, from the national number. private static final char SEPARATOR_BEFORE_NATIONAL_NUMBER = ' '; - private static final PhoneMetadata EMPTY_METADATA = - new PhoneMetadata().setInternationalPrefix("NA"); + private static final PhoneMetadata EMPTY_METADATA; + static { + EMPTY_METADATA = new PhoneMetadata(); + EMPTY_METADATA.internationalPrefix = "NA"; + } private PhoneMetadata defaultMetadata; private PhoneMetadata currentMetadata; @@ -115,7 +118,7 @@ public class AsYouTypeFormatter { private StringBuilder nationalNumber = new StringBuilder(); private List possibleFormats = new ArrayList(); - // A cache for frequently used country-specific regular expressions. + // A cache for frequently used country-specific regular expressions. private RegexCache regexCache = new RegexCache(64); /** @@ -151,7 +154,7 @@ public class AsYouTypeFormatter { Iterator it = possibleFormats.iterator(); while (it.hasNext()) { NumberFormat numberFormat = it.next(); - String pattern = numberFormat.getPattern(); + String pattern = numberFormat.pattern; if (currentFormattingPattern.equals(pattern)) { return false; } @@ -159,7 +162,7 @@ public class AsYouTypeFormatter { currentFormattingPattern = pattern; shouldAddSpaceAfterNationalPrefix = NATIONAL_PREFIX_SEPARATORS_PATTERN.matcher( - numberFormat.getNationalPrefixFormattingRule()).find(); + numberFormat.nationalPrefixFormattingRule).find(); // With a new formatting template, the matched position using the old template needs to be // reset. lastMatchPosition = 0; @@ -177,13 +180,13 @@ public class AsYouTypeFormatter { (isCompleteNumber && currentMetadata.intlNumberFormatSize() > 0) ? currentMetadata.intlNumberFormats() : currentMetadata.numberFormats(); - boolean nationalPrefixIsUsedByCountry = currentMetadata.hasNationalPrefix(); + boolean nationalPrefixIsUsedByCountry = !currentMetadata.nationalPrefix.isEmpty(); for (NumberFormat format : formatList) { if (!nationalPrefixIsUsedByCountry || isCompleteNumber || - format.isNationalPrefixOptionalWhenFormatting() || + format.nationalPrefixOptionalWhenFormatting || PhoneNumberUtil.formattingRuleHasFirstGroupOnly( - format.getNationalPrefixFormattingRule())) { - if (isFormatEligible(format.getFormat())) { + format.nationalPrefixFormattingRule)) { + if (isFormatEligible(format.format)) { possibleFormats.add(format); } } @@ -216,7 +219,7 @@ public class AsYouTypeFormatter { } private boolean createFormattingTemplate(NumberFormat format) { - String numberPattern = format.getPattern(); + String numberPattern = format.pattern; // The formatter doesn't format numbers when numberPattern contains "|", e.g. // (20|3)\d{4}. In those cases we quickly return. @@ -230,7 +233,7 @@ public class AsYouTypeFormatter { // Replace any standalone digit (not the one in d{}) with \d numberPattern = STANDALONE_DIGIT_PATTERN.matcher(numberPattern).replaceAll("\\\\d"); formattingTemplate.setLength(0); - String tempTemplate = getFormattingTemplate(numberPattern, format.getFormat()); + String tempTemplate = getFormattingTemplate(numberPattern, format.format); if (tempTemplate.length() > 0) { formattingTemplate.append(tempTemplate); return true; @@ -428,12 +431,12 @@ public class AsYouTypeFormatter { */ String attemptToFormatAccruedDigits() { for (NumberFormat numberFormat : possibleFormats) { - Matcher m = regexCache.getPatternForRegex(numberFormat.getPattern()).matcher(nationalNumber); + Matcher m = regexCache.getPatternForRegex(numberFormat.pattern).matcher(nationalNumber); if (m.matches()) { shouldAddSpaceAfterNationalPrefix = NATIONAL_PREFIX_SEPARATORS_PATTERN.matcher( - numberFormat.getNationalPrefixFormattingRule()).find(); - String formattedNumber = m.replaceAll(numberFormat.getFormat()); + numberFormat.nationalPrefixFormattingRule).find(); + String formattedNumber = m.replaceAll(numberFormat.format); return appendNationalNumber(formattedNumber); } } @@ -526,7 +529,7 @@ public class AsYouTypeFormatter { // that national significant numbers in NANPA always start with [2-9] after the national prefix. // Numbers beginning with 1[01] can only be short/emergency numbers, which don't need the // national prefix. - return (currentMetadata.getCountryCode() == 1) && (nationalNumber.charAt(0) == '1') && + return (currentMetadata.countryCode == 1) && (nationalNumber.charAt(0) == '1') && (nationalNumber.charAt(1) != '0') && (nationalNumber.charAt(1) != '1'); } @@ -537,9 +540,9 @@ public class AsYouTypeFormatter { startOfNationalNumber = 1; prefixBeforeNationalNumber.append('1').append(SEPARATOR_BEFORE_NATIONAL_NUMBER); isCompleteNumber = true; - } else if (currentMetadata.hasNationalPrefixForParsing()) { + } else if (currentMetadata.nationalPrefixForParsing.length() != 0) { Pattern nationalPrefixForParsing = - regexCache.getPatternForRegex(currentMetadata.getNationalPrefixForParsing()); + regexCache.getPatternForRegex(currentMetadata.nationalPrefixForParsing); Matcher m = nationalPrefixForParsing.matcher(nationalNumber); // Since some national prefix patterns are entirely optional, check that a national prefix // could actually be extracted. @@ -567,7 +570,7 @@ public class AsYouTypeFormatter { private boolean attemptToExtractIdd() { Pattern internationalPrefix = regexCache.getPatternForRegex("\\" + PhoneNumberUtil.PLUS_SIGN + "|" + - currentMetadata.getInternationalPrefix()); + currentMetadata.internationalPrefix); Matcher iddMatcher = internationalPrefix.matcher(accruedInputWithoutFormatting); if (iddMatcher.lookingAt()) { isCompleteNumber = true; diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataManager.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataManager.java index e6f44deec..c9f36c8d2 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataManager.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataManager.java @@ -80,7 +80,7 @@ class MetadataManager { PhoneMetadataCollection alternateFormats = new PhoneMetadataCollection(); alternateFormats.readExternal(in); for (PhoneMetadata metadata : alternateFormats.getMetadataList()) { - callingCodeToAlternateFormatsMap.put(metadata.getCountryCode(), metadata); + callingCodeToAlternateFormatsMap.put(metadata.countryCode, metadata); } } catch (IOException e) { LOGGER.log(Level.WARNING, e.toString()); diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java index c74b21abc..6bdd4ceed 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java @@ -668,14 +668,14 @@ final class PhoneNumberMatcher implements Iterator { util.chooseFormattingPatternForNumber(metadata.numberFormats(), 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) { - if (formatRule.isNationalPrefixOptionalWhenFormatting()) { + if ((formatRule != null) && formatRule.nationalPrefixFormattingRule.length() > 0) { + if (formatRule.nationalPrefixOptionalWhenFormatting) { // The national-prefix is optional in these cases, so we don't need to check if it was // present. return true; } if (PhoneNumberUtil.formattingRuleHasFirstGroupOnly( - formatRule.getNationalPrefixFormattingRule())) { + formatRule.nationalPrefixFormattingRule)) { // National Prefix not needed for this number. return true; } diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java index 14be7f09e..5541cbcf2 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java @@ -769,7 +769,7 @@ public class PhoneNumberUtil { } // If a country doesn't use a national prefix, and this number doesn't have an Italian leading // zero, we assume it is a closed dialling plan with no area codes. - if (!metadata.hasNationalPrefix() && !number.isItalianLeadingZero()) { + if (metadata.nationalPrefix.equals("") && !number.isItalianLeadingZero()) { return 0; } @@ -1123,19 +1123,19 @@ public class PhoneNumberUtil { // need to copy the rule so that subsequent replacements for different numbers have the // appropriate national prefix. numFormatCopy.mergeFrom(formattingPattern); - String nationalPrefixFormattingRule = formattingPattern.getNationalPrefixFormattingRule(); + String nationalPrefixFormattingRule = formattingPattern.nationalPrefixFormattingRule; if (nationalPrefixFormattingRule.length() > 0) { - String nationalPrefix = metadata.getNationalPrefix(); + String nationalPrefix = metadata.nationalPrefix; if (nationalPrefix.length() > 0) { // Replace $NP with national prefix and $FG with the first group ($1). nationalPrefixFormattingRule = NP_PATTERN.matcher(nationalPrefixFormattingRule).replaceFirst(nationalPrefix); nationalPrefixFormattingRule = FG_PATTERN.matcher(nationalPrefixFormattingRule).replaceFirst("\\$1"); - numFormatCopy.setNationalPrefixFormattingRule(nationalPrefixFormattingRule); + numFormatCopy.nationalPrefixFormattingRule = nationalPrefixFormattingRule; } else { // We don't want to have a rule for how to format the national prefix if there isn't one. - numFormatCopy.clearNationalPrefixFormattingRule(); + numFormatCopy.nationalPrefixFormattingRule = ""; } } formattedNumber.append( @@ -1351,16 +1351,16 @@ public class PhoneNumberUtil { } // Metadata cannot be null because we checked 'isValidRegionCode()' above. PhoneMetadata metadataForRegionCallingFrom = getMetadataForRegion(regionCallingFrom); - String internationalPrefix = metadataForRegionCallingFrom.getInternationalPrefix(); + String internationalPrefix = metadataForRegionCallingFrom.internationalPrefix; // For regions that have multiple international prefixes, the international format of the // number is returned, unless there is a preferred international prefix. String internationalPrefixForFormatting = ""; if (UNIQUE_INTERNATIONAL_PREFIX.matcher(internationalPrefix).matches()) { internationalPrefixForFormatting = internationalPrefix; - } else if (metadataForRegionCallingFrom.hasPreferredInternationalPrefix()) { + } else if (!metadataForRegionCallingFrom.preferredInternationalPrefix.equals("")) { internationalPrefixForFormatting = - metadataForRegionCallingFrom.getPreferredInternationalPrefix(); + metadataForRegionCallingFrom.preferredInternationalPrefix; } String regionCode = getRegionCodeForCountryCode(countryCallingCode); @@ -1458,7 +1458,7 @@ public class PhoneNumberUtil { // return the national format. // TODO: Refactor the code below with the code in // isNationalPrefixPresentIfRequired. - String candidateNationalPrefixRule = formatRule.getNationalPrefixFormattingRule(); + String candidateNationalPrefixRule = formatRule.nationalPrefixFormattingRule; // We assume that the first-group symbol will never be _before_ the national prefix. int indexOfFirstGroup = candidateNationalPrefixRule.indexOf("$1"); if (indexOfFirstGroup <= 0) { @@ -1476,7 +1476,7 @@ public class PhoneNumberUtil { // Otherwise, we need to remove the national prefix from our output. NumberFormat numFormatCopy = new NumberFormat(); numFormatCopy.mergeFrom(formatRule); - numFormatCopy.clearNationalPrefixFormattingRule(); + numFormatCopy.nationalPrefixFormattingRule = ""; List numberFormats = new ArrayList(1); numberFormats.add(numFormatCopy); formattedNumber = formatByPattern(number, PhoneNumberFormat.NATIONAL, numberFormats); @@ -1606,9 +1606,9 @@ public class PhoneNumberUtil { NumberFormat newFormat = new NumberFormat(); newFormat.mergeFrom(formattingPattern); // The first group is the first group of digits that the user wrote together. - newFormat.setPattern("(\\d+)(.*)"); + newFormat.pattern = "(\\d+)(.*)"; // Here we just concatenate them back together after the national prefix has been fixed. - newFormat.setFormat("$1$2"); + newFormat.format = "$1$2"; // Now we format using this pattern instead of the default pattern, but with the national // prefix prefixed if necessary. // This will not work in the cases where the pattern (and not the leading digits) decide @@ -1621,11 +1621,11 @@ public class PhoneNumberUtil { // prefixes, the international format of the number is returned, unless there is a preferred // international prefix. if (metadataForRegionCallingFrom != null) { - String internationalPrefix = metadataForRegionCallingFrom.getInternationalPrefix(); + String internationalPrefix = metadataForRegionCallingFrom.internationalPrefix; internationalPrefixForFormatting = UNIQUE_INTERNATIONAL_PREFIX.matcher(internationalPrefix).matches() ? internationalPrefix - : metadataForRegionCallingFrom.getPreferredInternationalPrefix(); + : metadataForRegionCallingFrom.preferredInternationalPrefix; } StringBuilder formattedNumber = new StringBuilder(rawInput); String regionCode = getRegionCodeForCountryCode(countryCode); @@ -1727,7 +1727,7 @@ public class PhoneNumberUtil { 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()) { - Matcher m = regexCache.getPatternForRegex(numFormat.getPattern()).matcher(nationalNumber); + Matcher m = regexCache.getPatternForRegex(numFormat.pattern).matcher(nationalNumber); if (m.matches()) { return numFormat; } @@ -1749,15 +1749,15 @@ public class PhoneNumberUtil { NumberFormat formattingPattern, PhoneNumberFormat numberFormat, String carrierCode) { - String numberFormatRule = formattingPattern.getFormat(); + String numberFormatRule = formattingPattern.format; Matcher m = - regexCache.getPatternForRegex(formattingPattern.getPattern()).matcher(nationalNumber); + regexCache.getPatternForRegex(formattingPattern.pattern).matcher(nationalNumber); String formattedNationalNumber = ""; if (numberFormat == PhoneNumberFormat.NATIONAL && carrierCode != null && carrierCode.length() > 0 && - formattingPattern.getDomesticCarrierCodeFormattingRule().length() > 0) { + formattingPattern.domesticCarrierCodeFormattingRule.length() > 0) { // Replace the $CC in the formatting rule with the desired carrier code. - String carrierCodeFormattingRule = formattingPattern.getDomesticCarrierCodeFormattingRule(); + String carrierCodeFormattingRule = formattingPattern.domesticCarrierCodeFormattingRule; carrierCodeFormattingRule = CC_PATTERN.matcher(carrierCodeFormattingRule).replaceFirst(carrierCode); // Now replace the $FG in the formatting rule with the first group and the carrier code @@ -1767,7 +1767,7 @@ public class PhoneNumberUtil { formattedNationalNumber = m.replaceAll(numberFormatRule); } else { // Use the national prefix formatting rule instead. - String nationalPrefixFormattingRule = formattingPattern.getNationalPrefixFormattingRule(); + String nationalPrefixFormattingRule = formattingPattern.nationalPrefixFormattingRule; if (numberFormat == PhoneNumberFormat.NATIONAL && nationalPrefixFormattingRule != null && nationalPrefixFormattingRule.length() > 0) { @@ -1820,8 +1820,8 @@ public class PhoneNumberUtil { } PhoneNumberDesc desc = getNumberDescByType(getMetadataForRegion(regionCode), type); try { - if (desc.hasExampleNumber()) { - return parse(desc.getExampleNumber(), regionCode); + if (!desc.exampleNumber.equals("")) { + return parse(desc.exampleNumber, regionCode); } } catch (NumberParseException e) { logger.log(Level.SEVERE, e.toString()); @@ -1840,10 +1840,10 @@ public class PhoneNumberUtil { public PhoneNumber getExampleNumberForNonGeoEntity(int countryCallingCode) { PhoneMetadata metadata = getMetadataForNonGeographicalRegion(countryCallingCode); if (metadata != null) { - PhoneNumberDesc desc = metadata.getGeneralDesc(); + PhoneNumberDesc desc = metadata.generalDesc; try { - if (desc.hasExampleNumber()) { - return parse("+" + countryCallingCode + desc.getExampleNumber(), "ZZ"); + if (!desc.exampleNumber.equals("")) { + return parse("+" + countryCallingCode + desc.exampleNumber, "ZZ"); } } catch (NumberParseException e) { logger.log(Level.SEVERE, e.toString()); @@ -1866,8 +1866,8 @@ public class PhoneNumberUtil { if (numberFormat == PhoneNumberFormat.RFC3966) { formattedNumber.append(RFC3966_EXTN_PREFIX).append(number.getExtension()); } else { - if (metadata.hasPreferredExtnPrefix()) { - formattedNumber.append(metadata.getPreferredExtnPrefix()).append(number.getExtension()); + if (metadata.preferredExtnPrefix.length() != 0) { + formattedNumber.append(metadata.preferredExtnPrefix).append(number.getExtension()); } else { formattedNumber.append(DEFAULT_EXTN_PREFIX).append(number.getExtension()); } @@ -1878,28 +1878,28 @@ public class PhoneNumberUtil { PhoneNumberDesc getNumberDescByType(PhoneMetadata metadata, PhoneNumberType type) { switch (type) { case PREMIUM_RATE: - return metadata.getPremiumRate(); + return metadata.premiumRate; case TOLL_FREE: - return metadata.getTollFree(); + return metadata.tollFree; case MOBILE: - return metadata.getMobile(); + return metadata.mobile; case FIXED_LINE: case FIXED_LINE_OR_MOBILE: - return metadata.getFixedLine(); + return metadata.fixedLine; case SHARED_COST: - return metadata.getSharedCost(); + return metadata.sharedCost; case VOIP: - return metadata.getVoip(); + return metadata.voip; case PERSONAL_NUMBER: - return metadata.getPersonalNumber(); + return metadata.personalNumber; case PAGER: - return metadata.getPager(); + return metadata.pager; case UAN: - return metadata.getUan(); + return metadata.uan; case VOICEMAIL: - return metadata.getVoicemail(); + return metadata.voicemail; default: - return metadata.getGeneralDesc(); + return metadata.generalDesc; } } @@ -1920,48 +1920,48 @@ public class PhoneNumberUtil { } private PhoneNumberType getNumberTypeHelper(String nationalNumber, PhoneMetadata metadata) { - if (!isNumberMatchingDesc(nationalNumber, metadata.getGeneralDesc())) { + if (!isNumberMatchingDesc(nationalNumber, metadata.generalDesc)) { return PhoneNumberType.UNKNOWN; } - if (isNumberMatchingDesc(nationalNumber, metadata.getPremiumRate())) { + if (isNumberMatchingDesc(nationalNumber, metadata.premiumRate)) { return PhoneNumberType.PREMIUM_RATE; } - if (isNumberMatchingDesc(nationalNumber, metadata.getTollFree())) { + if (isNumberMatchingDesc(nationalNumber, metadata.tollFree)) { return PhoneNumberType.TOLL_FREE; } - if (isNumberMatchingDesc(nationalNumber, metadata.getSharedCost())) { + if (isNumberMatchingDesc(nationalNumber, metadata.sharedCost)) { return PhoneNumberType.SHARED_COST; } - if (isNumberMatchingDesc(nationalNumber, metadata.getVoip())) { + if (isNumberMatchingDesc(nationalNumber, metadata.voip)) { return PhoneNumberType.VOIP; } - if (isNumberMatchingDesc(nationalNumber, metadata.getPersonalNumber())) { + if (isNumberMatchingDesc(nationalNumber, metadata.personalNumber)) { return PhoneNumberType.PERSONAL_NUMBER; } - if (isNumberMatchingDesc(nationalNumber, metadata.getPager())) { + if (isNumberMatchingDesc(nationalNumber, metadata.pager)) { return PhoneNumberType.PAGER; } - if (isNumberMatchingDesc(nationalNumber, metadata.getUan())) { + if (isNumberMatchingDesc(nationalNumber, metadata.uan)) { return PhoneNumberType.UAN; } - if (isNumberMatchingDesc(nationalNumber, metadata.getVoicemail())) { + if (isNumberMatchingDesc(nationalNumber, metadata.voicemail)) { return PhoneNumberType.VOICEMAIL; } - boolean isFixedLine = isNumberMatchingDesc(nationalNumber, metadata.getFixedLine()); + boolean isFixedLine = isNumberMatchingDesc(nationalNumber, metadata.fixedLine); if (isFixedLine) { - if (metadata.isSameMobileAndFixedLinePattern()) { + if (metadata.sameMobileAndFixedLinePattern) { return PhoneNumberType.FIXED_LINE_OR_MOBILE; - } else if (isNumberMatchingDesc(nationalNumber, metadata.getMobile())) { + } else if (isNumberMatchingDesc(nationalNumber, metadata.mobile)) { return PhoneNumberType.FIXED_LINE_OR_MOBILE; } return PhoneNumberType.FIXED_LINE; } // Otherwise, test to see if the number is mobile. Only do this if certain that the patterns for // mobile and fixed line aren't the same. - if (!metadata.isSameMobileAndFixedLinePattern() && - isNumberMatchingDesc(nationalNumber, metadata.getMobile())) { + if (!metadata.sameMobileAndFixedLinePattern && + isNumberMatchingDesc(nationalNumber, metadata.mobile)) { return PhoneNumberType.MOBILE; } return PhoneNumberType.UNKNOWN; @@ -1987,14 +1987,14 @@ public class PhoneNumberUtil { boolean isNumberPossibleForDesc(String nationalNumber, PhoneNumberDesc numberDesc) { Matcher possibleNumberPatternMatcher = - regexCache.getPatternForRegex(numberDesc.getPossibleNumberPattern()) + regexCache.getPatternForRegex(numberDesc.possibleNumberPattern) .matcher(nationalNumber); return possibleNumberPatternMatcher.matches(); } boolean isNumberMatchingDesc(String nationalNumber, PhoneNumberDesc numberDesc) { Matcher nationalNumberPatternMatcher = - regexCache.getPatternForRegex(numberDesc.getNationalNumberPattern()) + regexCache.getPatternForRegex(numberDesc.nationalNumberPattern) .matcher(nationalNumber); return isNumberPossibleForDesc(nationalNumber, numberDesc) && nationalNumberPatternMatcher.matches(); @@ -2073,8 +2073,8 @@ public class PhoneNumberUtil { // If leadingDigits is present, use this. Otherwise, do full validation. // Metadata cannot be null because the region codes come from the country calling code map. PhoneMetadata metadata = getMetadataForRegion(regionCode); - if (metadata.hasLeadingDigits()) { - if (regexCache.getPatternForRegex(metadata.getLeadingDigits()) + if (metadata.leadingDigits.length() != 0) { + if (regexCache.getPatternForRegex(metadata.leadingDigits) .matcher(nationalNumber).lookingAt()) { return regionCode; } @@ -2140,7 +2140,7 @@ public class PhoneNumberUtil { if (metadata == null) { throw new IllegalArgumentException("Invalid region code: " + regionCode); } - return metadata.getCountryCode(); + return metadata.countryCode; } /** @@ -2166,7 +2166,7 @@ public class PhoneNumberUtil { + ") provided."); return null; } - String nationalPrefix = metadata.getNationalPrefix(); + String nationalPrefix = metadata.nationalPrefix; // If no national prefix was found, we return null. if (nationalPrefix.length() == 0) { return null; @@ -2200,7 +2200,7 @@ public class PhoneNumberUtil { if (mainMetadataForCallingCode == null) { return false; } - return mainMetadataForCallingCode.isLeadingZeroPossible(); + return mainMetadataForCallingCode.leadingZeroPossible; } /** @@ -2257,7 +2257,7 @@ public class PhoneNumberUtil { */ private boolean isShorterThanPossibleNormalNumber(PhoneMetadata regionMetadata, String number) { Pattern possibleNumberPattern = regexCache.getPatternForRegex( - regionMetadata.getGeneralDesc().getPossibleNumberPattern()); + regionMetadata.generalDesc.possibleNumberPattern); return testNumberLengthAgainstPattern(possibleNumberPattern, number) == ValidationResult.TOO_SHORT; } @@ -2297,7 +2297,7 @@ public class PhoneNumberUtil { // Metadata cannot be null because the country calling code is valid. PhoneMetadata metadata = getMetadataForRegionOrCallingCode(countryCode, regionCode); Pattern possibleNumberPattern = - regexCache.getPatternForRegex(metadata.getGeneralDesc().getPossibleNumberPattern()); + regexCache.getPatternForRegex(metadata.generalDesc.possibleNumberPattern); return testNumberLengthAgainstPattern(possibleNumberPattern, nationalNumber); } @@ -2429,7 +2429,7 @@ public class PhoneNumberUtil { // Set the default prefix to be something that will never match. String possibleCountryIddPrefix = "NonMatch"; if (defaultRegionMetadata != null) { - possibleCountryIddPrefix = defaultRegionMetadata.getInternationalPrefix(); + possibleCountryIddPrefix = defaultRegionMetadata.internationalPrefix; } CountryCodeSource countryCodeSource = @@ -2457,19 +2457,19 @@ public class PhoneNumberUtil { // Check to see if the number starts with the country calling code for the default region. If // so, we remove the country calling code, and do some checks on the validity of the number // before and after. - int defaultCountryCode = defaultRegionMetadata.getCountryCode(); + int defaultCountryCode = defaultRegionMetadata.countryCode; String defaultCountryCodeString = String.valueOf(defaultCountryCode); String normalizedNumber = fullNumber.toString(); if (normalizedNumber.startsWith(defaultCountryCodeString)) { StringBuilder potentialNationalNumber = new StringBuilder(normalizedNumber.substring(defaultCountryCodeString.length())); - PhoneNumberDesc generalDesc = defaultRegionMetadata.getGeneralDesc(); + PhoneNumberDesc generalDesc = defaultRegionMetadata.generalDesc; Pattern validNumberPattern = - regexCache.getPatternForRegex(generalDesc.getNationalNumberPattern()); + regexCache.getPatternForRegex(generalDesc.nationalNumberPattern); maybeStripNationalPrefixAndCarrierCode( potentialNationalNumber, defaultRegionMetadata, null /* Don't need the carrier code */); Pattern possibleNumberPattern = - regexCache.getPatternForRegex(generalDesc.getPossibleNumberPattern()); + regexCache.getPatternForRegex(generalDesc.possibleNumberPattern); // If the number was not valid before but is valid now, or if it was too long before, we // consider the number with the country calling code stripped to be a better result and // keep that instead. @@ -2562,7 +2562,7 @@ public class PhoneNumberUtil { boolean maybeStripNationalPrefixAndCarrierCode( StringBuilder number, PhoneMetadata metadata, StringBuilder carrierCode) { int numberLength = number.length(); - String possibleNationalPrefix = metadata.getNationalPrefixForParsing(); + String possibleNationalPrefix = metadata.nationalPrefixForParsing; if (numberLength == 0 || possibleNationalPrefix.length() == 0) { // Early return for numbers of zero length. return false; @@ -2571,14 +2571,14 @@ public class PhoneNumberUtil { Matcher prefixMatcher = regexCache.getPatternForRegex(possibleNationalPrefix).matcher(number); if (prefixMatcher.lookingAt()) { Pattern nationalNumberRule = - regexCache.getPatternForRegex(metadata.getGeneralDesc().getNationalNumberPattern()); + regexCache.getPatternForRegex(metadata.generalDesc.nationalNumberPattern); // Check if the original number is viable. boolean isViableOriginalNumber = nationalNumberRule.matcher(number).matches(); // prefixMatcher.group(numOfGroups) == null implies nothing was captured by the capturing // groups in possibleNationalPrefix; therefore, no transformation is necessary, and we just // remove the national prefix. int numOfGroups = prefixMatcher.groupCount(); - String transformRule = metadata.getNationalPrefixTransformRule(); + String transformRule = metadata.nationalPrefixTransformRule; if (transformRule == null || transformRule.length() == 0 || prefixMatcher.group(numOfGroups) == null) { // If the original number was viable, and the resultant number is not, we return. @@ -2864,7 +2864,7 @@ public class PhoneNumberUtil { normalize(nationalNumber); normalizedNationalNumber.append(nationalNumber); if (defaultRegion != null) { - countryCode = regionMetadata.getCountryCode(); + countryCode = regionMetadata.countryCode; phoneNumber.setCountryCode(countryCode); } else if (keepRawInput) { phoneNumber.clearCountryCodeSource(); @@ -3138,7 +3138,7 @@ public class PhoneNumberUtil { return true; } String nationalSignificantNumber = getNationalSignificantNumber(number); - return !isNumberMatchingDesc(nationalSignificantNumber, metadata.getNoInternationalDialling()); + return !isNumberMatchingDesc(nationalSignificantNumber, metadata.noInternationalDialling); } /** @@ -3154,6 +3154,6 @@ public class PhoneNumberUtil { logger.log(Level.WARNING, "Invalid or unknown region code provided: " + regionCode); return false; } - return metadata.isMobileNumberPortableRegion(); + return metadata.mobileNumberPortableRegion; } } diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/Phonemetadata.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/Phonemetadata.java index 473a1c1bb..d78433944 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/Phonemetadata.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/Phonemetadata.java @@ -35,26 +35,10 @@ public final class Phonemetadata { public NumberFormat() {} // required string pattern = 1; - private boolean hasPattern; - private String pattern_ = ""; - public boolean hasPattern() { return hasPattern; } - public String getPattern() { return pattern_; } - public NumberFormat setPattern(String value) { - hasPattern = true; - pattern_ = value; - return this; - } + public String pattern = ""; // required string format = 2; - private boolean hasFormat; - private String format_ = ""; - public boolean hasFormat() { return hasFormat; } - public String getFormat() { return format_; } - public NumberFormat setFormat(String value) { - hasFormat = true; - format_ = value; - return this; - } + public String format = ""; // repeated string leading_digits_pattern = 3; private java.util.List leadingDigitsPattern_ = new java.util.ArrayList(); @@ -74,102 +58,69 @@ public final class Phonemetadata { } // optional string national_prefix_formatting_rule = 4; - private boolean hasNationalPrefixFormattingRule; - private String nationalPrefixFormattingRule_ = ""; - public boolean hasNationalPrefixFormattingRule() { return hasNationalPrefixFormattingRule; } - public String getNationalPrefixFormattingRule() { return nationalPrefixFormattingRule_; } - public NumberFormat setNationalPrefixFormattingRule(String value) { - hasNationalPrefixFormattingRule = true; - nationalPrefixFormattingRule_ = value; - return this; - } - public NumberFormat clearNationalPrefixFormattingRule() { - hasNationalPrefixFormattingRule = false; - nationalPrefixFormattingRule_ = ""; - return this; - } + public String nationalPrefixFormattingRule = ""; // optional bool national_prefix_optional_when_formatting = 6; - private boolean hasNationalPrefixOptionalWhenFormatting; - private boolean nationalPrefixOptionalWhenFormatting_ = false; - public boolean hasNationalPrefixOptionalWhenFormatting() { - return hasNationalPrefixOptionalWhenFormatting; } - public boolean isNationalPrefixOptionalWhenFormatting() { - return nationalPrefixOptionalWhenFormatting_; } - public NumberFormat setNationalPrefixOptionalWhenFormatting(boolean value) { - hasNationalPrefixOptionalWhenFormatting = true; - nationalPrefixOptionalWhenFormatting_ = value; - return this; - } + public boolean nationalPrefixOptionalWhenFormatting = false; // optional string domestic_carrier_code_formatting_rule = 5; - private boolean hasDomesticCarrierCodeFormattingRule; - private String domesticCarrierCodeFormattingRule_ = ""; - public boolean hasDomesticCarrierCodeFormattingRule() { - return hasDomesticCarrierCodeFormattingRule; } - public String getDomesticCarrierCodeFormattingRule() { - return domesticCarrierCodeFormattingRule_; } - public NumberFormat setDomesticCarrierCodeFormattingRule(String value) { - hasDomesticCarrierCodeFormattingRule = true; - domesticCarrierCodeFormattingRule_ = value; - return this; - } + public String domesticCarrierCodeFormattingRule = ""; public NumberFormat mergeFrom(NumberFormat other) { - if (other.hasPattern()) { - setPattern(other.getPattern()); + if (other.pattern.length() != 0) { + pattern = other.pattern; } - if (other.hasFormat()) { - setFormat(other.getFormat()); + if (other.format.length() != 0) { + format = other.format; } int leadingDigitsPatternSize = other.leadingDigitsPatternSize(); for (int i = 0; i < leadingDigitsPatternSize; i++) { addLeadingDigitsPattern(other.getLeadingDigitsPattern(i)); } - if (other.hasNationalPrefixFormattingRule()) { - setNationalPrefixFormattingRule(other.getNationalPrefixFormattingRule()); + if (other.nationalPrefixFormattingRule.length() != 0) { + nationalPrefixFormattingRule = other.nationalPrefixFormattingRule; } - if (other.hasDomesticCarrierCodeFormattingRule()) { - setDomesticCarrierCodeFormattingRule(other.getDomesticCarrierCodeFormattingRule()); + if (other.domesticCarrierCodeFormattingRule.length() != 0) { + domesticCarrierCodeFormattingRule = other.domesticCarrierCodeFormattingRule; } - setNationalPrefixOptionalWhenFormatting(other.isNationalPrefixOptionalWhenFormatting()); + nationalPrefixOptionalWhenFormatting = other.nationalPrefixOptionalWhenFormatting; return this; } public void writeExternal(ObjectOutput objectOutput) throws IOException { - objectOutput.writeUTF(pattern_); - objectOutput.writeUTF(format_); + objectOutput.writeUTF(pattern); + objectOutput.writeUTF(format); int leadingDigitsPatternSize = leadingDigitsPatternSize(); objectOutput.writeInt(leadingDigitsPatternSize); for (int i = 0; i < leadingDigitsPatternSize; i++) { objectOutput.writeUTF(leadingDigitsPattern_.get(i)); } - objectOutput.writeBoolean(hasNationalPrefixFormattingRule); - if (hasNationalPrefixFormattingRule) { - objectOutput.writeUTF(nationalPrefixFormattingRule_); + objectOutput.writeBoolean(nationalPrefixFormattingRule.length() != 0); + if (nationalPrefixFormattingRule.length() != 0) { + objectOutput.writeUTF(nationalPrefixFormattingRule); } - objectOutput.writeBoolean(hasDomesticCarrierCodeFormattingRule); - if (hasDomesticCarrierCodeFormattingRule) { - objectOutput.writeUTF(domesticCarrierCodeFormattingRule_); + objectOutput.writeBoolean(domesticCarrierCodeFormattingRule.length() != 0); + if (domesticCarrierCodeFormattingRule.length() != 0) { + objectOutput.writeUTF(domesticCarrierCodeFormattingRule); } - objectOutput.writeBoolean(nationalPrefixOptionalWhenFormatting_); + objectOutput.writeBoolean(nationalPrefixOptionalWhenFormatting); } public void readExternal(ObjectInput objectInput) throws IOException { - setPattern(objectInput.readUTF()); - setFormat(objectInput.readUTF()); + pattern = objectInput.readUTF(); + format = objectInput.readUTF(); int leadingDigitsPatternSize = objectInput.readInt(); for (int i = 0; i < leadingDigitsPatternSize; i++) { leadingDigitsPattern_.add(objectInput.readUTF()); } if (objectInput.readBoolean()) { - setNationalPrefixFormattingRule(objectInput.readUTF()); + nationalPrefixFormattingRule = objectInput.readUTF(); } if (objectInput.readBoolean()) { - setDomesticCarrierCodeFormattingRule(objectInput.readUTF()); + domesticCarrierCodeFormattingRule = objectInput.readUTF(); } - setNationalPrefixOptionalWhenFormatting(objectInput.readBoolean()); + nationalPrefixOptionalWhenFormatting = objectInput.readBoolean(); } } @@ -178,85 +129,61 @@ public final class Phonemetadata { public PhoneNumberDesc() {} // optional string national_number_pattern = 2; - private boolean hasNationalNumberPattern; - private String nationalNumberPattern_ = ""; - public boolean hasNationalNumberPattern() { return hasNationalNumberPattern; } - public String getNationalNumberPattern() { return nationalNumberPattern_; } - public PhoneNumberDesc setNationalNumberPattern(String value) { - hasNationalNumberPattern = true; - nationalNumberPattern_ = value; - return this; - } + public String nationalNumberPattern = ""; // optional string possible_number_pattern = 3; - private boolean hasPossibleNumberPattern; - private String possibleNumberPattern_ = ""; - public boolean hasPossibleNumberPattern() { return hasPossibleNumberPattern; } - public String getPossibleNumberPattern() { return possibleNumberPattern_; } - public PhoneNumberDesc setPossibleNumberPattern(String value) { - hasPossibleNumberPattern = true; - possibleNumberPattern_ = value; - return this; - } + public String possibleNumberPattern = ""; // optional string example_number = 6; - private boolean hasExampleNumber; - private String exampleNumber_ = ""; - public boolean hasExampleNumber() { return hasExampleNumber; } - public String getExampleNumber() { return exampleNumber_; } - public PhoneNumberDesc setExampleNumber(String value) { - hasExampleNumber = true; - exampleNumber_ = value; - return this; - } + public String exampleNumber = ""; public PhoneNumberDesc mergeFrom(PhoneNumberDesc other) { - if (other.hasNationalNumberPattern()) { - setNationalNumberPattern(other.getNationalNumberPattern()); + if (other.nationalNumberPattern.length() != 0) { + nationalNumberPattern = other.nationalNumberPattern; } - if (other.hasPossibleNumberPattern()) { - setPossibleNumberPattern(other.getPossibleNumberPattern()); + if (other.possibleNumberPattern.length() != 0) { + possibleNumberPattern = other.possibleNumberPattern; } - if (other.hasExampleNumber()) { - setExampleNumber(other.getExampleNumber()); + if (other.exampleNumber.length() != 0) { + exampleNumber = other.exampleNumber; } return this; } public boolean exactlySameAs(PhoneNumberDesc other) { - return nationalNumberPattern_.equals(other.nationalNumberPattern_) && - possibleNumberPattern_.equals(other.possibleNumberPattern_) && - exampleNumber_.equals(other.exampleNumber_); + return nationalNumberPattern.equals(other.nationalNumberPattern) && + possibleNumberPattern.equals(other.possibleNumberPattern) && + exampleNumber.equals(other.exampleNumber); } public void writeExternal(ObjectOutput objectOutput) throws IOException { - objectOutput.writeBoolean(hasNationalNumberPattern); - if (hasNationalNumberPattern) { - objectOutput.writeUTF(nationalNumberPattern_); + objectOutput.writeBoolean(nationalNumberPattern.length() != 0); + if (nationalNumberPattern.length() != 0) { + objectOutput.writeUTF(nationalNumberPattern); } - objectOutput.writeBoolean(hasPossibleNumberPattern); - if (hasPossibleNumberPattern) { - objectOutput.writeUTF(possibleNumberPattern_); + objectOutput.writeBoolean(possibleNumberPattern.length() != 0); + if (possibleNumberPattern.length() != 0) { + objectOutput.writeUTF(possibleNumberPattern); } - objectOutput.writeBoolean(hasExampleNumber); - if (hasExampleNumber) { - objectOutput.writeUTF(exampleNumber_); + objectOutput.writeBoolean(exampleNumber.length() != 0); + if (exampleNumber.length() != 0) { + objectOutput.writeUTF(exampleNumber); } } public void readExternal(ObjectInput objectInput) throws IOException { if (objectInput.readBoolean()) { - setNationalNumberPattern(objectInput.readUTF()); + nationalNumberPattern = objectInput.readUTF(); } if (objectInput.readBoolean()) { - setPossibleNumberPattern(objectInput.readUTF()); + possibleNumberPattern = objectInput.readUTF(); } if (objectInput.readBoolean()) { - setExampleNumber(objectInput.readUTF()); + exampleNumber = objectInput.readUTF(); } } } @@ -266,327 +193,79 @@ public final class Phonemetadata { public PhoneMetadata() {} // optional PhoneNumberDesc general_desc = 1; - private boolean hasGeneralDesc; - private PhoneNumberDesc generalDesc_ = null; - public boolean hasGeneralDesc() { return hasGeneralDesc; } - public PhoneNumberDesc getGeneralDesc() { return generalDesc_; } - public PhoneMetadata setGeneralDesc(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasGeneralDesc = true; - generalDesc_ = value; - return this; - } + public PhoneNumberDesc generalDesc = null; // optional PhoneNumberDesc fixed_line = 2; - private boolean hasFixedLine; - private PhoneNumberDesc fixedLine_ = null; - public boolean hasFixedLine() { return hasFixedLine; } - public PhoneNumberDesc getFixedLine() { return fixedLine_; } - public PhoneMetadata setFixedLine(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasFixedLine = true; - fixedLine_ = value; - return this; - } + public PhoneNumberDesc fixedLine = null; // optional PhoneNumberDesc mobile = 3; - private boolean hasMobile; - private PhoneNumberDesc mobile_ = null; - public boolean hasMobile() { return hasMobile; } - public PhoneNumberDesc getMobile() { return mobile_; } - public PhoneMetadata setMobile(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasMobile = true; - mobile_ = value; - return this; - } + public PhoneNumberDesc mobile = null; // optional PhoneNumberDesc toll_free = 4; - private boolean hasTollFree; - private PhoneNumberDesc tollFree_ = null; - public boolean hasTollFree() { return hasTollFree; } - public PhoneNumberDesc getTollFree() { return tollFree_; } - public PhoneMetadata setTollFree(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasTollFree = true; - tollFree_ = value; - return this; - } + public PhoneNumberDesc tollFree = null; // optional PhoneNumberDesc premium_rate = 5; - private boolean hasPremiumRate; - private PhoneNumberDesc premiumRate_ = null; - public boolean hasPremiumRate() { return hasPremiumRate; } - public PhoneNumberDesc getPremiumRate() { return premiumRate_; } - public PhoneMetadata setPremiumRate(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasPremiumRate = true; - premiumRate_ = value; - return this; - } + public PhoneNumberDesc premiumRate = null; // optional PhoneNumberDesc shared_cost = 6; - private boolean hasSharedCost; - private PhoneNumberDesc sharedCost_ = null; - public boolean hasSharedCost() { return hasSharedCost; } - public PhoneNumberDesc getSharedCost() { return sharedCost_; } - public PhoneMetadata setSharedCost(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasSharedCost = true; - sharedCost_ = value; - return this; - } + public PhoneNumberDesc sharedCost = null; // optional PhoneNumberDesc personal_number = 7; - private boolean hasPersonalNumber; - private PhoneNumberDesc personalNumber_ = null; - public boolean hasPersonalNumber() { return hasPersonalNumber; } - public PhoneNumberDesc getPersonalNumber() { return personalNumber_; } - public PhoneMetadata setPersonalNumber(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasPersonalNumber = true; - personalNumber_ = value; - return this; - } + public PhoneNumberDesc personalNumber = null; // optional PhoneNumberDesc voip = 8; - private boolean hasVoip; - private PhoneNumberDesc voip_ = null; - public boolean hasVoip() { return hasVoip; } - public PhoneNumberDesc getVoip() { return voip_; } - public PhoneMetadata setVoip(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasVoip = true; - voip_ = value; - return this; - } + public PhoneNumberDesc voip = null; // optional 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; - } + public PhoneNumberDesc pager = null; // optional PhoneNumberDesc uan = 25; - private boolean hasUan; - private PhoneNumberDesc uan_ = null; - public boolean hasUan() { return hasUan; } - public PhoneNumberDesc getUan() { return uan_; } - public PhoneMetadata setUan(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasUan = true; - uan_ = value; - return this; - } + public PhoneNumberDesc uan = null; // optional PhoneNumberDesc emergency = 27; - private boolean hasEmergency; - private PhoneNumberDesc emergency_ = null; - public boolean hasEmergency() { return hasEmergency; } - public PhoneNumberDesc getEmergency() { return emergency_; } - public PhoneMetadata setEmergency(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasEmergency = true; - emergency_ = value; - return this; - } + public PhoneNumberDesc emergency = null; // optional PhoneNumberDesc voicemail = 28; - private boolean hasVoicemail; - private PhoneNumberDesc voicemail_ = null; - public boolean hasVoicemail() { return hasVoicemail; } - public PhoneNumberDesc getVoicemail() { return voicemail_; } - public PhoneMetadata setVoicemail(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasVoicemail = true; - voicemail_ = value; - return this; - } + public PhoneNumberDesc voicemail = null; // optional PhoneNumberDesc short_code = 29; - private boolean hasShortCode; - private PhoneNumberDesc shortCode_ = null; - public boolean hasShortCode() { return hasShortCode; } - public PhoneNumberDesc getShortCode() { return shortCode_; } - public PhoneMetadata setShortCode(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasShortCode = true; - shortCode_ = value; - return this; - } + public PhoneNumberDesc shortCode = null; // optional PhoneNumberDesc standard_rate = 30; - private boolean hasStandardRate; - private PhoneNumberDesc standardRate_ = null; - public boolean hasStandardRate() { return hasStandardRate; } - public PhoneNumberDesc getStandardRate() { return standardRate_; } - public PhoneMetadata setStandardRate(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasStandardRate = true; - standardRate_ = value; - return this; - } + public PhoneNumberDesc standardRate = null; // optional PhoneNumberDesc carrier_specific = 31; - private boolean hasCarrierSpecific; - private PhoneNumberDesc carrierSpecific_ = null; - public boolean hasCarrierSpecific() { return hasCarrierSpecific; } - public PhoneNumberDesc getCarrierSpecific() { return carrierSpecific_; } - public PhoneMetadata setCarrierSpecific(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasCarrierSpecific = true; - carrierSpecific_ = value; - return this; - } + public PhoneNumberDesc carrierSpecific = null; // optional PhoneNumberDesc noInternationalDialling = 24; - private boolean hasNoInternationalDialling; - private PhoneNumberDesc noInternationalDialling_ = null; - public boolean hasNoInternationalDialling() { return hasNoInternationalDialling; } - public PhoneNumberDesc getNoInternationalDialling() { return noInternationalDialling_; } - public PhoneMetadata setNoInternationalDialling(PhoneNumberDesc value) { - if (value == null) { - throw new NullPointerException(); - } - hasNoInternationalDialling = true; - noInternationalDialling_ = value; - return this; - } + public PhoneNumberDesc noInternationalDialling = null; // required string id = 9; - private boolean hasId; - private String id_ = ""; - public boolean hasId() { return hasId; } - public String getId() { return id_; } - public PhoneMetadata setId(String value) { - hasId = true; - id_ = value; - return this; - } + public String id = ""; // optional int32 country_code = 10; - private boolean hasCountryCode; - private int countryCode_ = 0; - public boolean hasCountryCode() { return hasCountryCode; } - public int getCountryCode() { return countryCode_; } - public PhoneMetadata setCountryCode(int value) { - hasCountryCode = true; - countryCode_ = value; - return this; - } + public int countryCode = 0; // optional string international_prefix = 11; - private boolean hasInternationalPrefix; - private String internationalPrefix_ = ""; - public boolean hasInternationalPrefix() { return hasInternationalPrefix; } - public String getInternationalPrefix() { return internationalPrefix_; } - public PhoneMetadata setInternationalPrefix(String value) { - hasInternationalPrefix = true; - internationalPrefix_ = value; - return this; - } + public String internationalPrefix = ""; // optional string preferred_international_prefix = 17; - private boolean hasPreferredInternationalPrefix; - private String preferredInternationalPrefix_ = ""; - public boolean hasPreferredInternationalPrefix() { return hasPreferredInternationalPrefix; } - public String getPreferredInternationalPrefix() { return preferredInternationalPrefix_; } - public PhoneMetadata setPreferredInternationalPrefix(String value) { - hasPreferredInternationalPrefix = true; - preferredInternationalPrefix_ = value; - return this; - } + public String preferredInternationalPrefix = ""; // optional string national_prefix = 12; - private boolean hasNationalPrefix; - private String nationalPrefix_ = ""; - public boolean hasNationalPrefix() { return hasNationalPrefix; } - public String getNationalPrefix() { return nationalPrefix_; } - public PhoneMetadata setNationalPrefix(String value) { - hasNationalPrefix = true; - nationalPrefix_ = value; - return this; - } + public String nationalPrefix = ""; // optional string preferred_extn_prefix = 13; - private boolean hasPreferredExtnPrefix; - private String preferredExtnPrefix_ = ""; - public boolean hasPreferredExtnPrefix() { return hasPreferredExtnPrefix; } - public String getPreferredExtnPrefix() { return preferredExtnPrefix_; } - public PhoneMetadata setPreferredExtnPrefix(String value) { - hasPreferredExtnPrefix = true; - preferredExtnPrefix_ = value; - return this; - } + public String preferredExtnPrefix = ""; // optional string national_prefix_for_parsing = 15; - private boolean hasNationalPrefixForParsing; - private String nationalPrefixForParsing_ = ""; - public boolean hasNationalPrefixForParsing() { return hasNationalPrefixForParsing; } - public String getNationalPrefixForParsing() { return nationalPrefixForParsing_; } - public PhoneMetadata setNationalPrefixForParsing(String value) { - hasNationalPrefixForParsing = true; - nationalPrefixForParsing_ = value; - return this; - } + public String nationalPrefixForParsing = ""; // optional string national_prefix_transform_rule = 16; - private boolean hasNationalPrefixTransformRule; - private String nationalPrefixTransformRule_ = ""; - public boolean hasNationalPrefixTransformRule() { return hasNationalPrefixTransformRule; } - public String getNationalPrefixTransformRule() { return nationalPrefixTransformRule_; } - public PhoneMetadata setNationalPrefixTransformRule(String value) { - hasNationalPrefixTransformRule = true; - nationalPrefixTransformRule_ = value; - return this; - } + public String nationalPrefixTransformRule = ""; // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false]; - private boolean hasSameMobileAndFixedLinePattern; - private boolean sameMobileAndFixedLinePattern_ = false; - public boolean hasSameMobileAndFixedLinePattern() { return hasSameMobileAndFixedLinePattern; } - public boolean isSameMobileAndFixedLinePattern() { return sameMobileAndFixedLinePattern_; } - public PhoneMetadata setSameMobileAndFixedLinePattern(boolean value) { - hasSameMobileAndFixedLinePattern = true; - sameMobileAndFixedLinePattern_ = value; - return this; - } + public boolean sameMobileAndFixedLinePattern = false; // repeated NumberFormat number_format = 19; private java.util.List numberFormat_ = new java.util.ArrayList(); @@ -629,148 +308,113 @@ public final class Phonemetadata { } // optional bool main_country_for_code = 22 [default = false]; - private boolean hasMainCountryForCode; - private boolean mainCountryForCode_ = false; - public boolean hasMainCountryForCode() { return hasMainCountryForCode; } - public boolean isMainCountryForCode() { return mainCountryForCode_; } - // Method that lets this class have the same interface as the one generated by Protocol Buffers - // which is used by C++ build tools. - public boolean getMainCountryForCode() { return mainCountryForCode_; } - public PhoneMetadata setMainCountryForCode(boolean value) { - hasMainCountryForCode = true; - mainCountryForCode_ = value; - return this; - } + public boolean mainCountryForCode = false; // optional string leading_digits = 23; - private boolean hasLeadingDigits; - private String leadingDigits_ = ""; - public boolean hasLeadingDigits() { return hasLeadingDigits; } - public String getLeadingDigits() { return leadingDigits_; } - public PhoneMetadata setLeadingDigits(String value) { - hasLeadingDigits = true; - leadingDigits_ = value; - return this; - } + public String leadingDigits = ""; // optional bool leading_zero_possible = 26 [default = false]; - private boolean hasLeadingZeroPossible; - private boolean leadingZeroPossible_ = false; - public boolean hasLeadingZeroPossible() { return hasLeadingZeroPossible; } - public boolean isLeadingZeroPossible() { return leadingZeroPossible_; } - public PhoneMetadata setLeadingZeroPossible(boolean value) { - hasLeadingZeroPossible = true; - leadingZeroPossible_ = value; - return this; - } + public boolean leadingZeroPossible = false; // optional bool mobile_number_portable_region = 32 [default = false]; - private boolean hasMobileNumberPortableRegion; - private boolean mobileNumberPortableRegion_ = false; - public boolean hasMobileNumberPortableRegion() { return hasMobileNumberPortableRegion; } - public boolean isMobileNumberPortableRegion() { return mobileNumberPortableRegion_; } - public PhoneMetadata setMobileNumberPortableRegion(boolean value) { - hasMobileNumberPortableRegion = true; - mobileNumberPortableRegion_ = value; - return this; - } + public boolean mobileNumberPortableRegion = false; public void writeExternal(ObjectOutput objectOutput) throws IOException { - objectOutput.writeBoolean(hasGeneralDesc); - if (hasGeneralDesc) { - generalDesc_.writeExternal(objectOutput); + objectOutput.writeBoolean(generalDesc != null); + if (generalDesc != null) { + generalDesc.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasFixedLine); - if (hasFixedLine) { - fixedLine_.writeExternal(objectOutput); + objectOutput.writeBoolean(fixedLine != null); + if (fixedLine != null) { + fixedLine.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasMobile); - if (hasMobile) { - mobile_.writeExternal(objectOutput); + objectOutput.writeBoolean(mobile != null); + if (mobile != null) { + mobile.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasTollFree); - if (hasTollFree) { - tollFree_.writeExternal(objectOutput); + objectOutput.writeBoolean(tollFree != null); + if (tollFree != null) { + tollFree.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasPremiumRate); - if (hasPremiumRate) { - premiumRate_.writeExternal(objectOutput); + objectOutput.writeBoolean(premiumRate != null); + if (premiumRate != null) { + premiumRate.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasSharedCost); - if (hasSharedCost) { - sharedCost_.writeExternal(objectOutput); + objectOutput.writeBoolean(sharedCost != null); + if (sharedCost != null) { + sharedCost.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasPersonalNumber); - if (hasPersonalNumber) { - personalNumber_.writeExternal(objectOutput); + objectOutput.writeBoolean(personalNumber != null); + if (personalNumber != null) { + personalNumber.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasVoip); - if (hasVoip) { - voip_.writeExternal(objectOutput); + objectOutput.writeBoolean(voip != null); + if (voip != null) { + voip.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasPager); - if (hasPager) { - pager_.writeExternal(objectOutput); + objectOutput.writeBoolean(pager != null); + if (pager != null) { + pager.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasUan); - if (hasUan) { - uan_.writeExternal(objectOutput); + objectOutput.writeBoolean(uan != null); + if (uan != null) { + uan.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasEmergency); - if (hasEmergency) { - emergency_.writeExternal(objectOutput); + objectOutput.writeBoolean(emergency != null); + if (emergency != null) { + emergency.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasVoicemail); - if (hasVoicemail) { - voicemail_.writeExternal(objectOutput); + objectOutput.writeBoolean(voicemail != null); + if (voicemail != null) { + voicemail.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasShortCode); - if (hasShortCode) { - shortCode_.writeExternal(objectOutput); + objectOutput.writeBoolean(shortCode != null); + if (shortCode != null) { + shortCode.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasStandardRate); - if (hasStandardRate) { - standardRate_.writeExternal(objectOutput); + objectOutput.writeBoolean(standardRate != null); + if (standardRate != null) { + standardRate.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasCarrierSpecific); - if (hasCarrierSpecific) { - carrierSpecific_.writeExternal(objectOutput); + objectOutput.writeBoolean(carrierSpecific != null); + if (carrierSpecific != null) { + carrierSpecific.writeExternal(objectOutput); } - objectOutput.writeBoolean(hasNoInternationalDialling); - if (hasNoInternationalDialling) { - noInternationalDialling_.writeExternal(objectOutput); + objectOutput.writeBoolean(noInternationalDialling != null); + if (noInternationalDialling != null) { + noInternationalDialling.writeExternal(objectOutput); } - objectOutput.writeUTF(id_); - objectOutput.writeInt(countryCode_); - objectOutput.writeUTF(internationalPrefix_); + objectOutput.writeUTF(id); + objectOutput.writeInt(countryCode); + objectOutput.writeUTF(internationalPrefix); - objectOutput.writeBoolean(hasPreferredInternationalPrefix); - if (hasPreferredInternationalPrefix) { - objectOutput.writeUTF(preferredInternationalPrefix_); + objectOutput.writeBoolean(preferredInternationalPrefix.length() != 0); + if (preferredInternationalPrefix.length() != 0) { + objectOutput.writeUTF(preferredInternationalPrefix); } - objectOutput.writeBoolean(hasNationalPrefix); - if (hasNationalPrefix) { - objectOutput.writeUTF(nationalPrefix_); + objectOutput.writeBoolean(nationalPrefix.length() != 0); + if (nationalPrefix.length() != 0) { + objectOutput.writeUTF(nationalPrefix); } - objectOutput.writeBoolean(hasPreferredExtnPrefix); - if (hasPreferredExtnPrefix) { - objectOutput.writeUTF(preferredExtnPrefix_); + objectOutput.writeBoolean(preferredExtnPrefix.length() != 0); + if (preferredExtnPrefix.length() != 0) { + objectOutput.writeUTF(preferredExtnPrefix); } - objectOutput.writeBoolean(hasNationalPrefixForParsing); - if (hasNationalPrefixForParsing) { - objectOutput.writeUTF(nationalPrefixForParsing_); + objectOutput.writeBoolean(nationalPrefixForParsing.length() != 0); + if (nationalPrefixForParsing.length() != 0) { + objectOutput.writeUTF(nationalPrefixForParsing); } - objectOutput.writeBoolean(hasNationalPrefixTransformRule); - if (hasNationalPrefixTransformRule) { - objectOutput.writeUTF(nationalPrefixTransformRule_); + objectOutput.writeBoolean(nationalPrefixTransformRule.length() != 0); + if (nationalPrefixTransformRule.length() != 0) { + objectOutput.writeUTF(nationalPrefixTransformRule); } - objectOutput.writeBoolean(sameMobileAndFixedLinePattern_); + objectOutput.writeBoolean(sameMobileAndFixedLinePattern); int numberFormatSize = numberFormatSize(); objectOutput.writeInt(numberFormatSize); @@ -784,16 +428,16 @@ public final class Phonemetadata { intlNumberFormat_.get(i).writeExternal(objectOutput); } - objectOutput.writeBoolean(mainCountryForCode_); + objectOutput.writeBoolean(mainCountryForCode); - objectOutput.writeBoolean(hasLeadingDigits); - if (hasLeadingDigits) { - objectOutput.writeUTF(leadingDigits_); + objectOutput.writeBoolean(leadingDigits.length() != 0); + if (leadingDigits.length() != 3) { + objectOutput.writeUTF(leadingDigits); } - objectOutput.writeBoolean(leadingZeroPossible_); + objectOutput.writeBoolean(leadingZeroPossible); - objectOutput.writeBoolean(mobileNumberPortableRegion_); + objectOutput.writeBoolean(mobileNumberPortableRegion); } public void readExternal(ObjectInput objectInput) throws IOException { @@ -801,129 +445,129 @@ public final class Phonemetadata { if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setGeneralDesc(desc); + generalDesc = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setFixedLine(desc); + fixedLine = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setMobile(desc); + mobile = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setTollFree(desc); + tollFree = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setPremiumRate(desc); + premiumRate = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setSharedCost(desc); + sharedCost = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setPersonalNumber(desc); + personalNumber = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setVoip(desc); + voip = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setPager(desc); + pager = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setUan(desc); + uan = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setEmergency(desc); + emergency = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setVoicemail(desc); + voicemail = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setShortCode(desc); + shortCode = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setStandardRate(desc); + standardRate = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setCarrierSpecific(desc); + carrierSpecific = desc; } hasDesc = objectInput.readBoolean(); if (hasDesc) { PhoneNumberDesc desc = new PhoneNumberDesc(); desc.readExternal(objectInput); - setNoInternationalDialling(desc); + noInternationalDialling = desc; } - setId(objectInput.readUTF()); - setCountryCode(objectInput.readInt()); - setInternationalPrefix(objectInput.readUTF()); + id = objectInput.readUTF(); + countryCode = objectInput.readInt(); + internationalPrefix = objectInput.readUTF(); boolean hasString = objectInput.readBoolean(); if (hasString) { - setPreferredInternationalPrefix(objectInput.readUTF()); + preferredInternationalPrefix = objectInput.readUTF(); } hasString = objectInput.readBoolean(); if (hasString) { - setNationalPrefix(objectInput.readUTF()); + nationalPrefix = objectInput.readUTF(); } hasString = objectInput.readBoolean(); if (hasString) { - setPreferredExtnPrefix(objectInput.readUTF()); + preferredExtnPrefix = objectInput.readUTF(); } hasString = objectInput.readBoolean(); if (hasString) { - setNationalPrefixForParsing(objectInput.readUTF()); + nationalPrefixForParsing = objectInput.readUTF(); } hasString = objectInput.readBoolean(); if (hasString) { - setNationalPrefixTransformRule(objectInput.readUTF()); + nationalPrefixTransformRule = objectInput.readUTF(); } - setSameMobileAndFixedLinePattern(objectInput.readBoolean()); + sameMobileAndFixedLinePattern = objectInput.readBoolean(); int nationalFormatSize = objectInput.readInt(); for (int i = 0; i < nationalFormatSize; i++) { @@ -939,16 +583,16 @@ public final class Phonemetadata { intlNumberFormat_.add(numFormat); } - setMainCountryForCode(objectInput.readBoolean()); + mainCountryForCode = objectInput.readBoolean(); hasString = objectInput.readBoolean(); if (hasString) { - setLeadingDigits(objectInput.readUTF()); + leadingDigits = objectInput.readUTF(); } - setLeadingZeroPossible(objectInput.readBoolean()); + leadingZeroPossible = objectInput.readBoolean(); - setMobileNumberPortableRegion(objectInput.readBoolean()); + mobileNumberPortableRegion = objectInput.readBoolean(); } } diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumberInfo.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumberInfo.java index c0d01b4e1..3ca42c575 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumberInfo.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumberInfo.java @@ -31,7 +31,6 @@ import java.util.Map; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.regex.Pattern; /** * Methods for getting information about short phone numbers, such as short codes and emergency @@ -131,7 +130,7 @@ public class ShortNumberInfo { if (phoneMetadata == null) { return false; } - return matcherApi.matchesPossibleNumber(shortNumber, phoneMetadata.getGeneralDesc()); + return matcherApi.matchesPossibleNumber(shortNumber, phoneMetadata.generalDesc); } /** @@ -152,7 +151,7 @@ public class ShortNumberInfo { return false; } return matcherApi.matchesPossibleNumber(getNationalSignificantNumber(number), - phoneMetadata.getGeneralDesc()); + phoneMetadata.generalDesc); } /** @@ -172,7 +171,7 @@ public class ShortNumberInfo { if (phoneMetadata == null) { continue; } - if (matcherApi.matchesPossibleNumber(shortNumber, phoneMetadata.getGeneralDesc())) { + if (matcherApi.matchesPossibleNumber(shortNumber, phoneMetadata.generalDesc)) { return true; } } @@ -200,11 +199,11 @@ public class ShortNumberInfo { if (phoneMetadata == null) { return false; } - PhoneNumberDesc generalDesc = phoneMetadata.getGeneralDesc(); + PhoneNumberDesc generalDesc = phoneMetadata.generalDesc; if (!matchesPossibleNumberAndNationalNumber(shortNumber, generalDesc)) { return false; } - PhoneNumberDesc shortNumberDesc = phoneMetadata.getShortCode(); + PhoneNumberDesc shortNumberDesc = phoneMetadata.shortCode; return matchesPossibleNumberAndNationalNumber(shortNumber, shortNumberDesc); } @@ -227,11 +226,11 @@ public class ShortNumberInfo { return false; } String shortNumber = getNationalSignificantNumber(number); - PhoneNumberDesc generalDesc = phoneMetadata.getGeneralDesc(); + PhoneNumberDesc generalDesc = phoneMetadata.generalDesc; if (!matchesPossibleNumberAndNationalNumber(shortNumber, generalDesc)) { return false; } - PhoneNumberDesc shortNumberDesc = phoneMetadata.getShortCode(); + PhoneNumberDesc shortNumberDesc = phoneMetadata.shortCode; return matchesPossibleNumberAndNationalNumber(shortNumber, shortNumberDesc); } @@ -293,13 +292,13 @@ public class ShortNumberInfo { // The cost categories are tested in order of decreasing expense, since if for some reason the // patterns overlap the most expensive matching cost category should be returned. - if (matchesPossibleNumberAndNationalNumber(shortNumber, phoneMetadata.getPremiumRate())) { + if (matchesPossibleNumberAndNationalNumber(shortNumber, phoneMetadata.premiumRate)) { return ShortNumberCost.PREMIUM_RATE; } - if (matchesPossibleNumberAndNationalNumber(shortNumber, phoneMetadata.getStandardRate())) { + if (matchesPossibleNumberAndNationalNumber(shortNumber, phoneMetadata.standardRate)) { return ShortNumberCost.STANDARD_RATE; } - if (matchesPossibleNumberAndNationalNumber(shortNumber, phoneMetadata.getTollFree())) { + if (matchesPossibleNumberAndNationalNumber(shortNumber, phoneMetadata.tollFree)) { return ShortNumberCost.TOLL_FREE; } if (isEmergencyNumber(shortNumber, regionDialingFrom)) { @@ -347,13 +346,13 @@ public class ShortNumberInfo { // The cost categories are tested in order of decreasing expense, since if for some reason the // patterns overlap the most expensive matching cost category should be returned. - if (matchesPossibleNumberAndNationalNumber(shortNumber, phoneMetadata.getPremiumRate())) { + if (matchesPossibleNumberAndNationalNumber(shortNumber, phoneMetadata.premiumRate)) { return ShortNumberCost.PREMIUM_RATE; } - if (matchesPossibleNumberAndNationalNumber(shortNumber, phoneMetadata.getStandardRate())) { + if (matchesPossibleNumberAndNationalNumber(shortNumber, phoneMetadata.standardRate)) { return ShortNumberCost.STANDARD_RATE; } - if (matchesPossibleNumberAndNationalNumber(shortNumber, phoneMetadata.getTollFree())) { + if (matchesPossibleNumberAndNationalNumber(shortNumber, phoneMetadata.tollFree)) { return ShortNumberCost.TOLL_FREE; } if (isEmergencyNumber(shortNumber, regionDialingFrom)) { @@ -430,7 +429,7 @@ public class ShortNumberInfo { for (String regionCode : regionCodes) { PhoneMetadata phoneMetadata = MetadataManager.getShortNumberMetadataForRegion(regionCode); if (phoneMetadata != null - && matchesPossibleNumberAndNationalNumber(nationalNumber, phoneMetadata.getShortCode())) { + && matchesPossibleNumberAndNationalNumber(nationalNumber, phoneMetadata.shortCode)) { // The number is valid for this region. return regionCode; } @@ -458,9 +457,9 @@ public class ShortNumberInfo { if (phoneMetadata == null) { return ""; } - PhoneNumberDesc desc = phoneMetadata.getShortCode(); - if (desc.hasExampleNumber()) { - return desc.getExampleNumber(); + PhoneNumberDesc desc = phoneMetadata.shortCode; + if (!desc.exampleNumber.equals("")) { + return desc.exampleNumber; } return ""; } @@ -482,20 +481,20 @@ public class ShortNumberInfo { PhoneNumberDesc desc = null; switch (cost) { case TOLL_FREE: - desc = phoneMetadata.getTollFree(); + desc = phoneMetadata.tollFree; break; case STANDARD_RATE: - desc = phoneMetadata.getStandardRate(); + desc = phoneMetadata.standardRate; break; case PREMIUM_RATE: - desc = phoneMetadata.getPremiumRate(); + desc = phoneMetadata.premiumRate; break; default: // UNKNOWN_COST numbers are computed by the process of elimination from the other cost // categories. } - if (desc != null && desc.hasExampleNumber()) { - return desc.getExampleNumber(); + if (desc != null && !desc.exampleNumber.equals("")) { + return desc.exampleNumber; } return ""; } @@ -544,12 +543,12 @@ public class ShortNumberInfo { return false; } PhoneMetadata metadata = MetadataManager.getShortNumberMetadataForRegion(regionCode); - if (metadata == null || !metadata.hasEmergency()) { + if (metadata == null || metadata.emergency == null) { return false; } String normalizedNumber = PhoneNumberUtil.normalizeDigitsOnly(number); - PhoneNumberDesc emergencyDesc = metadata.getEmergency(); + PhoneNumberDesc emergencyDesc = metadata.emergency; boolean allowPrefixMatchForRegion = allowPrefixMatch && !REGIONS_WHERE_EMERGENCY_NUMBERS_MUST_BE_EXACT.contains(regionCode); return matcherApi.matchesNationalNumber(normalizedNumber, emergencyDesc, @@ -573,7 +572,7 @@ public class ShortNumberInfo { PhoneMetadata phoneMetadata = MetadataManager.getShortNumberMetadataForRegion(regionCode); return (phoneMetadata != null) && (matchesPossibleNumberAndNationalNumber(nationalNumber, - phoneMetadata.getCarrierSpecific())); + phoneMetadata.carrierSpecific)); } /** diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/SingleFileMetadataSourceImpl.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/SingleFileMetadataSourceImpl.java index 82297153c..ea44c98b8 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/SingleFileMetadataSourceImpl.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/SingleFileMetadataSourceImpl.java @@ -110,8 +110,8 @@ final class SingleFileMetadataSourceImpl implements MetadataSource { throw new IllegalStateException("empty metadata: " + fileName); } for (PhoneMetadata metadata : metadataList) { - String regionCode = metadata.getId(); - int countryCallingCode = metadata.getCountryCode(); + String regionCode = metadata.id; + int countryCallingCode = metadata.countryCode; boolean isNonGeoRegion = PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY.equals(regionCode); if (isNonGeoRegion) { countryCodeToNonGeographicalMetadataMap.put(countryCallingCode, metadata); diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/internal/RegexBasedMatcher.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/internal/RegexBasedMatcher.java index 125a1822a..1ada3014f 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/internal/RegexBasedMatcher.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/internal/RegexBasedMatcher.java @@ -38,7 +38,7 @@ public final class RegexBasedMatcher implements MatcherApi { public boolean matchesNationalNumber(String nationalNumber, PhoneNumberDesc numberDesc, boolean allowPrefixMatch) { Matcher nationalNumberPatternMatcher = regexCache.getPatternForRegex( - numberDesc.getNationalNumberPattern()).matcher(nationalNumber); + numberDesc.nationalNumberPattern).matcher(nationalNumber); return nationalNumberPatternMatcher.matches() || (allowPrefixMatch && nationalNumberPatternMatcher.lookingAt()); } @@ -46,7 +46,7 @@ public final class RegexBasedMatcher implements MatcherApi { // @Override public boolean matchesPossibleNumber(String nationalNumber, PhoneNumberDesc numberDesc) { Matcher possibleNumberPatternMatcher = regexCache.getPatternForRegex( - numberDesc.getPossibleNumberPattern()).matcher(nationalNumber); + numberDesc.possibleNumberPattern).matcher(nationalNumber); return possibleNumberPatternMatcher.matches(); } } diff --git a/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java b/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java index b276eb9cf..f6c78c30e 100644 --- a/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java +++ b/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java @@ -142,10 +142,10 @@ public class ExampleNumbersTest extends TestCase { for (String regionCode : phoneNumberUtil.getSupportedRegions()) { PhoneNumber exampleNumber = null; PhoneNumberDesc desc = - phoneNumberUtil.getMetadataForRegion(regionCode).getNoInternationalDialling(); + phoneNumberUtil.getMetadataForRegion(regionCode).noInternationalDialling; try { - if (desc.hasExampleNumber()) { - exampleNumber = phoneNumberUtil.parse(desc.getExampleNumber(), regionCode); + if (desc.exampleNumber.length() != 0) { + exampleNumber = phoneNumberUtil.parse(desc.exampleNumber, regionCode); } } catch (NumberParseException e) { LOGGER.log(Level.SEVERE, e.toString()); @@ -216,9 +216,9 @@ public class ExampleNumbersTest extends TestCase { int wrongTypeCounter = 0; for (String regionCode : shortNumberInfo.getSupportedRegions()) { PhoneNumberDesc desc = - MetadataManager.getShortNumberMetadataForRegion(regionCode).getEmergency(); - if (desc.hasExampleNumber()) { - String exampleNumber = desc.getExampleNumber(); + MetadataManager.getShortNumberMetadataForRegion(regionCode).emergency; + if (desc.exampleNumber.length() != 0) { + String exampleNumber = desc.exampleNumber; PhoneNumber phoneNumber = phoneNumberUtil.parse(exampleNumber, regionCode); if (!shortNumberInfo.isPossibleShortNumberForRegion(phoneNumber, regionCode) || !shortNumberInfo.isEmergencyNumber(exampleNumber, regionCode)) { @@ -239,9 +239,9 @@ public class ExampleNumbersTest extends TestCase { for (String regionCode : shortNumberInfo.getSupportedRegions()) { // Test the carrier-specific tag. PhoneNumberDesc desc = - MetadataManager.getShortNumberMetadataForRegion(regionCode).getCarrierSpecific(); - if (desc.hasExampleNumber()) { - String exampleNumber = desc.getExampleNumber(); + MetadataManager.getShortNumberMetadataForRegion(regionCode).carrierSpecific; + if (desc.exampleNumber.length() != 0) { + String exampleNumber = desc.exampleNumber; PhoneNumber carrierSpecificNumber = phoneNumberUtil.parse(exampleNumber, regionCode); if (!shortNumberInfo.isPossibleShortNumberForRegion(carrierSpecificNumber, regionCode) || !shortNumberInfo.isCarrierSpecific(carrierSpecificNumber)) { diff --git a/java/libphonenumber/test/com/google/i18n/phonenumbers/MetadataManagerTest.java b/java/libphonenumber/test/com/google/i18n/phonenumbers/MetadataManagerTest.java index 229d8f7d1..8ce8d0a0e 100644 --- a/java/libphonenumber/test/com/google/i18n/phonenumbers/MetadataManagerTest.java +++ b/java/libphonenumber/test/com/google/i18n/phonenumbers/MetadataManagerTest.java @@ -36,7 +36,7 @@ public class MetadataManagerTest extends TestCase { // We should have some data for France. PhoneMetadata franceShortNumberMetadata = MetadataManager.getShortNumberMetadataForRegion("FR"); assertNotNull(franceShortNumberMetadata); - assertTrue(franceShortNumberMetadata.hasShortCode()); + assertTrue(franceShortNumberMetadata.shortCode != null); } 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 725a5904c..23d6de8c1 100644 --- a/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java +++ b/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java @@ -134,69 +134,69 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { public void testGetInstanceLoadUSMetadata() { PhoneMetadata metadata = phoneUtil.getMetadataForRegion(RegionCode.US); - assertEquals("US", metadata.getId()); - assertEquals(1, metadata.getCountryCode()); - assertEquals("011", metadata.getInternationalPrefix()); - assertTrue(metadata.hasNationalPrefix()); + assertEquals("US", metadata.id); + assertEquals(1, metadata.countryCode); + assertEquals("011", metadata.internationalPrefix); + assertTrue(metadata.nationalPrefix.length() != 0); assertEquals(2, metadata.numberFormatSize()); assertEquals("(\\d{3})(\\d{3})(\\d{4})", - metadata.getNumberFormat(1).getPattern()); - assertEquals("$1 $2 $3", metadata.getNumberFormat(1).getFormat()); + metadata.getNumberFormat(1).pattern); + assertEquals("$1 $2 $3", metadata.getNumberFormat(1).format); assertEquals("[13-689]\\d{9}|2[0-35-9]\\d{8}", - metadata.getGeneralDesc().getNationalNumberPattern()); - assertEquals("\\d{7}(?:\\d{3})?", metadata.getGeneralDesc().getPossibleNumberPattern()); - assertTrue(metadata.getGeneralDesc().exactlySameAs(metadata.getFixedLine())); - assertEquals("\\d{10}", metadata.getTollFree().getPossibleNumberPattern()); - assertEquals("900\\d{7}", metadata.getPremiumRate().getNationalNumberPattern()); + metadata.generalDesc.nationalNumberPattern); + assertEquals("\\d{7}(?:\\d{3})?", metadata.generalDesc.possibleNumberPattern); + assertTrue(metadata.generalDesc.exactlySameAs(metadata.fixedLine)); + assertEquals("\\d{10}", metadata.tollFree.possibleNumberPattern); + assertEquals("900\\d{7}", metadata.premiumRate.nationalNumberPattern); // No shared-cost data is available, so it should be initialised to "NA". - assertEquals("NA", metadata.getSharedCost().getNationalNumberPattern()); - assertEquals("NA", metadata.getSharedCost().getPossibleNumberPattern()); + assertEquals("NA", metadata.sharedCost.nationalNumberPattern); + assertEquals("NA", metadata.sharedCost.possibleNumberPattern); } public void testGetInstanceLoadDEMetadata() { PhoneMetadata metadata = phoneUtil.getMetadataForRegion(RegionCode.DE); - assertEquals("DE", metadata.getId()); - assertEquals(49, metadata.getCountryCode()); - assertEquals("00", metadata.getInternationalPrefix()); - assertEquals("0", metadata.getNationalPrefix()); + assertEquals("DE", metadata.id); + assertEquals(49, metadata.countryCode); + assertEquals("00", metadata.internationalPrefix); + assertEquals("0", metadata.nationalPrefix); assertEquals(6, metadata.numberFormatSize()); assertEquals(1, metadata.getNumberFormat(5).leadingDigitsPatternSize()); assertEquals("900", metadata.getNumberFormat(5).getLeadingDigitsPattern(0)); assertEquals("(\\d{3})(\\d{3,4})(\\d{4})", - metadata.getNumberFormat(5).getPattern()); - assertEquals("$1 $2 $3", metadata.getNumberFormat(5).getFormat()); + metadata.getNumberFormat(5).pattern); + assertEquals("$1 $2 $3", metadata.getNumberFormat(5).format); assertEquals("(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:[1-9]\\d|0[2-9]))\\d{1,8}", - metadata.getFixedLine().getNationalNumberPattern()); - assertEquals("\\d{2,14}", metadata.getFixedLine().getPossibleNumberPattern()); - assertEquals("30123456", metadata.getFixedLine().getExampleNumber()); - assertEquals("\\d{10}", metadata.getTollFree().getPossibleNumberPattern()); - assertEquals("900([135]\\d{6}|9\\d{7})", metadata.getPremiumRate().getNationalNumberPattern()); + metadata.fixedLine.nationalNumberPattern); + assertEquals("\\d{2,14}", metadata.fixedLine.possibleNumberPattern); + assertEquals("30123456", metadata.fixedLine.exampleNumber); + assertEquals("\\d{10}", metadata.tollFree.possibleNumberPattern); + assertEquals("900([135]\\d{6}|9\\d{7})", metadata.premiumRate.nationalNumberPattern); } public void testGetInstanceLoadARMetadata() { PhoneMetadata metadata = phoneUtil.getMetadataForRegion(RegionCode.AR); - assertEquals("AR", metadata.getId()); - assertEquals(54, metadata.getCountryCode()); - assertEquals("00", metadata.getInternationalPrefix()); - assertEquals("0", metadata.getNationalPrefix()); - assertEquals("0(?:(11|343|3715)15)?", metadata.getNationalPrefixForParsing()); - assertEquals("9$1", metadata.getNationalPrefixTransformRule()); - assertEquals("$2 15 $3-$4", metadata.getNumberFormat(2).getFormat()); + assertEquals("AR", metadata.id); + assertEquals(54, metadata.countryCode); + assertEquals("00", metadata.internationalPrefix); + assertEquals("0", metadata.nationalPrefix); + assertEquals("0(?:(11|343|3715)15)?", metadata.nationalPrefixForParsing); + assertEquals("9$1", metadata.nationalPrefixTransformRule); + assertEquals("$2 15 $3-$4", metadata.getNumberFormat(2).format); assertEquals("(9)(\\d{4})(\\d{2})(\\d{4})", - metadata.getNumberFormat(3).getPattern()); + metadata.getNumberFormat(3).pattern); assertEquals("(9)(\\d{4})(\\d{2})(\\d{4})", - metadata.getIntlNumberFormat(3).getPattern()); - assertEquals("$1 $2 $3 $4", metadata.getIntlNumberFormat(3).getFormat()); + metadata.getIntlNumberFormat(3).pattern); + assertEquals("$1 $2 $3 $4", metadata.getIntlNumberFormat(3).format); } public void testGetInstanceLoadInternationalTollFreeMetadata() { PhoneMetadata metadata = phoneUtil.getMetadataForNonGeographicalRegion(800); - assertEquals("001", metadata.getId()); - assertEquals(800, metadata.getCountryCode()); - assertEquals("$1 $2", metadata.getNumberFormat(0).getFormat()); - assertEquals("(\\d{4})(\\d{4})", metadata.getNumberFormat(0).getPattern()); - assertEquals("12345678", metadata.getGeneralDesc().getExampleNumber()); - assertEquals("12345678", metadata.getTollFree().getExampleNumber()); + assertEquals("001", metadata.id); + assertEquals(800, metadata.countryCode); + assertEquals("$1 $2", metadata.getNumberFormat(0).format); + assertEquals("(\\d{4})(\\d{4})", metadata.getNumberFormat(0).pattern); + assertEquals("12345678", metadata.generalDesc.exampleNumber); + assertEquals("12345678", metadata.tollFree.exampleNumber); } public void testIsNumberGeographical() { @@ -809,8 +809,8 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { public void testFormatByPattern() { NumberFormat newNumFormat = new NumberFormat(); - newNumFormat.setPattern("(\\d{3})(\\d{3})(\\d{4})"); - newNumFormat.setFormat("($1) $2-$3"); + newNumFormat.pattern = "(\\d{3})(\\d{3})(\\d{4})"; + newNumFormat.format = "($1) $2-$3"; List newNumberFormats = new ArrayList(); newNumberFormats.add(newNumFormat); @@ -825,8 +825,8 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { // $NP is set to '1' for the US. Here we check that for other NANPA countries the US rules are // followed. - newNumFormat.setNationalPrefixFormattingRule("$NP ($FG)"); - newNumFormat.setFormat("$1 $2-$3"); + newNumFormat.nationalPrefixFormattingRule = "$NP ($FG)"; + newNumFormat.format = "$1 $2-$3"; assertEquals("1 (242) 365-1234", phoneUtil.formatByPattern(BS_NUMBER, PhoneNumberFormat.NATIONAL, newNumberFormats)); @@ -834,8 +834,8 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { phoneUtil.formatByPattern(BS_NUMBER, PhoneNumberFormat.INTERNATIONAL, newNumberFormats)); - newNumFormat.setPattern("(\\d{2})(\\d{5})(\\d{3})"); - newNumFormat.setFormat("$1-$2 $3"); + newNumFormat.pattern = "(\\d{2})(\\d{5})(\\d{3})"; + newNumFormat.format = "$1-$2 $3"; newNumberFormats.set(0, newNumFormat); assertEquals("02-36618 300", @@ -845,20 +845,20 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { phoneUtil.formatByPattern(IT_NUMBER, PhoneNumberFormat.INTERNATIONAL, newNumberFormats)); - newNumFormat.setNationalPrefixFormattingRule("$NP$FG"); - newNumFormat.setPattern("(\\d{2})(\\d{4})(\\d{4})"); - newNumFormat.setFormat("$1 $2 $3"); + newNumFormat.nationalPrefixFormattingRule = "$NP$FG"; + newNumFormat.pattern = "(\\d{2})(\\d{4})(\\d{4})"; + newNumFormat.format = "$1 $2 $3"; newNumberFormats.set(0, newNumFormat); assertEquals("020 7031 3000", phoneUtil.formatByPattern(GB_NUMBER, PhoneNumberFormat.NATIONAL, newNumberFormats)); - newNumFormat.setNationalPrefixFormattingRule("($NP$FG)"); + newNumFormat.nationalPrefixFormattingRule = "($NP$FG)"; assertEquals("(020) 7031 3000", phoneUtil.formatByPattern(GB_NUMBER, PhoneNumberFormat.NATIONAL, newNumberFormats)); - newNumFormat.setNationalPrefixFormattingRule(""); + newNumFormat.nationalPrefixFormattingRule = ""; assertEquals("20 7031 3000", phoneUtil.formatByPattern(GB_NUMBER, PhoneNumberFormat.NATIONAL, newNumberFormats)); @@ -1431,8 +1431,9 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { public void testMaybeStripNationalPrefix() { PhoneMetadata metadata = new PhoneMetadata(); - metadata.setNationalPrefixForParsing("34"); - metadata.setGeneralDesc(new PhoneNumberDesc().setNationalNumberPattern("\\d{4,8}")); + metadata.nationalPrefixForParsing = "34"; + metadata.generalDesc = new PhoneNumberDesc(); + metadata.generalDesc.nationalNumberPattern = "\\d{4,8}"; StringBuilder numberToStrip = new StringBuilder("34356778"); String strippedNumber = "356778"; assertTrue(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, null)); @@ -1444,12 +1445,12 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { 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(""); + metadata.nationalPrefixForParsing = ""; assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, 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"); + metadata.nationalPrefixForParsing = "3"; numberToStrip = new StringBuilder("3123"); strippedNumber = "3123"; assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, null)); @@ -1457,7 +1458,7 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { "the national rule.", strippedNumber, numberToStrip.toString()); // Test extracting carrier selection code. - metadata.setNationalPrefixForParsing("0(81)?"); + metadata.nationalPrefixForParsing = "0(81)?"; numberToStrip = new StringBuilder("08122123456"); strippedNumber = "22123456"; StringBuilder carrierCode = new StringBuilder(); @@ -1467,9 +1468,9 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { assertEquals("Should have had national prefix and carrier code stripped.", strippedNumber, numberToStrip.toString()); // If there was a transform rule, check it was applied. - metadata.setNationalPrefixTransformRule("5$15"); + metadata.nationalPrefixTransformRule = "5$15"; // Note that a capturing group is present here. - metadata.setNationalPrefixForParsing("0(\\d{2})"); + metadata.nationalPrefixForParsing = "0(\\d{2})"; numberToStrip = new StringBuilder("031123"); String transformedNumber = "5315123"; assertTrue(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, null)); diff --git a/java/pom.xml b/java/pom.xml index f2a6b5c6f..9e777ced6 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -180,6 +180,11 @@ 4.8.1 test + + com.google.protobuf + protobuf-java + 2.6.1 + 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 7b723e962..af0044c4c 100644 --- a/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java +++ b/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java @@ -126,10 +126,10 @@ public class BuildMetadataFromXml { Map> countryCodeToRegionCodeMap = new TreeMap>(); for (PhoneMetadata metadata : metadataCollection.getMetadataList()) { - String regionCode = metadata.getId(); - int countryCode = metadata.getCountryCode(); + String regionCode = metadata.id; + int countryCode = metadata.countryCode; if (countryCodeToRegionCodeMap.containsKey(countryCode)) { - if (metadata.getMainCountryForCode()) { + if (metadata.mainCountryForCode) { countryCodeToRegionCodeMap.get(countryCode).add(0, regionCode); } else { countryCodeToRegionCodeMap.get(countryCode).add(regionCode); @@ -182,43 +182,42 @@ public class BuildMetadataFromXml { static PhoneMetadata loadTerritoryTagMetadata(String regionCode, Element element, String nationalPrefix) { PhoneMetadata metadata = new PhoneMetadata(); - metadata.setId(regionCode); + metadata.id = regionCode; if (element.hasAttribute(COUNTRY_CODE)) { - metadata.setCountryCode(Integer.parseInt(element.getAttribute(COUNTRY_CODE))); + metadata.countryCode = Integer.parseInt(element.getAttribute(COUNTRY_CODE)); } if (element.hasAttribute(LEADING_DIGITS)) { - metadata.setLeadingDigits(validateRE(element.getAttribute(LEADING_DIGITS))); + metadata.leadingDigits = validateRE(element.getAttribute(LEADING_DIGITS)); } - metadata.setInternationalPrefix(validateRE(element.getAttribute(INTERNATIONAL_PREFIX))); + metadata.internationalPrefix = validateRE(element.getAttribute(INTERNATIONAL_PREFIX)); if (element.hasAttribute(PREFERRED_INTERNATIONAL_PREFIX)) { - String preferredInternationalPrefix = element.getAttribute(PREFERRED_INTERNATIONAL_PREFIX); - metadata.setPreferredInternationalPrefix(preferredInternationalPrefix); + metadata.preferredInternationalPrefix = element.getAttribute(PREFERRED_INTERNATIONAL_PREFIX); } if (element.hasAttribute(NATIONAL_PREFIX_FOR_PARSING)) { - metadata.setNationalPrefixForParsing( - validateRE(element.getAttribute(NATIONAL_PREFIX_FOR_PARSING), true)); + metadata.nationalPrefixForParsing = + validateRE(element.getAttribute(NATIONAL_PREFIX_FOR_PARSING), true); if (element.hasAttribute(NATIONAL_PREFIX_TRANSFORM_RULE)) { - metadata.setNationalPrefixTransformRule( - validateRE(element.getAttribute(NATIONAL_PREFIX_TRANSFORM_RULE))); + metadata.nationalPrefixTransformRule = + validateRE(element.getAttribute(NATIONAL_PREFIX_TRANSFORM_RULE)); } } if (!nationalPrefix.isEmpty()) { - metadata.setNationalPrefix(nationalPrefix); - if (!metadata.hasNationalPrefixForParsing()) { - metadata.setNationalPrefixForParsing(nationalPrefix); + metadata.nationalPrefix = nationalPrefix; + if (metadata.nationalPrefixForParsing.length() == 0) { + metadata.nationalPrefixForParsing = nationalPrefix; } } if (element.hasAttribute(PREFERRED_EXTN_PREFIX)) { - metadata.setPreferredExtnPrefix(element.getAttribute(PREFERRED_EXTN_PREFIX)); + metadata.preferredExtnPrefix = element.getAttribute(PREFERRED_EXTN_PREFIX); } if (element.hasAttribute(MAIN_COUNTRY_FOR_CODE)) { - metadata.setMainCountryForCode(true); + metadata.mainCountryForCode = true; } if (element.hasAttribute(LEADING_ZERO_POSSIBLE)) { - metadata.setLeadingZeroPossible(true); + metadata.leadingZeroPossible = true; } if (element.hasAttribute(MOBILE_NUMBER_PORTABLE_REGION)) { - metadata.setMobileNumberPortableRegion(true); + metadata.mobileNumberPortableRegion = true; } return metadata; } @@ -242,23 +241,23 @@ public class BuildMetadataFromXml { LOGGER.log(Level.SEVERE, "A maximum of one intlFormat pattern for a numberFormat element should be " + "defined."); - String countryId = metadata.getId().length() > 0 ? - metadata.getId() : Integer.toString(metadata.getCountryCode()); + String countryId = metadata.id.length() > 0 ? + metadata.id : Integer.toString(metadata.countryCode); throw new RuntimeException("Invalid number of intlFormat patterns for country: " + countryId); } else if (intlFormatPattern.getLength() == 0) { // Default to use the same as the national pattern if none is defined. intlFormat.mergeFrom(nationalFormat); } else { - intlFormat.setPattern(numberFormatElement.getAttribute(PATTERN)); + intlFormat.pattern = numberFormatElement.getAttribute(PATTERN); setLeadingDigitsPatterns(numberFormatElement, intlFormat); String intlFormatPatternValue = intlFormatPattern.item(0).getFirstChild().getNodeValue(); if (!intlFormatPatternValue.equals("NA")) { - intlFormat.setFormat(intlFormatPatternValue); + intlFormat.format = intlFormatPatternValue; } hasExplicitIntlFormatDefined = true; } - if (intlFormat.hasFormat()) { + if (!intlFormat.format.isEmpty()) { metadata.addIntlNumberFormat(intlFormat); } return hasExplicitIntlFormatDefined; @@ -273,18 +272,18 @@ public class BuildMetadataFromXml { static void loadNationalFormat(PhoneMetadata metadata, Element numberFormatElement, NumberFormat format) { setLeadingDigitsPatterns(numberFormatElement, format); - format.setPattern(validateRE(numberFormatElement.getAttribute(PATTERN))); + format.pattern = validateRE(numberFormatElement.getAttribute(PATTERN)); NodeList formatPattern = numberFormatElement.getElementsByTagName(FORMAT); int numFormatPatterns = formatPattern.getLength(); if (numFormatPatterns != 1) { LOGGER.log(Level.SEVERE, "One format pattern for a numberFormat element should be defined."); - String countryId = metadata.getId().length() > 0 ? - metadata.getId() : Integer.toString(metadata.getCountryCode()); + String countryId = metadata.id.length() > 0 ? + metadata.id : Integer.toString(metadata.countryCode); throw new RuntimeException("Invalid number of format patterns (" + numFormatPatterns + ") for country: " + countryId); } - format.setFormat(formatPattern.item(0).getFirstChild().getNodeValue()); + format.format = formatPattern.item(0).getFirstChild().getNodeValue(); } /** @@ -313,27 +312,27 @@ public class BuildMetadataFromXml { NumberFormat format = new NumberFormat(); if (numberFormatElement.hasAttribute(NATIONAL_PREFIX_FORMATTING_RULE)) { - format.setNationalPrefixFormattingRule( - getNationalPrefixFormattingRuleFromElement(numberFormatElement, nationalPrefix)); + format.nationalPrefixFormattingRule = + getNationalPrefixFormattingRuleFromElement(numberFormatElement, nationalPrefix); } else { - format.setNationalPrefixFormattingRule(nationalPrefixFormattingRule); + format.nationalPrefixFormattingRule = nationalPrefixFormattingRule; } - if (format.hasNationalPrefixFormattingRule()) { + if (!format.nationalPrefixFormattingRule.isEmpty()) { if (numberFormatElement.hasAttribute(NATIONAL_PREFIX_OPTIONAL_WHEN_FORMATTING)) { - format.setNationalPrefixOptionalWhenFormatting( + format.nationalPrefixOptionalWhenFormatting = Boolean.valueOf(numberFormatElement.getAttribute( - NATIONAL_PREFIX_OPTIONAL_WHEN_FORMATTING))); + NATIONAL_PREFIX_OPTIONAL_WHEN_FORMATTING)); } else { - format.setNationalPrefixOptionalWhenFormatting(nationalPrefixOptionalWhenFormatting); + format.nationalPrefixOptionalWhenFormatting = nationalPrefixOptionalWhenFormatting; } } if (numberFormatElement.hasAttribute(CARRIER_CODE_FORMATTING_RULE)) { - format.setDomesticCarrierCodeFormattingRule(validateRE( + format.domesticCarrierCodeFormattingRule = validateRE( getDomesticCarrierCodeFormattingRuleFromElement(numberFormatElement, - nationalPrefix))); + nationalPrefix)); } else { - format.setDomesticCarrierCodeFormattingRule(carrierCodeFormattingRule); + format.domesticCarrierCodeFormattingRule = carrierCodeFormattingRule; } loadNationalFormat(metadata, numberFormatElement, format); metadata.addNumberFormat(format); @@ -415,8 +414,8 @@ public class BuildMetadataFromXml { NodeList phoneNumberDescList = countryElement.getElementsByTagName(numberType); PhoneNumberDesc numberDesc = new PhoneNumberDesc(); if (phoneNumberDescList.getLength() == 0 && !isValidNumberType(numberType)) { - numberDesc.setNationalNumberPattern("NA"); - numberDesc.setPossibleNumberPattern("NA"); + numberDesc.nationalNumberPattern = "NA"; + numberDesc.possibleNumberPattern = "NA"; return numberDesc; } numberDesc.mergeFrom(generalDesc); @@ -424,20 +423,20 @@ public class BuildMetadataFromXml { Element element = (Element) phoneNumberDescList.item(0); NodeList possiblePattern = element.getElementsByTagName(POSSIBLE_NUMBER_PATTERN); if (possiblePattern.getLength() > 0) { - numberDesc.setPossibleNumberPattern( - validateRE(possiblePattern.item(0).getFirstChild().getNodeValue(), true)); + numberDesc.possibleNumberPattern = + validateRE(possiblePattern.item(0).getFirstChild().getNodeValue(), true); } NodeList validPattern = element.getElementsByTagName(NATIONAL_NUMBER_PATTERN); if (validPattern.getLength() > 0) { - numberDesc.setNationalNumberPattern( - validateRE(validPattern.item(0).getFirstChild().getNodeValue(), true)); + numberDesc.nationalNumberPattern = + validateRE(validPattern.item(0).getFirstChild().getNodeValue(), true); } if (!liteBuild) { NodeList exampleNumber = element.getElementsByTagName(EXAMPLE_NUMBER); if (exampleNumber.getLength() > 0) { - numberDesc.setExampleNumber(exampleNumber.item(0).getFirstChild().getNodeValue()); + numberDesc.exampleNumber = exampleNumber.item(0).getFirstChild().getNodeValue(); } } } @@ -449,49 +448,48 @@ public class BuildMetadataFromXml { boolean liteBuild, boolean isShortNumberMetadata) { PhoneNumberDesc generalDesc = new PhoneNumberDesc(); generalDesc = processPhoneNumberDescElement(generalDesc, element, GENERAL_DESC, liteBuild); - metadata.setGeneralDesc(generalDesc); + metadata.generalDesc = generalDesc; if (!isShortNumberMetadata) { // Set fields used only by regular length phone numbers. - metadata.setFixedLine( - processPhoneNumberDescElement(generalDesc, element, FIXED_LINE, liteBuild)); - metadata.setMobile( - processPhoneNumberDescElement(generalDesc, element, MOBILE, liteBuild)); - metadata.setSharedCost( - processPhoneNumberDescElement(generalDesc, element, SHARED_COST, liteBuild)); - metadata.setVoip( - processPhoneNumberDescElement(generalDesc, element, VOIP, liteBuild)); - metadata.setPersonalNumber( - processPhoneNumberDescElement(generalDesc, element, PERSONAL_NUMBER, liteBuild)); - metadata.setPager( - processPhoneNumberDescElement(generalDesc, element, PAGER, liteBuild)); - metadata.setUan( - processPhoneNumberDescElement(generalDesc, element, UAN, liteBuild)); - metadata.setVoicemail( - processPhoneNumberDescElement(generalDesc, element, VOICEMAIL, liteBuild)); - metadata.setNoInternationalDialling( + metadata.fixedLine = + processPhoneNumberDescElement(generalDesc, element, FIXED_LINE, liteBuild); + metadata.mobile = + processPhoneNumberDescElement(generalDesc, element, MOBILE, liteBuild); + metadata.sharedCost = + processPhoneNumberDescElement(generalDesc, element, SHARED_COST, liteBuild); + metadata.voip = + processPhoneNumberDescElement(generalDesc, element, VOIP, liteBuild); + metadata.personalNumber = + processPhoneNumberDescElement(generalDesc, element, PERSONAL_NUMBER, liteBuild); + metadata.pager = + processPhoneNumberDescElement(generalDesc, element, PAGER, liteBuild); + metadata.uan = + processPhoneNumberDescElement(generalDesc, element, UAN, liteBuild); + metadata.voicemail = + processPhoneNumberDescElement(generalDesc, element, VOICEMAIL, liteBuild); + metadata.noInternationalDialling = processPhoneNumberDescElement(generalDesc, element, NO_INTERNATIONAL_DIALLING, - liteBuild)); - metadata.setSameMobileAndFixedLinePattern( - metadata.getMobile().getNationalNumberPattern().equals( - metadata.getFixedLine().getNationalNumberPattern())); + liteBuild); + metadata.sameMobileAndFixedLinePattern = + metadata.mobile.nationalNumberPattern.equals(metadata.fixedLine.nationalNumberPattern); } else { // Set fields used only by short numbers. - metadata.setStandardRate( - processPhoneNumberDescElement(generalDesc, element, STANDARD_RATE, liteBuild)); - metadata.setShortCode( - processPhoneNumberDescElement(generalDesc, element, SHORT_CODE, liteBuild)); - metadata.setCarrierSpecific( - processPhoneNumberDescElement(generalDesc, element, CARRIER_SPECIFIC, liteBuild)); - metadata.setEmergency( - processPhoneNumberDescElement(generalDesc, element, EMERGENCY, liteBuild)); + metadata.standardRate = + processPhoneNumberDescElement(generalDesc, element, STANDARD_RATE, liteBuild); + metadata.shortCode = + processPhoneNumberDescElement(generalDesc, element, SHORT_CODE, liteBuild); + metadata.carrierSpecific = + processPhoneNumberDescElement(generalDesc, element, CARRIER_SPECIFIC, liteBuild); + metadata.emergency = + processPhoneNumberDescElement(generalDesc, element, EMERGENCY, liteBuild); } // Set fields used by both regular length and short numbers. - metadata.setTollFree( - processPhoneNumberDescElement(generalDesc, element, TOLL_FREE, liteBuild)); - metadata.setPremiumRate( - processPhoneNumberDescElement(generalDesc, element, PREMIUM_RATE, liteBuild)); + metadata.tollFree = + processPhoneNumberDescElement(generalDesc, element, TOLL_FREE, liteBuild); + metadata.premiumRate = + processPhoneNumberDescElement(generalDesc, element, PREMIUM_RATE, liteBuild); } // @VisibleForTesting @@ -502,8 +500,7 @@ public class BuildMetadataFromXml { loadTerritoryTagMetadata(regionCode, element, nationalPrefix); String nationalPrefixFormattingRule = getNationalPrefixFormattingRuleFromElement(element, nationalPrefix); - loadAvailableFormats(metadata, element, nationalPrefix.toString(), - nationalPrefixFormattingRule.toString(), + loadAvailableFormats(metadata, element, nationalPrefix, nationalPrefixFormattingRule, element.hasAttribute(NATIONAL_PREFIX_OPTIONAL_WHEN_FORMATTING)); if (!isAlternateFormatsMetadata) { // The alternate formats metadata does not need most of the patterns to be set. 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 f1ea81608..dd7aa258a 100644 --- a/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java +++ b/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java @@ -122,17 +122,17 @@ public class BuildMetadataFromXmlTest extends TestCase { Element territoryElement = parseXmlString(xmlInput); PhoneMetadata phoneMetadata = BuildMetadataFromXml.loadTerritoryTagMetadata("33", territoryElement, "0"); - assertEquals(33, phoneMetadata.getCountryCode()); - assertEquals("2", phoneMetadata.getLeadingDigits()); - assertEquals("00", phoneMetadata.getInternationalPrefix()); - assertEquals("0011", phoneMetadata.getPreferredInternationalPrefix()); - assertEquals("0", phoneMetadata.getNationalPrefixForParsing()); - assertEquals("9$1", phoneMetadata.getNationalPrefixTransformRule()); - assertEquals("0", phoneMetadata.getNationalPrefix()); - assertEquals(" x", phoneMetadata.getPreferredExtnPrefix()); - assertTrue(phoneMetadata.getMainCountryForCode()); - assertTrue(phoneMetadata.isLeadingZeroPossible()); - assertTrue(phoneMetadata.isMobileNumberPortableRegion()); + assertEquals(33, phoneMetadata.countryCode); + assertEquals("2", phoneMetadata.leadingDigits); + assertEquals("00", phoneMetadata.internationalPrefix); + assertEquals("0011", phoneMetadata.preferredInternationalPrefix); + assertEquals("0", phoneMetadata.nationalPrefixForParsing); + assertEquals("9$1", phoneMetadata.nationalPrefixTransformRule); + assertEquals("0", phoneMetadata.nationalPrefix); + assertEquals(" x", phoneMetadata.preferredExtnPrefix); + assertTrue(phoneMetadata.mainCountryForCode); + assertTrue(phoneMetadata.leadingZeroPossible); + assertTrue(phoneMetadata.mobileNumberPortableRegion); } public void testLoadTerritoryTagMetadataSetsBooleanFieldsToFalseByDefault() @@ -141,9 +141,9 @@ public class BuildMetadataFromXmlTest extends TestCase { Element territoryElement = parseXmlString(xmlInput); PhoneMetadata phoneMetadata = BuildMetadataFromXml.loadTerritoryTagMetadata("33", territoryElement, ""); - assertFalse(phoneMetadata.getMainCountryForCode()); - assertFalse(phoneMetadata.isLeadingZeroPossible()); - assertFalse(phoneMetadata.isMobileNumberPortableRegion()); + assertFalse(phoneMetadata.mainCountryForCode); + assertFalse(phoneMetadata.leadingZeroPossible); + assertFalse(phoneMetadata.mobileNumberPortableRegion); } public void testLoadTerritoryTagMetadataSetsNationalPrefixForParsingByDefault() @@ -153,8 +153,8 @@ public class BuildMetadataFromXmlTest extends TestCase { PhoneMetadata phoneMetadata = BuildMetadataFromXml.loadTerritoryTagMetadata("33", territoryElement, "00"); // When unspecified, nationalPrefixForParsing defaults to nationalPrefix. - assertEquals("00", phoneMetadata.getNationalPrefix()); - assertEquals(phoneMetadata.getNationalPrefix(), phoneMetadata.getNationalPrefixForParsing()); + assertEquals("00", phoneMetadata.nationalPrefix); + assertEquals(phoneMetadata.nationalPrefix, phoneMetadata.nationalPrefixForParsing); } public void testLoadTerritoryTagMetadataWithRequiredAttributesOnly() @@ -176,7 +176,7 @@ public class BuildMetadataFromXmlTest extends TestCase { assertTrue(BuildMetadataFromXml.loadInternationalFormat(metadata, numberFormatElement, nationalFormat)); - assertEquals(intlFormat, metadata.getIntlNumberFormat(0).getFormat()); + assertEquals(intlFormat, metadata.getIntlNumberFormat(0).format); } public void testLoadInternationalFormatWithBothNationalAndIntlFormatsDefined() @@ -186,11 +186,11 @@ public class BuildMetadataFromXmlTest extends TestCase { Element numberFormatElement = parseXmlString(xmlInput); PhoneMetadata metadata = new PhoneMetadata(); NumberFormat nationalFormat = new NumberFormat(); - nationalFormat.setFormat("$1"); + nationalFormat.format = "$1"; assertTrue(BuildMetadataFromXml.loadInternationalFormat(metadata, numberFormatElement, nationalFormat)); - assertEquals(intlFormat, metadata.getIntlNumberFormat(0).getFormat()); + assertEquals(intlFormat, metadata.getIntlNumberFormat(0).format); } public void testLoadInternationalFormatExpectsOnlyOnePattern() @@ -216,11 +216,11 @@ public class BuildMetadataFromXmlTest extends TestCase { PhoneMetadata metadata = new PhoneMetadata(); NumberFormat nationalFormat = new NumberFormat(); String nationalPattern = "$1 $2 $3"; - nationalFormat.setFormat(nationalPattern); + nationalFormat.format = nationalPattern; assertFalse(BuildMetadataFromXml.loadInternationalFormat(metadata, numberFormatElement, nationalFormat)); - assertEquals(nationalPattern, metadata.getIntlNumberFormat(0).getFormat()); + assertEquals(nationalPattern, metadata.getIntlNumberFormat(0).format); } public void testLoadInternationalFormatCopiesNationalFormatData() @@ -229,12 +229,12 @@ public class BuildMetadataFromXmlTest extends TestCase { Element numberFormatElement = parseXmlString(xmlInput); PhoneMetadata metadata = new PhoneMetadata(); NumberFormat nationalFormat = new NumberFormat(); - nationalFormat.setFormat("$1-$2"); - nationalFormat.setNationalPrefixOptionalWhenFormatting(true); + nationalFormat.format = "$1-$2"; + nationalFormat.nationalPrefixOptionalWhenFormatting = true; assertFalse(BuildMetadataFromXml.loadInternationalFormat(metadata, numberFormatElement, nationalFormat)); - assertTrue(metadata.getIntlNumberFormat(0).isNationalPrefixOptionalWhenFormatting()); + assertTrue(metadata.getIntlNumberFormat(0).nationalPrefixOptionalWhenFormatting); } public void testLoadNationalFormat() @@ -246,7 +246,7 @@ public class BuildMetadataFromXmlTest extends TestCase { PhoneMetadata metadata = new PhoneMetadata(); NumberFormat numberFormat = new NumberFormat(); BuildMetadataFromXml.loadNationalFormat(metadata, numberFormatElement, numberFormat); - assertEquals(nationalFormat, numberFormat.getFormat()); + assertEquals(nationalFormat, numberFormat.format); } public void testLoadNationalFormatRequiresFormat() @@ -295,9 +295,9 @@ public class BuildMetadataFromXmlTest extends TestCase { PhoneMetadata metadata = new PhoneMetadata(); BuildMetadataFromXml.loadAvailableFormats( 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()); + assertEquals("($1)", metadata.getNumberFormat(0).nationalPrefixFormattingRule); + assertEquals("0 $CC ($1)", metadata.getNumberFormat(0).domesticCarrierCodeFormattingRule); + assertEquals("$1 $2 $3", metadata.getNumberFormat(0).format); } public void testLoadAvailableFormatsPropagatesCarrierCodeFormattingRule() @@ -314,9 +314,9 @@ public class BuildMetadataFromXmlTest extends TestCase { PhoneMetadata metadata = new PhoneMetadata(); BuildMetadataFromXml.loadAvailableFormats( 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()); + assertEquals("($1)", metadata.getNumberFormat(0).nationalPrefixFormattingRule); + assertEquals("0 $CC ($1)", metadata.getNumberFormat(0).domesticCarrierCodeFormattingRule); + assertEquals("$1 $2 $3", metadata.getNumberFormat(0).format); } public void testLoadAvailableFormatsSetsProvidedNationalPrefixFormattingRule() @@ -331,7 +331,7 @@ public class BuildMetadataFromXmlTest extends TestCase { PhoneMetadata metadata = new PhoneMetadata(); BuildMetadataFromXml.loadAvailableFormats( metadata, element, "", "($1)", false /* NP not optional */); - assertEquals("($1)", metadata.getNumberFormat(0).getNationalPrefixFormattingRule()); + assertEquals("($1)", metadata.getNumberFormat(0).nationalPrefixFormattingRule); } public void testLoadAvailableFormatsClearsIntlFormat() @@ -362,8 +362,8 @@ public class BuildMetadataFromXmlTest extends TestCase { PhoneMetadata metadata = new PhoneMetadata(); BuildMetadataFromXml.loadAvailableFormats( metadata, element, "0", "($1)", false /* NP not optional */); - assertEquals("$1 $2 $3", metadata.getNumberFormat(0).getFormat()); - assertEquals("$1-$2", metadata.getNumberFormat(1).getFormat()); + assertEquals("$1 $2 $3", metadata.getNumberFormat(0).format); + assertEquals("$1-$2", metadata.getNumberFormat(1).format); } public void testLoadInternationalFormatDoesNotSetIntlFormatWhenNA() @@ -372,7 +372,7 @@ public class BuildMetadataFromXmlTest extends TestCase { Element numberFormatElement = parseXmlString(xmlInput); PhoneMetadata metadata = new PhoneMetadata(); NumberFormat nationalFormat = new NumberFormat(); - nationalFormat.setFormat("$1 $2"); + nationalFormat.format = "$1 $2"; BuildMetadataFromXml.loadInternationalFormat(metadata, numberFormatElement, nationalFormat); @@ -455,26 +455,26 @@ public class BuildMetadataFromXmlTest extends TestCase { phoneNumberDesc = BuildMetadataFromXml.processPhoneNumberDescElement( generalDesc, territoryElement, "invalidType", false); - assertEquals("NA", phoneNumberDesc.getPossibleNumberPattern()); - assertEquals("NA", phoneNumberDesc.getNationalNumberPattern()); + assertEquals("NA", phoneNumberDesc.possibleNumberPattern); + assertEquals("NA", phoneNumberDesc.nationalNumberPattern); } public void testProcessPhoneNumberDescElementMergesWithGeneralDesc() throws ParserConfigurationException, SAXException, IOException { PhoneNumberDesc generalDesc = new PhoneNumberDesc(); - generalDesc.setPossibleNumberPattern("\\d{6}"); + generalDesc.possibleNumberPattern = "\\d{6}"; Element territoryElement = parseXmlString(""); PhoneNumberDesc phoneNumberDesc; phoneNumberDesc = BuildMetadataFromXml.processPhoneNumberDescElement( generalDesc, territoryElement, "fixedLine", false); - assertEquals("\\d{6}", phoneNumberDesc.getPossibleNumberPattern()); + assertEquals("\\d{6}", phoneNumberDesc.possibleNumberPattern); } public void testProcessPhoneNumberDescElementOverridesGeneralDesc() throws ParserConfigurationException, SAXException, IOException { PhoneNumberDesc generalDesc = new PhoneNumberDesc(); - generalDesc.setPossibleNumberPattern("\\d{8}"); + generalDesc.possibleNumberPattern = "\\d{8}"; String xmlInput = "" + " \\d{6}" + @@ -484,7 +484,7 @@ public class BuildMetadataFromXmlTest extends TestCase { phoneNumberDesc = BuildMetadataFromXml.processPhoneNumberDescElement( generalDesc, territoryElement, "fixedLine", false); - assertEquals("\\d{6}", phoneNumberDesc.getPossibleNumberPattern()); + assertEquals("\\d{6}", phoneNumberDesc.possibleNumberPattern); } public void testProcessPhoneNumberDescElementHandlesLiteBuild() @@ -499,7 +499,7 @@ public class BuildMetadataFromXmlTest extends TestCase { phoneNumberDesc = BuildMetadataFromXml.processPhoneNumberDescElement( generalDesc, territoryElement, "fixedLine", true); - assertEquals("", phoneNumberDesc.getExampleNumber()); + assertEquals("", phoneNumberDesc.exampleNumber); } public void testProcessPhoneNumberDescOutputsExampleNumberByDefault() @@ -514,7 +514,7 @@ public class BuildMetadataFromXmlTest extends TestCase { phoneNumberDesc = BuildMetadataFromXml.processPhoneNumberDescElement( generalDesc, territoryElement, "fixedLine", false); - assertEquals("01 01 01 01", phoneNumberDesc.getExampleNumber()); + assertEquals("01 01 01 01", phoneNumberDesc.exampleNumber); } public void testProcessPhoneNumberDescRemovesWhiteSpacesInPatterns() @@ -529,7 +529,7 @@ public class BuildMetadataFromXmlTest extends TestCase { phoneNumberDesc = BuildMetadataFromXml.processPhoneNumberDescElement( generalDesc, countryElement, "fixedLine", false); - assertEquals("\\d{6}", phoneNumberDesc.getPossibleNumberPattern()); + assertEquals("\\d{6}", phoneNumberDesc.possibleNumberPattern); } // Tests setRelevantDescPatterns(). @@ -545,7 +545,7 @@ public class BuildMetadataFromXmlTest extends TestCase { // Should set sameMobileAndFixedPattern to true. BuildMetadataFromXml.setRelevantDescPatterns(metadata, territoryElement, false /* liteBuild */, false /* isShortNumberMetadata */); - assertTrue(metadata.isSameMobileAndFixedLinePattern()); + assertTrue(metadata.sameMobileAndFixedLinePattern); } public void testSetRelevantDescPatternsSetsAllDescriptionsForRegularLengthNumbers() @@ -566,15 +566,15 @@ public class BuildMetadataFromXmlTest extends TestCase { PhoneMetadata metadata = new PhoneMetadata(); BuildMetadataFromXml.setRelevantDescPatterns(metadata, territoryElement, false /* liteBuild */, false /* isShortNumberMetadata */); - assertEquals("\\d{1}", metadata.getFixedLine().getNationalNumberPattern()); - assertEquals("\\d{2}", metadata.getMobile().getNationalNumberPattern()); - assertEquals("\\d{3}", metadata.getPager().getNationalNumberPattern()); - assertEquals("\\d{4}", metadata.getTollFree().getNationalNumberPattern()); - assertEquals("\\d{5}", metadata.getPremiumRate().getNationalNumberPattern()); - assertEquals("\\d{6}", metadata.getSharedCost().getNationalNumberPattern()); - assertEquals("\\d{7}", metadata.getPersonalNumber().getNationalNumberPattern()); - assertEquals("\\d{8}", metadata.getVoip().getNationalNumberPattern()); - assertEquals("\\d{9}", metadata.getUan().getNationalNumberPattern()); + assertEquals("\\d{1}", metadata.fixedLine.nationalNumberPattern); + assertEquals("\\d{2}", metadata.mobile.nationalNumberPattern); + assertEquals("\\d{3}", metadata.pager.nationalNumberPattern); + assertEquals("\\d{4}", metadata.tollFree.nationalNumberPattern); + assertEquals("\\d{5}", metadata.premiumRate.nationalNumberPattern); + assertEquals("\\d{6}", metadata.sharedCost.nationalNumberPattern); + assertEquals("\\d{7}", metadata.personalNumber.nationalNumberPattern); + assertEquals("\\d{8}", metadata.voip.nationalNumberPattern); + assertEquals("\\d{9}", metadata.uan.nationalNumberPattern); } public void testSetRelevantDescPatternsSetsAllDescriptionsForShortNumbers() @@ -593,11 +593,11 @@ public class BuildMetadataFromXmlTest extends TestCase { PhoneMetadata metadata = new PhoneMetadata(); BuildMetadataFromXml.setRelevantDescPatterns(metadata, territoryElement, false /* liteBuild */, true /* isShortNumberMetadata */); - assertEquals("\\d{1}", metadata.getTollFree().getNationalNumberPattern()); - assertEquals("\\d{2}", metadata.getStandardRate().getNationalNumberPattern()); - assertEquals("\\d{3}", metadata.getPremiumRate().getNationalNumberPattern()); - assertEquals("\\d{4}", metadata.getShortCode().getNationalNumberPattern()); - assertEquals("\\d{5}", metadata.getCarrierSpecific().getNationalNumberPattern()); + assertEquals("\\d{1}", metadata.tollFree.nationalNumberPattern); + assertEquals("\\d{2}", metadata.standardRate.nationalNumberPattern); + assertEquals("\\d{3}", metadata.premiumRate.nationalNumberPattern); + assertEquals("\\d{4}", metadata.shortCode.nationalNumberPattern); + assertEquals("\\d{5}", metadata.carrierSpecific.nationalNumberPattern); } public void testAlternateFormatsOmitsDescPatterns() @@ -617,13 +617,11 @@ public class BuildMetadataFromXmlTest extends TestCase { PhoneMetadata metadata = BuildMetadataFromXml.loadCountryMetadata("FR", territoryElement, false /* liteBuild */, false /* isShortNumberMetadata */, true /* isAlternateFormatsMetadata */); - assertEquals("(1)(\\d{3})", metadata.getNumberFormat(0).getPattern()); + assertEquals("(1)(\\d{3})", metadata.getNumberFormat(0).pattern); assertEquals("1", metadata.getNumberFormat(0).getLeadingDigitsPattern(0)); - assertEquals("$1", metadata.getNumberFormat(0).getFormat()); - assertFalse(metadata.hasFixedLine()); - assertNull(metadata.getFixedLine()); - assertFalse(metadata.hasShortCode()); - assertNull(metadata.getShortCode()); + assertEquals("$1", metadata.getNumberFormat(0).format); + assertNull(metadata.fixedLine); + assertNull(metadata.shortCode); } public void testNationalPrefixRulesSetCorrectly() @@ -647,11 +645,11 @@ public class BuildMetadataFromXmlTest extends TestCase { PhoneMetadata metadata = BuildMetadataFromXml.loadCountryMetadata("FR", territoryElement, false /* liteBuild */, false /* isShortNumberMetadata */, true /* isAlternateFormatsMetadata */); - assertTrue(metadata.getNumberFormat(0).isNationalPrefixOptionalWhenFormatting()); + assertTrue(metadata.getNumberFormat(0).nationalPrefixOptionalWhenFormatting); // This is inherited from the territory, with $NP replaced by the actual national prefix, and // $FG replaced with $1. - assertEquals("0$1", metadata.getNumberFormat(0).getNationalPrefixFormattingRule()); + assertEquals("0$1", metadata.getNumberFormat(0).nationalPrefixFormattingRule); // Here it is explicitly set to false. - assertFalse(metadata.getNumberFormat(1).isNationalPrefixOptionalWhenFormatting()); + assertFalse(metadata.getNumberFormat(1).nationalPrefixOptionalWhenFormatting); } } diff --git a/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java b/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java index cbf7b7c9e..63872c2f6 100644 --- a/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java +++ b/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java @@ -136,11 +136,11 @@ public class BuildMetadataJsonFromXml extends Command { } else { writer.write(","); } - String key = metadata.getId(); + String key = metadata.id; // For non-geographical country calling codes (e.g. +800), use the country calling codes // instead of the region code as key in the map. if (key.equals("001")) { - key = Integer.toString(metadata.getCountryCode()); + key = Integer.toString(metadata.countryCode); } JSArrayBuilder jsArrayBuilder = new JSArrayBuilder(); toJsArray(metadata, jsArrayBuilder); @@ -182,9 +182,9 @@ public class BuildMetadataJsonFromXml extends Command { // missing 0 jsArrayBuilder.append(null); // required string pattern = 1; - jsArrayBuilder.append(format.getPattern()); + jsArrayBuilder.append(format.pattern); // required string format = 2; - jsArrayBuilder.append(format.getFormat()); + jsArrayBuilder.append(format.format); // repeated string leading_digits_pattern = 3; int leadingDigitsPatternSize = format.leadingDigitsPatternSize(); if (leadingDigitsPatternSize > 0) { @@ -197,20 +197,20 @@ public class BuildMetadataJsonFromXml extends Command { jsArrayBuilder.append(null); } // optional string national_prefix_formatting_rule = 4; - if (format.hasNationalPrefixFormattingRule()) { - jsArrayBuilder.append(format.getNationalPrefixFormattingRule()); + if (format.nationalPrefixFormattingRule.length() != 0) { + jsArrayBuilder.append(format.nationalPrefixFormattingRule); } else { jsArrayBuilder.append(null); } // optional string domestic_carrier_code_formatting_rule = 5; - if (format.hasDomesticCarrierCodeFormattingRule()) { - jsArrayBuilder.append(format.getDomesticCarrierCodeFormattingRule()); + if (format.domesticCarrierCodeFormattingRule.length() != 0) { + jsArrayBuilder.append(format.domesticCarrierCodeFormattingRule); } else { jsArrayBuilder.append(null); } // optional bool national_prefix_optional_when_formatting = 6; - if (format.hasNationalPrefixOptionalWhenFormatting()) { - jsArrayBuilder.append(format.isNationalPrefixOptionalWhenFormatting()); + if (format.nationalPrefixOptionalWhenFormatting) { + jsArrayBuilder.append(format.nationalPrefixOptionalWhenFormatting); } else { jsArrayBuilder.append(null); } @@ -233,14 +233,14 @@ public class BuildMetadataJsonFromXml extends Command { // missing 1 jsArrayBuilder.append(null); // optional string national_number_pattern = 2; - if (desc.hasNationalNumberPattern()) { - jsArrayBuilder.append(desc.getNationalNumberPattern()); + if (desc.nationalNumberPattern.length() != 0) { + jsArrayBuilder.append(desc.nationalNumberPattern); } else { jsArrayBuilder.append(null); } // optional string possible_number_pattern = 3; - if (desc.hasPossibleNumberPattern()) { - jsArrayBuilder.append(desc.getPossibleNumberPattern()); + if (desc.possibleNumberPattern.length() != 0) { + jsArrayBuilder.append(desc.possibleNumberPattern); } else { jsArrayBuilder.append(null); } @@ -249,8 +249,8 @@ public class BuildMetadataJsonFromXml extends Command { // missing 5 jsArrayBuilder.append(null); // optional string example_number = 6; - if (desc.hasExampleNumber()) { - jsArrayBuilder.append(desc.getExampleNumber()); + if (desc.exampleNumber.length() != 0) { + jsArrayBuilder.append(desc.exampleNumber); } else { jsArrayBuilder.append(null); } @@ -265,70 +265,70 @@ public class BuildMetadataJsonFromXml extends Command { // missing 0 jsArrayBuilder.append(null); // optional PhoneNumberDesc general_desc = 1; - toJsArray(metadata.getGeneralDesc(), jsArrayBuilder); + toJsArray(metadata.generalDesc, jsArrayBuilder); // optional PhoneNumberDesc fixed_line = 2; - toJsArray(metadata.getFixedLine(), jsArrayBuilder); + toJsArray(metadata.fixedLine, jsArrayBuilder); // optional PhoneNumberDesc mobile = 3; - toJsArray(metadata.getMobile(), jsArrayBuilder); + toJsArray(metadata.mobile, jsArrayBuilder); // optional PhoneNumberDesc toll_free = 4; - toJsArray(metadata.getTollFree(), jsArrayBuilder); + toJsArray(metadata.tollFree, jsArrayBuilder); // optional PhoneNumberDesc premium_rate = 5; - toJsArray(metadata.getPremiumRate(), jsArrayBuilder); + toJsArray(metadata.premiumRate, jsArrayBuilder); // optional PhoneNumberDesc shared_cost = 6; - toJsArray(metadata.getSharedCost(), jsArrayBuilder); + toJsArray(metadata.sharedCost, jsArrayBuilder); // optional PhoneNumberDesc personal_number = 7; - toJsArray(metadata.getPersonalNumber(), jsArrayBuilder); + toJsArray(metadata.personalNumber, jsArrayBuilder); // optional PhoneNumberDesc voip = 8; - toJsArray(metadata.getVoip(), jsArrayBuilder); + toJsArray(metadata.voip, jsArrayBuilder); // required string id = 9; - jsArrayBuilder.append(metadata.getId()); + jsArrayBuilder.append(metadata.id); // optional int32 country_code = 10; - if (metadata.hasCountryCode()) { - jsArrayBuilder.append(metadata.getCountryCode()); + if (metadata.countryCode != 0) { + jsArrayBuilder.append(metadata.countryCode); } else { jsArrayBuilder.append(null); } // optional string international_prefix = 11; - if (metadata.hasInternationalPrefix()) { - jsArrayBuilder.append(metadata.getInternationalPrefix()); + if (metadata.internationalPrefix.length() != 0) { + jsArrayBuilder.append(metadata.internationalPrefix); } else { jsArrayBuilder.append(null); } // optional string national_prefix = 12; - if (metadata.hasNationalPrefix()) { - jsArrayBuilder.append(metadata.getNationalPrefix()); + if (metadata.nationalPrefix.length() != 0) { + jsArrayBuilder.append(metadata.nationalPrefix); } else { jsArrayBuilder.append(null); } // optional string preferred_extn_prefix = 13; - if (metadata.hasPreferredExtnPrefix()) { - jsArrayBuilder.append(metadata.getPreferredExtnPrefix()); + if (metadata.preferredExtnPrefix.length() != 0) { + jsArrayBuilder.append(metadata.preferredExtnPrefix); } else { jsArrayBuilder.append(null); } // missing 14 jsArrayBuilder.append(null); // optional string national_prefix_for_parsing = 15; - if (metadata.hasNationalPrefixForParsing()) { - jsArrayBuilder.append(metadata.getNationalPrefixForParsing()); + if (metadata.nationalPrefixForParsing.length() != 0) { + jsArrayBuilder.append(metadata.nationalPrefixForParsing); } else { jsArrayBuilder.append(null); } // optional string national_prefix_transform_rule = 16; - if (metadata.hasNationalPrefixTransformRule()) { - jsArrayBuilder.append(metadata.getNationalPrefixTransformRule()); + if (metadata.nationalPrefixTransformRule.length() != 0) { + jsArrayBuilder.append(metadata.nationalPrefixTransformRule); } else { jsArrayBuilder.append(null); } // optional string preferred_international_prefix = 17; - if (metadata.hasPreferredInternationalPrefix()) { - jsArrayBuilder.append(metadata.getPreferredInternationalPrefix()); + if (metadata.preferredInternationalPrefix.length() != 0) { + jsArrayBuilder.append(metadata.preferredInternationalPrefix); } else { jsArrayBuilder.append(null); } // optional bool same_mobile_and_fixed_line_pattern = 18 [default=false]; - if (metadata.isSameMobileAndFixedLinePattern()) { + if (metadata.sameMobileAndFixedLinePattern) { jsArrayBuilder.append(1); } else { jsArrayBuilder.append(null); @@ -356,33 +356,33 @@ public class BuildMetadataJsonFromXml extends Command { jsArrayBuilder.append(null); } // optional PhoneNumberDesc pager = 21; - toJsArray(metadata.getPager(), jsArrayBuilder); + toJsArray(metadata.pager, jsArrayBuilder); // optional bool main_country_for_code = 22 [default=false]; - if (metadata.isMainCountryForCode()) { + if (metadata.mainCountryForCode) { jsArrayBuilder.append(1); } else { jsArrayBuilder.append(null); } // optional string leading_digits = 23; - if (metadata.hasLeadingDigits()) { - jsArrayBuilder.append(metadata.getLeadingDigits()); + if (metadata.leadingDigits.length() != 0) { + jsArrayBuilder.append(metadata.leadingDigits); } else { jsArrayBuilder.append(null); } // optional PhoneNumberDesc no_international_dialling = 24; - toJsArray(metadata.getNoInternationalDialling(), jsArrayBuilder); + toJsArray(metadata.noInternationalDialling, jsArrayBuilder); // optional PhoneNumberDesc uan = 25; - toJsArray(metadata.getUan(), jsArrayBuilder); + toJsArray(metadata.uan, jsArrayBuilder); // optional bool leading_zero_possible = 26 [default=false]; - if (metadata.isLeadingZeroPossible()) { + if (metadata.leadingZeroPossible) { jsArrayBuilder.append(1); } else { jsArrayBuilder.append(null); } // optional PhoneNumberDesc emergency = 27; - toJsArray(metadata.getEmergency(), jsArrayBuilder); + toJsArray(metadata.emergency, jsArrayBuilder); // optional PhoneNumberDesc voicemail = 28; - toJsArray(metadata.getVoicemail(), jsArrayBuilder); + toJsArray(metadata.voicemail, jsArrayBuilder); // Fields 29-31 are omitted due to space increase. // optional PhoneNumberDesc short_code = 29; // optional PhoneNumberDesc standard_rate = 30; diff --git a/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java b/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java index 9d3997151..db371835b 100644 --- a/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java +++ b/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java @@ -165,11 +165,11 @@ public class BuildMetadataProtoFromXml extends Command { out.close(); } else { for (PhoneMetadata metadata : metadataCollection.getMetadataList()) { - String regionCode = metadata.getId(); + String regionCode = metadata.id; // For non-geographical country calling codes (e.g. +800), or for alternate formats, use the // country calling codes instead of the region code to form the file name. if (regionCode.equals("001") || regionCode.isEmpty()) { - regionCode = Integer.toString(metadata.getCountryCode()); + regionCode = Integer.toString(metadata.countryCode); } PhoneMetadataCollection outMetadataCollection = new PhoneMetadataCollection(); outMetadataCollection.addMetadata(metadata);