First step decoupling the library from protocol buffer: Removing protocol buffer dependency for PhoneNumber class. The change decreases the Phonenumber.java to a third of its original size (from 18.5k to 5.9k).
Change-Id: I9ed04e5c9b5fbb2f4116906c230e614231ea262b
diff --git a/README.android b/README.android
index d137bba..c84926b 100644
--- a/README.android
+++ b/README.android
@@ -1,4 +1,4 @@
URL: http://code.google.com/p/libphonenumber/
-Version: r28
+Version: r29
License: Apache 2
Description: Google Phone Number Library.
diff --git a/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java b/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
index 5feefdd..38b9c40 100644
--- a/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
+++ b/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
@@ -562,10 +562,9 @@
if (number.hasExtension()) {
// We don't want to alter the proto given to us, but we don't want to include the extension
// when we format it, so we copy it and clear the extension here.
- PhoneNumber.Builder protoBuilder = PhoneNumber.newBuilder();
- protoBuilder.mergeFrom(number);
- protoBuilder.clearExtension();
- copiedProto = protoBuilder.build();
+ copiedProto = new PhoneNumber();
+ copiedProto.mergeFrom(number);
+ copiedProto.clearExtension();
} else {
copiedProto = number;
}
@@ -680,13 +679,13 @@
*/
public String format(PhoneNumber number, PhoneNumberFormat numberFormat) {
StringBuffer formattedNumber = new StringBuffer(20);
- format(number.toBuilder(), numberFormat, formattedNumber);
+ format(number, numberFormat, formattedNumber);
return formattedNumber.toString();
}
- // Same as format(PhoneNumber, PhoneNumberFormat), but accepts mutable PhoneNumber.Builder and
- // StringBuffer as parameters to decrease object creation when invoked many times.
- public void format(PhoneNumber.Builder number, PhoneNumberFormat numberFormat,
+ // Same as format(PhoneNumber, PhoneNumberFormat), but accepts mutable StringBuffer as parameters
+ // to decrease object creation when invoked many times.
+ public void format(PhoneNumber number, PhoneNumberFormat numberFormat,
StringBuffer formattedNumber) {
// Clear the StringBuffer first.
formattedNumber.setLength(0);
@@ -897,12 +896,6 @@
* @return the national significant number of the PhoneNumber object passed in
*/
public static String getNationalSignificantNumber(PhoneNumber number) {
- return getNationalSignificantNumber(number.toBuilder());
- }
-
- // Same as getNationalSignificantNumber(PhoneNumber), but accepts mutable PhoneNumber.Builder as
- // a parameter to decrease object creation when invoked many times.
- public static String getNationalSignificantNumber(PhoneNumber.Builder number) {
// The leading zero in the national (significant) number of an Italian phone number has a
// special meaning. Unlike the rest of the world, it indicates the number is a landline
// number. There have been plans to migrate landline numbers to start with the digit two since
@@ -1020,11 +1013,6 @@
*/
private void maybeGetFormattedExtension(PhoneNumber number, String regionCode,
StringBuffer formattedNumber) {
- maybeGetFormattedExtension(number.toBuilder(), regionCode, formattedNumber);
- }
-
- private void maybeGetFormattedExtension(PhoneNumber.Builder number, String regionCode,
- StringBuffer formattedNumber) {
if (number.hasExtension()) {
// Formats the extension part of the phone number by prefixing it with the appropriate
// extension prefix. This will be the default extension prefix, unless overridden by a
@@ -1420,14 +1408,14 @@
* country code was extracted, this will be left unchanged.
* @param storeCountryCodeSource true if the country_code_source field of phoneNumber should be
* populated.
- * @param phoneNumber the PhoneNumber.Builder object that needs to be populated with country code
+ * @param phoneNumber the PhoneNumber object that needs to be populated with country code
* and country code source. Note the country code is always populated, whereas country code
* source is only populated when keepCountryCodeSource is true.
* @return the country code extracted or 0 if none could be extracted
*/
int maybeExtractCountryCode(String number, PhoneMetadata defaultRegionMetadata,
StringBuffer nationalNumber, boolean storeCountryCodeSource,
- PhoneNumber.Builder phoneNumber)
+ PhoneNumber phoneNumber)
throws NumberParseException {
if (number.length() == 0) {
return 0;
@@ -1649,15 +1637,14 @@
*/
public PhoneNumber parse(String numberToParse, String defaultCountry)
throws NumberParseException {
- PhoneNumber.Builder phoneNumber = PhoneNumber.newBuilder();
+ PhoneNumber phoneNumber = new PhoneNumber();
parse(numberToParse, defaultCountry, phoneNumber);
- return phoneNumber.build();
+ return phoneNumber;
}
- // Same as parse(String, String), but accepts mutable PhoneNumber.Builder as a parameter to
+ // Same as parse(String, String), but accepts mutable PhoneNumber as a parameter to
// decrease object creation when invoked many times.
- public void parse(String numberToParse, String defaultCountry,
- PhoneNumber.Builder phoneNumber)
+ public void parse(String numberToParse, String defaultCountry, PhoneNumber phoneNumber)
throws NumberParseException {
if (!isValidRegionCode(defaultCountry)) {
throw new NumberParseException(NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
@@ -1684,15 +1671,15 @@
*/
public PhoneNumber parseAndKeepRawInput(String numberToParse, String defaultCountry)
throws NumberParseException {
- PhoneNumber.Builder phoneNumber = PhoneNumber.newBuilder();
+ PhoneNumber phoneNumber = new PhoneNumber();
parseAndKeepRawInput(numberToParse, defaultCountry, phoneNumber);
- return phoneNumber.build();
+ return phoneNumber;
}
- // Same as parseAndKeepRawInput(String, String), but accepts mutable PhoneNumber.Builder as a
- // parameter to decrease object creation when invoked many times.
+ // Same as parseAndKeepRawInput(String, String), but accepts mutable PhoneNumber as a parameter to
+ // decrease object creation when invoked many times.
public void parseAndKeepRawInput(String numberToParse, String defaultCountry,
- PhoneNumber.Builder phoneNumber)
+ PhoneNumber phoneNumber)
throws NumberParseException {
if (!isValidRegionCode(defaultCountry)) {
throw new NumberParseException(NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
@@ -1731,7 +1718,7 @@
* isNumberMatch().
*/
private void parseHelper(String numberToParse, String defaultCountry,
- Boolean keepRawInput, PhoneNumber.Builder phoneNumber)
+ Boolean keepRawInput, PhoneNumber phoneNumber)
throws NumberParseException {
// Extract a possible number from the string passed in (this strips leading characters that
// could not be the start of a phone number.)
@@ -1827,12 +1814,12 @@
*/
public MatchType isNumberMatch(PhoneNumber firstNumberIn, PhoneNumber secondNumberIn) {
// Make copies of the phone number so that the numbers passed in are not edited.
- PhoneNumber.Builder firstNumber = PhoneNumber.newBuilder();
+ PhoneNumber firstNumber = new PhoneNumber();
firstNumber.mergeFrom(firstNumberIn);
- PhoneNumber.Builder secondNumber = PhoneNumber.newBuilder();
+ PhoneNumber secondNumber = new PhoneNumber();
secondNumber.mergeFrom(secondNumberIn);
// First clear raw_input and country_code_source field and any empty-string extensions so that
- // we can use the proto-buffer equality method.
+ // we can use the PhoneNumber.exactlySameAs() method.
firstNumber.clearRawInput();
firstNumber.clearCountryCodeSource();
secondNumber.clearRawInput();
@@ -1846,22 +1833,19 @@
secondNumber.clearExtension();
}
- PhoneNumber number1 = firstNumber.build();
- PhoneNumber number2 = secondNumber.build();
-
// Early exit if both had extensions and these are different.
- if (number1.hasExtension() && number2.hasExtension() &&
- !number1.getExtension().equals(number2.getExtension())) {
+ if (firstNumber.hasExtension() && secondNumber.hasExtension() &&
+ !firstNumber.getExtension().equals(secondNumber.getExtension())) {
return MatchType.NO_MATCH;
}
- int firstNumberCountryCode = number1.getCountryCode();
- int secondNumberCountryCode = number2.getCountryCode();
+ int firstNumberCountryCode = firstNumber.getCountryCode();
+ int secondNumberCountryCode = secondNumber.getCountryCode();
// Both had country code specified.
if (firstNumberCountryCode != 0 && secondNumberCountryCode != 0) {
- if (areSameMessages(number1, number2)) {
+ if (firstNumber.exactlySameAs(secondNumber)) {
return MatchType.EXACT_MATCH;
} else if (firstNumberCountryCode == secondNumberCountryCode &&
- isNationalNumberSuffixOfTheOther(number1, number2)) {
+ isNationalNumberSuffixOfTheOther(firstNumber, secondNumber)) {
// A SHORT_NSN_MATCH occurs if there is a difference because of the presence or absence of
// an 'Italian leading zero', the presence or absence of an extension, or one NSN being a
// shorter variant of the other.
@@ -1872,13 +1856,12 @@
}
// Checks cases where one or both country codes were not specified. To make equality checks
// easier, we first set the country codes to be equal.
- PhoneNumber newNumber =
- PhoneNumber.newBuilder(number1).setCountryCode(secondNumberCountryCode).build();
+ firstNumber.setCountryCode(secondNumberCountryCode);
// If all else was the same, then this is an NSN_MATCH.
- if (areSameMessages(newNumber, number2)) {
+ if (firstNumber.exactlySameAs(secondNumber)) {
return MatchType.NSN_MATCH;
}
- if (isNationalNumberSuffixOfTheOther(newNumber, number2)) {
+ if (isNationalNumberSuffixOfTheOther(firstNumber, secondNumber)) {
return MatchType.SHORT_NSN_MATCH;
}
return MatchType.NO_MATCH;
@@ -1910,11 +1893,11 @@
*/
public MatchType isNumberMatch(String firstNumber, String secondNumber)
throws NumberParseException {
- PhoneNumber.Builder number1 = PhoneNumber.newBuilder();
+ PhoneNumber number1 = new PhoneNumber();
parseHelper(firstNumber, null, false, number1);
- PhoneNumber.Builder number2 = PhoneNumber.newBuilder();
+ PhoneNumber number2 = new PhoneNumber();
parseHelper(secondNumber, null, false, number2);
- return isNumberMatch(number1.build(), number2.build());
+ return isNumberMatch(number1, number2);
}
/**
@@ -1931,8 +1914,8 @@
*/
public MatchType isNumberMatch(PhoneNumber firstNumber, String secondNumber)
throws NumberParseException {
- PhoneNumber.Builder number2 = PhoneNumber.newBuilder();
+ PhoneNumber number2 = new PhoneNumber();
parseHelper(secondNumber, null, false, number2);
- return isNumberMatch(firstNumber, number2.build());
+ return isNumberMatch(firstNumber, number2);
}
}
diff --git a/java/src/com/google/i18n/phonenumbers/Phonenumber.java b/java/src/com/google/i18n/phonenumbers/Phonenumber.java
index aa79615..c67aed8 100644
--- a/java/src/com/google/i18n/phonenumbers/Phonenumber.java
+++ b/java/src/com/google/i18n/phonenumbers/Phonenumber.java
@@ -1,524 +1,185 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: phonenumber.proto
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Definition of the class representing international telephone numbers. This class is hand created
+ * based on the class file compiled from phonenumber.proto. Please refer to that file for detailed
+ * descriptions of the meaning of each field.
+ */
package com.google.i18n.phonenumbers;
+import java.io.Serializable;
+
public final class Phonenumber {
+
private Phonenumber() {}
- public static void registerAllExtensions(
- com.google.protobuf.ExtensionRegistryLite registry) {
- }
- public static final class PhoneNumber extends
- com.google.protobuf.GeneratedMessageLite {
- // Use PhoneNumber.newBuilder() to construct.
- private PhoneNumber() {
- initFields();
+ public static final class PhoneNumber implements Serializable {
+ public enum CountryCodeSource {
+ FROM_NUMBER_WITH_PLUS_SIGN,
+ FROM_NUMBER_WITH_IDD,
+ FROM_NUMBER_WITHOUT_PLUS_SIGN,
+ FROM_DEFAULT_COUNTRY
}
- private PhoneNumber(boolean noInit) {}
-
- private static final PhoneNumber defaultInstance;
- public static PhoneNumber getDefaultInstance() {
- return defaultInstance;
- }
-
- public PhoneNumber getDefaultInstanceForType() {
- return defaultInstance;
- }
-
- public enum CountryCodeSource
- implements com.google.protobuf.Internal.EnumLite {
- FROM_NUMBER_WITH_PLUS_SIGN(0, 1),
- FROM_NUMBER_WITH_IDD(1, 5),
- FROM_NUMBER_WITHOUT_PLUS_SIGN(2, 10),
- FROM_DEFAULT_COUNTRY(3, 20),
- ;
-
- public final int getNumber() { return value; }
-
- public static CountryCodeSource valueOf(int value) {
- switch (value) {
- case 1: return FROM_NUMBER_WITH_PLUS_SIGN;
- case 5: return FROM_NUMBER_WITH_IDD;
- case 10: return FROM_NUMBER_WITHOUT_PLUS_SIGN;
- case 20: return FROM_DEFAULT_COUNTRY;
- default: return null;
- }
- }
-
- public static com.google.protobuf.Internal.EnumLiteMap<CountryCodeSource>
- internalGetValueMap() {
- return internalValueMap;
- }
- private static com.google.protobuf.Internal.EnumLiteMap<CountryCodeSource>
- internalValueMap =
- new com.google.protobuf.Internal.EnumLiteMap<CountryCodeSource>() {
- public CountryCodeSource findValueByNumber(int number) {
- return CountryCodeSource.valueOf(number)
- ; }
- };
-
- private final int index;
- private final int value;
- private CountryCodeSource(int index, int value) {
- this.index = index;
- this.value = value;
- }
-
- // @@protoc_insertion_point(enum_scope:i18n.phonenumbers.PhoneNumber.CountryCodeSource)
+ public PhoneNumber() {
+ countryCodeSource_ = CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN;
}
// required int32 country_code = 1;
- public static final int COUNTRY_CODE_FIELD_NUMBER = 1;
private boolean hasCountryCode;
private int countryCode_ = 0;
public boolean hasCountryCode() { return hasCountryCode; }
public int getCountryCode() { return countryCode_; }
-
+ public PhoneNumber setCountryCode(int value) {
+ hasCountryCode = true;
+ countryCode_ = value;
+ return this;
+ }
+ public PhoneNumber clearCountryCode() {
+ hasCountryCode = false;
+ countryCode_ = 0;
+ return this;
+ }
+
// required uint64 national_number = 2;
- public static final int NATIONAL_NUMBER_FIELD_NUMBER = 2;
private boolean hasNationalNumber;
private long nationalNumber_ = 0L;
public boolean hasNationalNumber() { return hasNationalNumber; }
public long getNationalNumber() { return nationalNumber_; }
-
+ public PhoneNumber setNationalNumber(long value) {
+ hasNationalNumber = true;
+ nationalNumber_ = value;
+ return this;
+ }
+ public PhoneNumber clearNationalNumber() {
+ hasNationalNumber = false;
+ nationalNumber_ = 0L;
+ return this;
+ }
+
// optional string extension = 3;
- public static final int EXTENSION_FIELD_NUMBER = 3;
private boolean hasExtension;
private java.lang.String extension_ = "";
public boolean hasExtension() { return hasExtension; }
- public java.lang.String getExtension() { return extension_; }
-
+ public String getExtension() { return extension_; }
+ public PhoneNumber setExtension(String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ hasExtension = true;
+ extension_ = value;
+ return this;
+ }
+ public PhoneNumber clearExtension() {
+ hasExtension = false;
+ extension_ = "";
+ return this;
+ }
+
// optional bool italian_leading_zero = 4;
- public static final int ITALIAN_LEADING_ZERO_FIELD_NUMBER = 4;
private boolean hasItalianLeadingZero;
private boolean italianLeadingZero_ = false;
public boolean hasItalianLeadingZero() { return hasItalianLeadingZero; }
public boolean getItalianLeadingZero() { return italianLeadingZero_; }
-
+ public PhoneNumber setItalianLeadingZero(boolean value) {
+ hasItalianLeadingZero = true;
+ italianLeadingZero_ = value;
+ return this;
+ }
+ public PhoneNumber clearItalianLeadingZero() {
+ hasItalianLeadingZero = false;
+ italianLeadingZero_ = false;
+ return this;
+ }
+
// optional string raw_input = 5;
- public static final int RAW_INPUT_FIELD_NUMBER = 5;
private boolean hasRawInput;
- private java.lang.String rawInput_ = "";
+ private String rawInput_ = "";
public boolean hasRawInput() { return hasRawInput; }
- public java.lang.String getRawInput() { return rawInput_; }
+ public String getRawInput() { return rawInput_; }
+ public PhoneNumber setRawInput(String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ hasRawInput = true;
+ rawInput_ = value;
+ return this;
+ }
+ public PhoneNumber clearRawInput() {
+ hasRawInput = false;
+ rawInput_ = "";
+ return this;
+ }
- // optional .i18n.phonenumbers.PhoneNumber.CountryCodeSource country_code_source = 6;
- public static final int COUNTRY_CODE_SOURCE_FIELD_NUMBER = 6;
+ // optional CountryCodeSource country_code_source = 6;
private boolean hasCountryCodeSource;
- private com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource countryCodeSource_;
+ private CountryCodeSource countryCodeSource_;
public boolean hasCountryCodeSource() { return hasCountryCodeSource; }
- public com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource getCountryCodeSource() { return countryCodeSource_; }
+ public CountryCodeSource getCountryCodeSource() { return countryCodeSource_; }
+ public PhoneNumber setCountryCodeSource(CountryCodeSource value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ hasCountryCodeSource = true;
+ countryCodeSource_ = value;
+ return this;
+ }
+ public PhoneNumber clearCountryCodeSource() {
+ hasCountryCodeSource = false;
+ countryCodeSource_ = CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN;
+ return this;
+ }
- private void initFields() {
- countryCodeSource_ = com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN;
+ public final PhoneNumber clear() {
+ clearCountryCode();
+ clearNationalNumber();
+ clearExtension();
+ clearItalianLeadingZero();
+ clearRawInput();
+ clearCountryCodeSource();
+ return this;
}
- public final boolean isInitialized() {
- if (!hasCountryCode) return false;
- if (!hasNationalNumber) return false;
- return true;
- }
-
- public void writeTo(com.google.protobuf.CodedOutputStream output)
- throws java.io.IOException {
- getSerializedSize();
- if (hasCountryCode()) {
- output.writeInt32(1, getCountryCode());
- }
- if (hasNationalNumber()) {
- output.writeUInt64(2, getNationalNumber());
- }
- if (hasExtension()) {
- output.writeString(3, getExtension());
- }
- if (hasItalianLeadingZero()) {
- output.writeBool(4, getItalianLeadingZero());
- }
- if (hasRawInput()) {
- output.writeString(5, getRawInput());
- }
- if (hasCountryCodeSource()) {
- output.writeEnum(6, getCountryCodeSource().getNumber());
- }
- }
-
- private int memoizedSerializedSize = -1;
- public int getSerializedSize() {
- int size = memoizedSerializedSize;
- if (size != -1) return size;
-
- size = 0;
- if (hasCountryCode()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(1, getCountryCode());
- }
- if (hasNationalNumber()) {
- size += com.google.protobuf.CodedOutputStream
- .computeUInt64Size(2, getNationalNumber());
- }
- if (hasExtension()) {
- size += com.google.protobuf.CodedOutputStream
- .computeStringSize(3, getExtension());
- }
- if (hasItalianLeadingZero()) {
- size += com.google.protobuf.CodedOutputStream
- .computeBoolSize(4, getItalianLeadingZero());
- }
- if (hasRawInput()) {
- size += com.google.protobuf.CodedOutputStream
- .computeStringSize(5, getRawInput());
- }
- if (hasCountryCodeSource()) {
- size += com.google.protobuf.CodedOutputStream
- .computeEnumSize(6, getCountryCodeSource().getNumber());
- }
- memoizedSerializedSize = size;
- return size;
- }
-
- public static com.google.i18n.phonenumbers.Phonenumber.PhoneNumber parseFrom(
- com.google.protobuf.ByteString data)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return newBuilder().mergeFrom(data).buildParsed();
- }
- public static com.google.i18n.phonenumbers.Phonenumber.PhoneNumber parseFrom(
- com.google.protobuf.ByteString data,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return newBuilder().mergeFrom(data, extensionRegistry)
- .buildParsed();
- }
- public static com.google.i18n.phonenumbers.Phonenumber.PhoneNumber parseFrom(byte[] data)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return newBuilder().mergeFrom(data).buildParsed();
- }
- public static com.google.i18n.phonenumbers.Phonenumber.PhoneNumber parseFrom(
- byte[] data,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return newBuilder().mergeFrom(data, extensionRegistry)
- .buildParsed();
- }
- public static com.google.i18n.phonenumbers.Phonenumber.PhoneNumber parseFrom(java.io.InputStream input)
- throws java.io.IOException {
- return newBuilder().mergeFrom(input).buildParsed();
- }
- public static com.google.i18n.phonenumbers.Phonenumber.PhoneNumber parseFrom(
- java.io.InputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- return newBuilder().mergeFrom(input, extensionRegistry)
- .buildParsed();
- }
- public static com.google.i18n.phonenumbers.Phonenumber.PhoneNumber parseDelimitedFrom(java.io.InputStream input)
- throws java.io.IOException {
- Builder builder = newBuilder();
- if (builder.mergeDelimitedFrom(input)) {
- return builder.buildParsed();
- } else {
- return null;
- }
- }
- public static com.google.i18n.phonenumbers.Phonenumber.PhoneNumber parseDelimitedFrom(
- java.io.InputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- Builder builder = newBuilder();
- if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
- return builder.buildParsed();
- } else {
- return null;
- }
- }
- public static com.google.i18n.phonenumbers.Phonenumber.PhoneNumber parseFrom(
- com.google.protobuf.CodedInputStream input)
- throws java.io.IOException {
- return newBuilder().mergeFrom(input).buildParsed();
- }
- public static com.google.i18n.phonenumbers.Phonenumber.PhoneNumber parseFrom(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- return newBuilder().mergeFrom(input, extensionRegistry)
- .buildParsed();
- }
-
- public static Builder newBuilder() { return Builder.create(); }
- public Builder newBuilderForType() { return newBuilder(); }
- public static Builder newBuilder(com.google.i18n.phonenumbers.Phonenumber.PhoneNumber prototype) {
- return newBuilder().mergeFrom(prototype);
- }
- public Builder toBuilder() { return newBuilder(this); }
-
- public static final class Builder extends
- com.google.protobuf.GeneratedMessageLite.Builder<
- com.google.i18n.phonenumbers.Phonenumber.PhoneNumber, Builder> {
- private com.google.i18n.phonenumbers.Phonenumber.PhoneNumber result;
-
- // Construct using com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.newBuilder()
- private Builder() {}
-
- private static Builder create() {
- Builder builder = new Builder();
- builder.result = new com.google.i18n.phonenumbers.Phonenumber.PhoneNumber();
- return builder;
- }
-
- protected com.google.i18n.phonenumbers.Phonenumber.PhoneNumber internalGetResult() {
- return result;
- }
-
- public Builder clear() {
- if (result == null) {
- throw new IllegalStateException(
- "Cannot call clear() after build().");
- }
- result = new com.google.i18n.phonenumbers.Phonenumber.PhoneNumber();
- return this;
- }
-
- public Builder clone() {
- return create().mergeFrom(result);
- }
-
- public com.google.i18n.phonenumbers.Phonenumber.PhoneNumber getDefaultInstanceForType() {
- return com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.getDefaultInstance();
- }
-
- public boolean isInitialized() {
- return result.isInitialized();
- }
- public com.google.i18n.phonenumbers.Phonenumber.PhoneNumber build() {
- if (result != null && !isInitialized()) {
- throw newUninitializedMessageException(result);
- }
- return buildPartial();
- }
-
- private com.google.i18n.phonenumbers.Phonenumber.PhoneNumber buildParsed()
- throws com.google.protobuf.InvalidProtocolBufferException {
- if (!isInitialized()) {
- throw newUninitializedMessageException(
- result).asInvalidProtocolBufferException();
- }
- return buildPartial();
- }
-
- public com.google.i18n.phonenumbers.Phonenumber.PhoneNumber buildPartial() {
- if (result == null) {
- throw new IllegalStateException(
- "build() has already been called on this Builder.");
- }
- com.google.i18n.phonenumbers.Phonenumber.PhoneNumber returnMe = result;
- result = null;
- return returnMe;
- }
-
- public Builder mergeFrom(com.google.i18n.phonenumbers.Phonenumber.PhoneNumber other) {
- if (other == com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.getDefaultInstance()) return this;
- if (other.hasCountryCode()) {
- setCountryCode(other.getCountryCode());
- }
- if (other.hasNationalNumber()) {
- setNationalNumber(other.getNationalNumber());
- }
- if (other.hasExtension()) {
- setExtension(other.getExtension());
- }
- if (other.hasItalianLeadingZero()) {
- setItalianLeadingZero(other.getItalianLeadingZero());
- }
- if (other.hasRawInput()) {
- setRawInput(other.getRawInput());
- }
- if (other.hasCountryCodeSource()) {
- setCountryCodeSource(other.getCountryCodeSource());
- }
- return this;
- }
-
- public Builder mergeFrom(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- while (true) {
- int tag = input.readTag();
- switch (tag) {
- case 0:
- return this;
- default: {
- if (!parseUnknownField(input, extensionRegistry, tag)) {
- return this;
- }
- break;
- }
- case 8: {
- setCountryCode(input.readInt32());
- break;
- }
- case 16: {
- setNationalNumber(input.readUInt64());
- break;
- }
- case 26: {
- setExtension(input.readString());
- break;
- }
- case 32: {
- setItalianLeadingZero(input.readBool());
- break;
- }
- case 42: {
- setRawInput(input.readString());
- break;
- }
- case 48: {
- int rawValue = input.readEnum();
- com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource value = com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource.valueOf(rawValue);
- if (value != null) {
- setCountryCodeSource(value);
- }
- break;
- }
- }
- }
- }
-
-
- // required int32 country_code = 1;
- public boolean hasCountryCode() {
- return result.hasCountryCode();
- }
- public int getCountryCode() {
- return result.getCountryCode();
- }
- public Builder setCountryCode(int value) {
- result.hasCountryCode = true;
- result.countryCode_ = value;
- return this;
- }
- public Builder clearCountryCode() {
- result.hasCountryCode = false;
- result.countryCode_ = 0;
- return this;
- }
-
- // required uint64 national_number = 2;
- public boolean hasNationalNumber() {
- return result.hasNationalNumber();
- }
- public long getNationalNumber() {
- return result.getNationalNumber();
- }
- public Builder setNationalNumber(long value) {
- result.hasNationalNumber = true;
- result.nationalNumber_ = value;
- return this;
- }
- public Builder clearNationalNumber() {
- result.hasNationalNumber = false;
- result.nationalNumber_ = 0L;
- return this;
- }
-
- // optional string extension = 3;
- public boolean hasExtension() {
- return result.hasExtension();
- }
- public java.lang.String getExtension() {
- return result.getExtension();
- }
- public Builder setExtension(java.lang.String value) {
- if (value == null) {
- throw new NullPointerException();
- }
- result.hasExtension = true;
- result.extension_ = value;
- return this;
- }
- public Builder clearExtension() {
- result.hasExtension = false;
- result.extension_ = getDefaultInstance().getExtension();
- return this;
- }
-
- // optional bool italian_leading_zero = 4;
- public boolean hasItalianLeadingZero() {
- return result.hasItalianLeadingZero();
- }
- public boolean getItalianLeadingZero() {
- return result.getItalianLeadingZero();
- }
- public Builder setItalianLeadingZero(boolean value) {
- result.hasItalianLeadingZero = true;
- result.italianLeadingZero_ = value;
- return this;
- }
- public Builder clearItalianLeadingZero() {
- result.hasItalianLeadingZero = false;
- result.italianLeadingZero_ = false;
- return this;
- }
-
- // optional string raw_input = 5;
- public boolean hasRawInput() {
- return result.hasRawInput();
- }
- public java.lang.String getRawInput() {
- return result.getRawInput();
- }
- public Builder setRawInput(java.lang.String value) {
- if (value == null) {
- throw new NullPointerException();
- }
- result.hasRawInput = true;
- result.rawInput_ = value;
- return this;
- }
- public Builder clearRawInput() {
- result.hasRawInput = false;
- result.rawInput_ = getDefaultInstance().getRawInput();
- return this;
- }
- // optional .i18n.phonenumbers.PhoneNumber.CountryCodeSource country_code_source = 6;
- public boolean hasCountryCodeSource() {
- return result.hasCountryCodeSource();
+ public PhoneNumber mergeFrom(PhoneNumber other) {
+ if (other.hasCountryCode()) {
+ setCountryCode(other.getCountryCode());
}
- public com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource getCountryCodeSource() {
- return result.getCountryCodeSource();
+ if (other.hasNationalNumber()) {
+ setNationalNumber(other.getNationalNumber());
}
- public Builder setCountryCodeSource(com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource value) {
- if (value == null) {
- throw new NullPointerException();
- }
- result.hasCountryCodeSource = true;
- result.countryCodeSource_ = value;
- return this;
+ if (other.hasExtension()) {
+ setExtension(other.getExtension());
}
- public Builder clearCountryCodeSource() {
- result.hasCountryCodeSource = false;
- result.countryCodeSource_ = com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN;
- return this;
+ if (other.hasItalianLeadingZero()) {
+ setItalianLeadingZero(other.getItalianLeadingZero());
}
+ if (other.hasRawInput()) {
+ setRawInput(other.getRawInput());
+ }
+ if (other.hasCountryCodeSource()) {
+ setCountryCodeSource(other.getCountryCodeSource());
+ }
+ return this;
+ }
- // @@protoc_insertion_point(builder_scope:i18n.phonenumbers.PhoneNumber)
+ public boolean exactlySameAs(PhoneNumber other) {
+ return (countryCode_ == other.countryCode_ && nationalNumber_ == other.nationalNumber_ &&
+ extension_.equals(other.extension_) && italianLeadingZero_ == other.italianLeadingZero_ &&
+ rawInput_.equals(other.rawInput_) && countryCodeSource_ == other.countryCodeSource_);
}
-
- static {
- defaultInstance = new PhoneNumber(true);
- com.google.i18n.phonenumbers.Phonenumber.internalForceInit();
- defaultInstance.initFields();
- }
-
- // @@protoc_insertion_point(class_scope:i18n.phonenumbers.PhoneNumber)
}
-
-
- static {
- }
-
- public static void internalForceInit() {}
-
- // @@protoc_insertion_point(outer_class_scope)
}
diff --git a/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java b/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
index e1d412c..d96d9f0 100644
--- a/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
+++ b/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
@@ -60,7 +60,17 @@
super.tearDown();
}
- private Boolean assertEquals(MessageLite message1, MessageLite message2) {
+ private boolean assertEquals(PhoneNumber number1, PhoneNumber number2) {
+ if (number1 == null && number2 == null) {
+ return true;
+ }
+ if (number1 == null || number2 == null) {
+ return false;
+ }
+ return number1.exactlySameAs(number2);
+ }
+
+ private boolean assertEquals(MessageLite message1, MessageLite message2) {
return PhoneNumberUtil.areSameMessages(message1, message2);
}
@@ -121,67 +131,57 @@
}
public void testGetLengthOfGeographicalAreaCode() {
+ PhoneNumber number = new PhoneNumber();
// Google MTV, which has area code "650".
- PhoneNumber usNumber1 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(6502530000L).build();
- assertEquals(3, phoneUtil.getLengthOfGeographicalAreaCode(usNumber1));
+ number.setCountryCode(1).setNationalNumber(6502530000L);
+ assertEquals(3, phoneUtil.getLengthOfGeographicalAreaCode(number));
// A North America toll-free number, which has no area code.
- PhoneNumber usNumber2 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(8002530000L).build();
- assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(usNumber2));
+ number.setCountryCode(1).setNationalNumber(8002530000L);
+ assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(number));
// An invalid US number (1 digit shorter), which has no area code.
- PhoneNumber usNumber3 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(650253000L).build();
- assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(usNumber3));
+ number.setCountryCode(1).setNationalNumber(650253000L);
+ assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(number));
// Google London, which has area code "20".
- PhoneNumber ukNumber1 =
- PhoneNumber.newBuilder().setCountryCode(44).setNationalNumber(2070313000L).build();
- assertEquals(2, phoneUtil.getLengthOfGeographicalAreaCode(ukNumber1));
+ number.setCountryCode(44).setNationalNumber(2070313000L);
+ assertEquals(2, phoneUtil.getLengthOfGeographicalAreaCode(number));
// A UK mobile phone, which has no area code.
- PhoneNumber ukNumber2 =
- PhoneNumber.newBuilder().setCountryCode(44).setNationalNumber(7123456789L).build();
- assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(ukNumber2));
+ number.setCountryCode(44).setNationalNumber(7123456789L);
+ assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(number));
// Google Buenos Aires, which has area code "11".
- PhoneNumber arNumber =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(1155303000L).build();
- assertEquals(2, phoneUtil.getLengthOfGeographicalAreaCode(arNumber));
+ number.setCountryCode(54).setNationalNumber(1155303000L);
+ assertEquals(2, phoneUtil.getLengthOfGeographicalAreaCode(number));
// Google Sydney, which has area code "2".
- PhoneNumber auNumber =
- PhoneNumber.newBuilder().setCountryCode(61).setNationalNumber(293744000L).build();
- assertEquals(1, phoneUtil.getLengthOfGeographicalAreaCode(auNumber));
+ number.setCountryCode(61).setNationalNumber(293744000L);
+ assertEquals(1, phoneUtil.getLengthOfGeographicalAreaCode(number));
// Google Singapore. Singapore has no area code and no national prefix.
- PhoneNumber sgNumber =
- PhoneNumber.newBuilder().setCountryCode(65).setNationalNumber(65218000L).build();
- assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(sgNumber));
+ number.setCountryCode(65).setNationalNumber(65218000L);
+ assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(number));
}
public void testGetNationalSignificantNumber() {
- PhoneNumber usNumber =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(6502530000L).build();
- assertEquals("6502530000", PhoneNumberUtil.getNationalSignificantNumber(usNumber));
+ PhoneNumber number = new PhoneNumber();
+ number.setCountryCode(1).setNationalNumber(6502530000L);
+ assertEquals("6502530000", PhoneNumberUtil.getNationalSignificantNumber(number));
// An Italian mobile number.
- PhoneNumber itNumber1 =
- PhoneNumber.newBuilder().setCountryCode(39).setNationalNumber(312345678L).build();
- assertEquals("312345678", PhoneNumberUtil.getNationalSignificantNumber(itNumber1));
+ number.setCountryCode(39).setNationalNumber(312345678L);
+ assertEquals("312345678", PhoneNumberUtil.getNationalSignificantNumber(number));
// An Italian fixed line number.
- PhoneNumber itNumber2 =
- PhoneNumber.newBuilder().setCountryCode(39).setNationalNumber(236618300L)
- .setItalianLeadingZero(true).build();
- assertEquals("0236618300", PhoneNumberUtil.getNationalSignificantNumber(itNumber2));
+ number.setCountryCode(39).setNationalNumber(236618300L).setItalianLeadingZero(true);
+ assertEquals("0236618300", PhoneNumberUtil.getNationalSignificantNumber(number));
}
public void testGetExampleNumber() throws IOException {
- PhoneNumber deNumber =
- PhoneNumber.newBuilder().setCountryCode(49).setNationalNumber(30123456).build();
+ PhoneNumber deNumber = new PhoneNumber();
+ deNumber.setCountryCode(49).setNationalNumber(30123456);
assertEquals(deNumber, phoneUtil.getExampleNumber("DE"));
assertEquals(deNumber, phoneUtil.getExampleNumber("de"));
@@ -232,213 +232,211 @@
}
public void testFormatUSNumber() {
- PhoneNumber usNumber1 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(6502530000L).build();
- assertEquals("650 253 0000", phoneUtil.format(usNumber1,
+ PhoneNumber usNumber = new PhoneNumber();
+ usNumber.setCountryCode(1).setNationalNumber(6502530000L);
+ assertEquals("650 253 0000", phoneUtil.format(usNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+1 650 253 0000",
- phoneUtil.format(usNumber1,
+ phoneUtil.format(usNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
- PhoneNumber usNumber2 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(8002530000L).build();
- assertEquals("800 253 0000", phoneUtil.format(usNumber2,
+ usNumber.clear();
+ usNumber.setCountryCode(1).setNationalNumber(8002530000L);
+ assertEquals("800 253 0000", phoneUtil.format(usNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+1 800 253 0000",
- phoneUtil.format(usNumber2,
+ phoneUtil.format(usNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
- PhoneNumber usNumber3 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(9002530000L).build();
- assertEquals("900 253 0000", phoneUtil.format(usNumber3,
+ usNumber.clear();
+ usNumber.setCountryCode(1).setNationalNumber(9002530000L);
+ assertEquals("900 253 0000", phoneUtil.format(usNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+1 900 253 0000",
- phoneUtil.format(usNumber3,
+ phoneUtil.format(usNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
}
public void testFormatBSNumber() {
- PhoneNumber bsNumber1 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(2421234567L).build();
- assertEquals("242 123 4567", phoneUtil.format(bsNumber1,
+ PhoneNumber bsNumber = new PhoneNumber();
+ bsNumber.setCountryCode(1).setNationalNumber(2421234567L);
+ assertEquals("242 123 4567", phoneUtil.format(bsNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+1 242 123 4567",
- phoneUtil.format(bsNumber1,
+ phoneUtil.format(bsNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
- PhoneNumber bsNumber2 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(8002530000L).build();
- assertEquals("800 253 0000", phoneUtil.format(bsNumber2,
+ bsNumber.clear();
+ bsNumber.setCountryCode(1).setNationalNumber(8002530000L);
+ assertEquals("800 253 0000", phoneUtil.format(bsNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+1 800 253 0000",
- phoneUtil.format(bsNumber2,
+ phoneUtil.format(bsNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
- PhoneNumber bsNumber3 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(9002530000L).build();
- assertEquals("900 253 0000", phoneUtil.format(bsNumber3,
+ bsNumber.clear();
+ bsNumber.setCountryCode(1).setNationalNumber(9002530000L);
+ assertEquals("900 253 0000", phoneUtil.format(bsNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+1 900 253 0000",
- phoneUtil.format(bsNumber3,
+ phoneUtil.format(bsNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
}
public void testFormatGBNumber() {
- PhoneNumber gbNumber1 =
- PhoneNumber.newBuilder().setCountryCode(44).setNationalNumber(2087389353L).build();
- assertEquals("(020) 8738 9353", phoneUtil.format(gbNumber1,
+ PhoneNumber gbNumber = new PhoneNumber();
+ gbNumber.setCountryCode(44).setNationalNumber(2087389353L);
+ assertEquals("(020) 8738 9353", phoneUtil.format(gbNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+44 20 8738 9353",
- phoneUtil.format(gbNumber1,
+ phoneUtil.format(gbNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
- PhoneNumber gbNumber2 =
- PhoneNumber.newBuilder().setCountryCode(44).setNationalNumber(7912345678L).build();
- assertEquals("(07912) 345 678", phoneUtil.format(gbNumber2,
+ gbNumber.clear();
+ gbNumber.setCountryCode(44).setNationalNumber(7912345678L);
+ assertEquals("(07912) 345 678", phoneUtil.format(gbNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+44 7912 345 678",
- phoneUtil.format(gbNumber2,
+ phoneUtil.format(gbNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
}
public void testFormatDENumber() {
- PhoneNumber deNumber1 =
- PhoneNumber.newBuilder().setCountryCode(49).setNationalNumber(301234L).build();
- assertEquals("030 1234", phoneUtil.format(deNumber1,
+ PhoneNumber deNumber = new PhoneNumber();
+ deNumber.setCountryCode(49).setNationalNumber(301234L);
+ assertEquals("030 1234", phoneUtil.format(deNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+49 30 1234",
- phoneUtil.format(deNumber1,
+ phoneUtil.format(deNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
- PhoneNumber deNumber2 =
- PhoneNumber.newBuilder().setCountryCode(49).setNationalNumber(291123L).build();
- assertEquals("0291 123", phoneUtil.format(deNumber2,
+ deNumber.clear();
+ deNumber.setCountryCode(49).setNationalNumber(291123L);
+ assertEquals("0291 123", phoneUtil.format(deNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+49 291 123",
- phoneUtil.format(deNumber2,
+ phoneUtil.format(deNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
- PhoneNumber deNumber3 =
- PhoneNumber.newBuilder().setCountryCode(49).setNationalNumber(29112345678L).build();
- assertEquals("0291 12345678", phoneUtil.format(deNumber3,
+ deNumber.clear();
+ deNumber.setCountryCode(49).setNationalNumber(29112345678L);
+ assertEquals("0291 12345678", phoneUtil.format(deNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+49 291 12345678",
- phoneUtil.format(deNumber3,
+ phoneUtil.format(deNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
- PhoneNumber deNumber4 =
- PhoneNumber.newBuilder().setCountryCode(49).setNationalNumber(9123123L).build();
- assertEquals("09123 123", phoneUtil.format(deNumber4,
+ deNumber.clear();
+ deNumber.setCountryCode(49).setNationalNumber(9123123L);
+ assertEquals("09123 123", phoneUtil.format(deNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+49 9123 123",
- phoneUtil.format(deNumber4,
+ phoneUtil.format(deNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
- PhoneNumber deNumber5 =
- PhoneNumber.newBuilder().setCountryCode(49).setNationalNumber(1234L).build();
+ deNumber.clear();
+ deNumber.setCountryCode(49).setNationalNumber(1234L);
// Note this number is correctly formatted without national prefix. Most of the numbers that
// are treated as invalid numbers by the library are short numbers, and they are usually not
// dialed with national prefix.
- assertEquals("1234", phoneUtil.format(deNumber5,
+ assertEquals("1234", phoneUtil.format(deNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+49 1234",
- phoneUtil.format(deNumber5,
+ phoneUtil.format(deNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
}
public void testFormatITNumber() {
- PhoneNumber itNumber1 =
- PhoneNumber.newBuilder()
- .setCountryCode(39).setNationalNumber(236618300L).setItalianLeadingZero(true).build();
- assertEquals("02 3661 8300", phoneUtil.format(itNumber1,
+ PhoneNumber itNumber = new PhoneNumber();
+ itNumber.setCountryCode(39).setNationalNumber(236618300L).setItalianLeadingZero(true);
+ assertEquals("02 3661 8300", phoneUtil.format(itNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+39 02 3661 8300",
- phoneUtil.format(itNumber1,
+ phoneUtil.format(itNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
assertEquals("+390236618300",
- phoneUtil.format(itNumber1,
+ phoneUtil.format(itNumber,
PhoneNumberUtil.PhoneNumberFormat.E164));
- PhoneNumber itNumber2 =
- PhoneNumber.newBuilder().setCountryCode(39).setNationalNumber(345678901L).build();
- assertEquals("345 678 901", phoneUtil.format(itNumber2,
+ itNumber.clear();
+ itNumber.setCountryCode(39).setNationalNumber(345678901L);
+ assertEquals("345 678 901", phoneUtil.format(itNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+39 345 678 901",
- phoneUtil.format(itNumber2,
+ phoneUtil.format(itNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
assertEquals("+39345678901",
- phoneUtil.format(itNumber2,
- PhoneNumberUtil.PhoneNumberFormat.E164));
- }
+ phoneUtil.format(itNumber,
+ PhoneNumberUtil.PhoneNumberFormat.E164)); }
public void testFormatAUNumber() {
- PhoneNumber auNumber1 =
- PhoneNumber.newBuilder().setCountryCode(61).setNationalNumber(236618300L).build();
- assertEquals("02 3661 8300", phoneUtil.format(auNumber1,
+ PhoneNumber auNumber = new PhoneNumber();
+ auNumber.setCountryCode(61).setNationalNumber(236618300L);
+ assertEquals("02 3661 8300", phoneUtil.format(auNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+61 2 3661 8300",
- phoneUtil.format(auNumber1,
+ phoneUtil.format(auNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
assertEquals("+61236618300",
- phoneUtil.format(auNumber1,
+ phoneUtil.format(auNumber,
PhoneNumberUtil.PhoneNumberFormat.E164));
- PhoneNumber auNumber2 =
- PhoneNumber.newBuilder().setCountryCode(61).setNationalNumber(1800123456L).build();
- assertEquals("1800 123 456", phoneUtil.format(auNumber2,
+ auNumber.clear();
+ auNumber.setCountryCode(61).setNationalNumber(1800123456L);
+ assertEquals("1800 123 456", phoneUtil.format(auNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+61 1800 123 456",
- phoneUtil.format(auNumber2,
+ phoneUtil.format(auNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
assertEquals("+611800123456",
- phoneUtil.format(auNumber2,
+ phoneUtil.format(auNumber,
PhoneNumberUtil.PhoneNumberFormat.E164));
}
public void testFormatARNumber() {
- PhoneNumber arNumber1 =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(1187654321L).build();
- assertEquals("011 8765-4321", phoneUtil.format(arNumber1,
+ PhoneNumber arNumber = new PhoneNumber();
+ arNumber.setCountryCode(54).setNationalNumber(1187654321L);
+ assertEquals("011 8765-4321", phoneUtil.format(arNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+54 11 8765-4321",
- phoneUtil.format(arNumber1,
+ phoneUtil.format(arNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
assertEquals("+541187654321",
- phoneUtil.format(arNumber1,
+ phoneUtil.format(arNumber,
PhoneNumberUtil.PhoneNumberFormat.E164));
- PhoneNumber arNumber2 =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(91187654321L).build();
- assertEquals("011 15 8765-4321", phoneUtil.format(arNumber2,
+ arNumber.clear();
+ arNumber.setCountryCode(54).setNationalNumber(91187654321L);
+ assertEquals("011 15 8765-4321", phoneUtil.format(arNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
assertEquals("+54 9 11 8765 4321",
- phoneUtil.format(arNumber2,
+ phoneUtil.format(arNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
assertEquals("+5491187654321",
- phoneUtil.format(arNumber2,
+ phoneUtil.format(arNumber,
PhoneNumberUtil.PhoneNumberFormat.E164));
}
public void testFormatOutOfCountryCallingNumber() {
- PhoneNumber usNumber1 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(9002530000L).build();
+ PhoneNumber usNumber = new PhoneNumber();
+ usNumber.setCountryCode(1).setNationalNumber(9002530000L);
assertEquals("00 1 900 253 0000",
- phoneUtil.formatOutOfCountryCallingNumber(usNumber1, "DE"));
+ phoneUtil.formatOutOfCountryCallingNumber(usNumber, "DE"));
- PhoneNumber usNumber2 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(6502530000L).build();
+ usNumber.clear();
+ usNumber.setCountryCode(1).setNationalNumber(6502530000L);
assertEquals("1 650 253 0000",
- phoneUtil.formatOutOfCountryCallingNumber(usNumber2, "BS"));
+ phoneUtil.formatOutOfCountryCallingNumber(usNumber, "BS"));
assertEquals("0~0 1 650 253 0000",
- phoneUtil.formatOutOfCountryCallingNumber(usNumber2, "PL"));
+ phoneUtil.formatOutOfCountryCallingNumber(usNumber, "PL"));
- PhoneNumber gbNumber =
- PhoneNumber.newBuilder().setCountryCode(44).setNationalNumber(7912345678L).build();
+ PhoneNumber gbNumber = new PhoneNumber();
+ gbNumber.setCountryCode(44).setNationalNumber(7912345678L);
assertEquals("011 44 7912 345 678",
phoneUtil.formatOutOfCountryCallingNumber(gbNumber, "US"));
- PhoneNumber deNumber =
- PhoneNumber.newBuilder().setCountryCode(49).setNationalNumber(1234L).build();
+ PhoneNumber deNumber = new PhoneNumber();
+ deNumber.setCountryCode(49).setNationalNumber(1234L);
assertEquals("00 49 1234",
phoneUtil.formatOutOfCountryCallingNumber(deNumber, "GB"));
// Note this number is correctly formatted without national prefix. Most of the numbers that
@@ -447,9 +445,8 @@
assertEquals("1234",
phoneUtil.formatOutOfCountryCallingNumber(deNumber, "DE"));
- PhoneNumber itNumber =
- PhoneNumber.newBuilder().setCountryCode(39).setNationalNumber(236618300L)
- .setItalianLeadingZero(true).build();
+ PhoneNumber itNumber = new PhoneNumber();
+ itNumber.setCountryCode(39).setNationalNumber(236618300L).setItalianLeadingZero(true);
assertEquals("011 39 02 3661 8300",
phoneUtil.formatOutOfCountryCallingNumber(itNumber, "US"));
assertEquals("02 3661 8300",
@@ -457,41 +454,39 @@
assertEquals("+39 02 3661 8300",
phoneUtil.formatOutOfCountryCallingNumber(itNumber, "SG"));
- PhoneNumber sgNumber =
- PhoneNumber.newBuilder().setCountryCode(65).setNationalNumber(94777892L).build();
+ PhoneNumber sgNumber = new PhoneNumber();
+ sgNumber.setCountryCode(65).setNationalNumber(94777892L);
assertEquals("9477 7892",
phoneUtil.formatOutOfCountryCallingNumber(sgNumber, "SG"));
- PhoneNumber arNumber1 =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(91187654321L).build();
+ PhoneNumber arNumber = new PhoneNumber();
+ arNumber.setCountryCode(54).setNationalNumber(91187654321L);
assertEquals("011 54 9 11 8765 4321",
- phoneUtil.formatOutOfCountryCallingNumber(arNumber1, "US"));
+ phoneUtil.formatOutOfCountryCallingNumber(arNumber, "US"));
- PhoneNumber arNumber2 =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(91187654321L)
- .setExtension("1234").build();
+ arNumber.setExtension("1234");
assertEquals("011 54 9 11 8765 4321 ext. 1234",
- phoneUtil.formatOutOfCountryCallingNumber(arNumber2, "US"));
+ phoneUtil.formatOutOfCountryCallingNumber(arNumber, "US"));
assertEquals("0011 54 9 11 8765 4321 ext. 1234",
- phoneUtil.formatOutOfCountryCallingNumber(arNumber2, "AU"));
+ phoneUtil.formatOutOfCountryCallingNumber(arNumber, "AU"));
assertEquals("011 15 8765-4321 ext. 1234",
- phoneUtil.formatOutOfCountryCallingNumber(arNumber2, "AR"));
+ phoneUtil.formatOutOfCountryCallingNumber(arNumber, "AR"));
assertEquals("011 15 8765-4321 ext. 1234",
- phoneUtil.formatOutOfCountryCallingNumber(arNumber2, "ar"));
+ phoneUtil.formatOutOfCountryCallingNumber(arNumber, "ar"));
}
public void testFormatOutOfCountryWithPreferredIntlPrefix() {
- PhoneNumber.Builder itNumber = PhoneNumber.newBuilder();
+ PhoneNumber itNumber = new PhoneNumber();
itNumber.setCountryCode(39).setNationalNumber(236618300L).setItalianLeadingZero(true);
// This should use 0011, since that is the preferred international prefix (both 0011 and 0012
// are accepted as possible international prefixes in our test metadta.)
assertEquals("0011 39 02 3661 8300",
- phoneUtil.formatOutOfCountryCallingNumber(itNumber.build(), "AU"));
+ phoneUtil.formatOutOfCountryCallingNumber(itNumber, "AU"));
}
public void testFormatByPattern() {
- PhoneNumber usNumber =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(6502530000L).build();
+ PhoneNumber usNumber = new PhoneNumber();
+ usNumber.setCountryCode(1).setNationalNumber(6502530000L);
NumberFormat newNumFormat1 =
NumberFormat.newBuilder().setPattern("(\\d{3})(\\d{3})(\\d{4})")
.setFormat("($1) $2-$3").build();
@@ -507,9 +502,9 @@
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL,
newNumberFormats));
- PhoneNumber itNumber =
- PhoneNumber.newBuilder().setCountryCode(39).setNationalNumber(236618300L)
- .setItalianLeadingZero(true).build();
+ PhoneNumber itNumber = new PhoneNumber();
+ itNumber.setCountryCode(39).setNationalNumber(236618300L).setItalianLeadingZero(true);
+
NumberFormat newNumFormat2 =
NumberFormat.newBuilder().setPattern("(\\d{2})(\\d{5})(\\d{3})")
.setFormat("$1-$2 $3").build();
@@ -524,8 +519,8 @@
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL,
newNumberFormats));
- PhoneNumber gbNumber =
- PhoneNumber.newBuilder().setCountryCode(44).setNationalNumber(2012345678L).build();
+ PhoneNumber gbNumber = new PhoneNumber();
+ gbNumber.setCountryCode(44).setNationalNumber(2012345678L);
NumberFormat newNumFormat3 =
NumberFormat.newBuilder().setNationalPrefixFormattingRule("$NP$FG")
@@ -561,28 +556,28 @@
}
public void testFormatE164Number() {
- PhoneNumber.Builder usNumber = PhoneNumber.newBuilder();
+ PhoneNumber usNumber = new PhoneNumber();
usNumber.setCountryCode(1).setNationalNumber(6502530000L);
- assertEquals("+16502530000", phoneUtil.format(usNumber.build(),
+ assertEquals("+16502530000", phoneUtil.format(usNumber,
PhoneNumberUtil.PhoneNumberFormat.E164));
- PhoneNumber.Builder deNumber = PhoneNumber.newBuilder();
+ PhoneNumber deNumber = new PhoneNumber();
deNumber.setCountryCode(49).setNationalNumber(301234L);
- assertEquals("+49301234", phoneUtil.format(deNumber.build(),
+ assertEquals("+49301234", phoneUtil.format(deNumber,
PhoneNumberUtil.PhoneNumberFormat.E164));
}
public void testFormatNumberWithExtension() {
- PhoneNumber.Builder nzNumber = PhoneNumber.newBuilder();
+ PhoneNumber nzNumber = new PhoneNumber();
nzNumber.setCountryCode(64).setNationalNumber(33316005L).setExtension("1234");
// Uses default extension prefix:
assertEquals("03-331 6005 ext. 1234",
- phoneUtil.format(nzNumber.build(),
+ phoneUtil.format(nzNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
// Extension prefix overridden in the territory information for the US:
- PhoneNumber.Builder usNumber = PhoneNumber.newBuilder();
+ PhoneNumber usNumber = new PhoneNumber();
usNumber.setCountryCode(1).setNationalNumber(6502530000L).setExtension("4567");
assertEquals("650 253 0000 extn. 4567",
- phoneUtil.format(usNumber.build(),
+ phoneUtil.format(usNumber,
PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
}
@@ -604,197 +599,200 @@
}
public void testIsPremiumRate() {
- PhoneNumber premiumRateNumber1 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(9004433030L).build();
- assertEquals(PhoneNumberUtil.PhoneNumberType.PREMIUM_RATE,
- phoneUtil.getNumberType(premiumRateNumber1));
+ PhoneNumber premiumRateNumber = new PhoneNumber();
- PhoneNumber premiumRateNumber2 =
- PhoneNumber.newBuilder().setCountryCode(39).setNationalNumber(892123L).build();
+ premiumRateNumber.setCountryCode(1).setNationalNumber(9004433030L);
+ assertEquals(PhoneNumberUtil.PhoneNumberType.PREMIUM_RATE,
+ phoneUtil.getNumberType(premiumRateNumber));
+
+ premiumRateNumber.clear();
+ premiumRateNumber.setCountryCode(39).setNationalNumber(892123L);
assertEquals(PhoneNumberUtil.PhoneNumberType.PREMIUM_RATE,
- phoneUtil.getNumberType(premiumRateNumber2));
+ phoneUtil.getNumberType(premiumRateNumber));
- PhoneNumber premiumRateNumber3 =
- PhoneNumber.newBuilder().setCountryCode(44).setNationalNumber(9187654321L).build();
+ premiumRateNumber.clear();
+ premiumRateNumber.setCountryCode(44).setNationalNumber(9187654321L);
assertEquals(PhoneNumberUtil.PhoneNumberType.PREMIUM_RATE,
- phoneUtil.getNumberType(premiumRateNumber3));
+ phoneUtil.getNumberType(premiumRateNumber));
- PhoneNumber premiumRateNumber4 =
- PhoneNumber.newBuilder().setCountryCode(49).setNationalNumber(9001654321L).build();
+ premiumRateNumber.clear();
+ premiumRateNumber.setCountryCode(49).setNationalNumber(9001654321L);
assertEquals(PhoneNumberUtil.PhoneNumberType.PREMIUM_RATE,
- phoneUtil.getNumberType(premiumRateNumber4));
+ phoneUtil.getNumberType(premiumRateNumber));
- PhoneNumber premiumRateNumber5 =
- PhoneNumber.newBuilder().setCountryCode(49).setNationalNumber(90091234567L).build();
+ premiumRateNumber.clear();
+ premiumRateNumber.setCountryCode(49).setNationalNumber(90091234567L);
assertEquals(PhoneNumberUtil.PhoneNumberType.PREMIUM_RATE,
- phoneUtil.getNumberType(premiumRateNumber5));
+ phoneUtil.getNumberType(premiumRateNumber));
}
public void testIsTollFree() {
- PhoneNumber tollFreeNumber1
- = PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(8881234567L).build();
- assertEquals(PhoneNumberUtil.PhoneNumberType.TOLL_FREE,
- phoneUtil.getNumberType(tollFreeNumber1));
+ PhoneNumber tollFreeNumber = new PhoneNumber();
- PhoneNumber tollFreeNumber2
- = PhoneNumber.newBuilder().setCountryCode(39).setNationalNumber(803123L).build();
+ tollFreeNumber.setCountryCode(1).setNationalNumber(8881234567L);
assertEquals(PhoneNumberUtil.PhoneNumberType.TOLL_FREE,
- phoneUtil.getNumberType(tollFreeNumber2));
+ phoneUtil.getNumberType(tollFreeNumber));
- PhoneNumber tollFreeNumber3
- = PhoneNumber.newBuilder().setCountryCode(44).setNationalNumber(8012345678L).build();
+ tollFreeNumber.clear();
+ tollFreeNumber.setCountryCode(39).setNationalNumber(803123L);
assertEquals(PhoneNumberUtil.PhoneNumberType.TOLL_FREE,
- phoneUtil.getNumberType(tollFreeNumber3));
+ phoneUtil.getNumberType(tollFreeNumber));
- PhoneNumber tollFreeNumber4
- = PhoneNumber.newBuilder().setCountryCode(49).setNationalNumber(8001234567L).build();
+ tollFreeNumber.clear();
+ tollFreeNumber.setCountryCode(44).setNationalNumber(8012345678L);
assertEquals(PhoneNumberUtil.PhoneNumberType.TOLL_FREE,
- phoneUtil.getNumberType(tollFreeNumber4));
+ phoneUtil.getNumberType(tollFreeNumber));
+
+ tollFreeNumber.clear();
+ tollFreeNumber.setCountryCode(49).setNationalNumber(8001234567L);
+ assertEquals(PhoneNumberUtil.PhoneNumberType.TOLL_FREE,
+ phoneUtil.getNumberType(tollFreeNumber));
}
public void testIsMobile() {
- PhoneNumber mobileNumber1 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(2423570000L).build();
- assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE,
- phoneUtil.getNumberType(mobileNumber1));
+ PhoneNumber mobileNumber = new PhoneNumber();
- PhoneNumber mobileNumber2 =
- PhoneNumber.newBuilder().setCountryCode(39).setNationalNumber(312345678L).build();
+ // A Bahama mobile number
+ mobileNumber.setCountryCode(1).setNationalNumber(2423570000L);
assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE,
- phoneUtil.getNumberType(mobileNumber2));
+ phoneUtil.getNumberType(mobileNumber));
- PhoneNumber mobileNumber3 =
- PhoneNumber.newBuilder().setCountryCode(44).setNationalNumber(7912345678L).build();
+ mobileNumber.clear();
+ mobileNumber.setCountryCode(39).setNationalNumber(312345678L);
assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE,
- phoneUtil.getNumberType(mobileNumber3));
+ phoneUtil.getNumberType(mobileNumber));
- PhoneNumber mobileNumber4 =
- PhoneNumber.newBuilder().setCountryCode(49).setNationalNumber(15123456789L).build();
+ mobileNumber.clear();
+ mobileNumber.setCountryCode(44).setNationalNumber(7912345678L);
assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE,
- phoneUtil.getNumberType(mobileNumber4));
+ phoneUtil.getNumberType(mobileNumber));
- PhoneNumber mobileNumber5 =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(91187654321L).build();
+ mobileNumber.clear();
+ mobileNumber.setCountryCode(49).setNationalNumber(15123456789L);
assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE,
- phoneUtil.getNumberType(mobileNumber5));
+ phoneUtil.getNumberType(mobileNumber));
+
+ mobileNumber.clear();
+ mobileNumber.setCountryCode(54).setNationalNumber(91187654321L);
+ assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE,
+ phoneUtil.getNumberType(mobileNumber));
}
public void testIsFixedLine() {
+ PhoneNumber fixedLineNumber = new PhoneNumber();
+
// A Bahama fixed-line number
- PhoneNumber fixedLineNumber1 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(2423651234L).build();
+ fixedLineNumber.setCountryCode(1).setNationalNumber(2423651234L);
assertEquals(PhoneNumberUtil.PhoneNumberType.FIXED_LINE,
- phoneUtil.getNumberType(fixedLineNumber1));
+ phoneUtil.getNumberType(fixedLineNumber));
// An Italian fixed-line number
- PhoneNumber fixedLineNumber2 =
- PhoneNumber.newBuilder().setCountryCode(39).setNationalNumber(236618300L)
- .setItalianLeadingZero(true).build();
+ fixedLineNumber.clear();
+ fixedLineNumber.setCountryCode(39).setNationalNumber(236618300L).setItalianLeadingZero(true);
assertEquals(PhoneNumberUtil.PhoneNumberType.FIXED_LINE,
- phoneUtil.getNumberType(fixedLineNumber2));
+ phoneUtil.getNumberType(fixedLineNumber));
- PhoneNumber fixedLineNumber3 =
- PhoneNumber.newBuilder().setCountryCode(44).setNationalNumber(2012345678L).build();
+ fixedLineNumber.clear();
+ fixedLineNumber.setCountryCode(44).setNationalNumber(2012345678L);
assertEquals(PhoneNumberUtil.PhoneNumberType.FIXED_LINE,
- phoneUtil.getNumberType(fixedLineNumber3));
+ phoneUtil.getNumberType(fixedLineNumber));
- PhoneNumber fixedLineNumber4 =
- PhoneNumber.newBuilder().setCountryCode(49).setNationalNumber(301234L).build();
+ fixedLineNumber.clear();
+ fixedLineNumber.setCountryCode(49).setNationalNumber(301234L);
assertEquals(PhoneNumberUtil.PhoneNumberType.FIXED_LINE,
- phoneUtil.getNumberType(fixedLineNumber4));
+ phoneUtil.getNumberType(fixedLineNumber));
}
public void testIsFixedLineAndMobile() {
- PhoneNumber fixedLineAndMobileNumber1 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(6502531111L).build();
+ PhoneNumber fixedLineAndMobileNumber = new PhoneNumber();
+ fixedLineAndMobileNumber.setCountryCode(1).setNationalNumber(6502531111L);
assertEquals(PhoneNumberUtil.PhoneNumberType.FIXED_LINE_OR_MOBILE,
- phoneUtil.getNumberType(fixedLineAndMobileNumber1));
+ phoneUtil.getNumberType(fixedLineAndMobileNumber));
- PhoneNumber fixedLineAndMobileNumber2 =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(1987654321L).build();
+ fixedLineAndMobileNumber.clear();
+ fixedLineAndMobileNumber.setCountryCode(54).setNationalNumber(1987654321L);
assertEquals(PhoneNumberUtil.PhoneNumberType.FIXED_LINE_OR_MOBILE,
- phoneUtil.getNumberType(fixedLineAndMobileNumber2));
+ phoneUtil.getNumberType(fixedLineAndMobileNumber));
}
public void testIsSharedCost() {
- PhoneNumber.Builder gbNumber = PhoneNumber.newBuilder();
+ PhoneNumber gbNumber = new PhoneNumber();
gbNumber.setCountryCode(44).setNationalNumber(8431231234L);
- assertEquals(PhoneNumberUtil.PhoneNumberType.SHARED_COST,
- phoneUtil.getNumberType(gbNumber.build()));
+ assertEquals(PhoneNumberUtil.PhoneNumberType.SHARED_COST, phoneUtil.getNumberType(gbNumber));
}
public void testIsVoip() {
- PhoneNumber.Builder gbNumber = PhoneNumber.newBuilder();
+ PhoneNumber gbNumber = new PhoneNumber();
gbNumber.setCountryCode(44).setNationalNumber(5631231234L);
- assertEquals(PhoneNumberUtil.PhoneNumberType.VOIP, phoneUtil.getNumberType(gbNumber.build()));
+ assertEquals(PhoneNumberUtil.PhoneNumberType.VOIP, phoneUtil.getNumberType(gbNumber));
}
public void testIsPersonalNumber() {
- PhoneNumber.Builder gbNumber = PhoneNumber.newBuilder();
+ PhoneNumber gbNumber = new PhoneNumber();
gbNumber.setCountryCode(44).setNationalNumber(7031231234L);
assertEquals(PhoneNumberUtil.PhoneNumberType.PERSONAL_NUMBER,
- phoneUtil.getNumberType(gbNumber.build()));
+ phoneUtil.getNumberType(gbNumber));
}
public void testIsUnknown() {
- PhoneNumber.Builder unknownNumber = PhoneNumber.newBuilder();
+ PhoneNumber unknownNumber = new PhoneNumber();
unknownNumber.setCountryCode(1).setNationalNumber(65025311111L);
assertEquals(PhoneNumberUtil.PhoneNumberType.UNKNOWN,
- phoneUtil.getNumberType(unknownNumber.build()));
+ phoneUtil.getNumberType(unknownNumber));
}
public void testIsValidNumber() {
- PhoneNumber.Builder usNumber = PhoneNumber.newBuilder();
+ PhoneNumber usNumber = new PhoneNumber();
usNumber.setCountryCode(1).setNationalNumber(6502530000L);
- assertTrue(phoneUtil.isValidNumber(usNumber.build()));
+ assertTrue(phoneUtil.isValidNumber(usNumber));
- PhoneNumber.Builder itNumber = PhoneNumber.newBuilder();
+ PhoneNumber itNumber = new PhoneNumber();
itNumber.setCountryCode(39).setNationalNumber(236618300L).setItalianLeadingZero(true);
- assertTrue(phoneUtil.isValidNumber(itNumber.build()));
+ assertTrue(phoneUtil.isValidNumber(itNumber));
- PhoneNumber.Builder gbNumber = PhoneNumber.newBuilder();
+ PhoneNumber gbNumber = new PhoneNumber();
gbNumber.setCountryCode(44).setNationalNumber(7912345678L);
- assertTrue(phoneUtil.isValidNumber(gbNumber.build()));
+ assertTrue(phoneUtil.isValidNumber(gbNumber));
- PhoneNumber.Builder nzNumber = PhoneNumber.newBuilder();
+ PhoneNumber nzNumber = new PhoneNumber();
nzNumber.setCountryCode(64).setNationalNumber(21387835L);
- assertTrue(phoneUtil.isValidNumber(nzNumber.build()));
+ assertTrue(phoneUtil.isValidNumber(nzNumber));
}
+
public void testIsValidForRegion() {
// This number is valid for the Bahamas, but is not a valid US number.
- PhoneNumber bsNumber1 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(2423232345L).build();
- assertTrue(phoneUtil.isValidNumber(bsNumber1));
- assertTrue(phoneUtil.isValidNumberForRegion(bsNumber1, "BS"));
- assertTrue(phoneUtil.isValidNumberForRegion(bsNumber1, "bs"));
- assertFalse(phoneUtil.isValidNumberForRegion(bsNumber1, "US"));
- PhoneNumber bsNumber2 =
- PhoneNumber.newBuilder(bsNumber1).setNationalNumber(2421232345L).build();
+ PhoneNumber bsNumber = new PhoneNumber();
+ bsNumber.setCountryCode(1).setNationalNumber(2423232345L);
+ assertTrue(phoneUtil.isValidNumber(bsNumber));
+ assertTrue(phoneUtil.isValidNumberForRegion(bsNumber, "BS"));
+ assertTrue(phoneUtil.isValidNumberForRegion(bsNumber, "bs"));
+ assertFalse(phoneUtil.isValidNumberForRegion(bsNumber, "US"));
+ bsNumber.setNationalNumber(2421232345L);
// This number is no longer valid.
- assertFalse(phoneUtil.isValidNumber(bsNumber2));
+ assertFalse(phoneUtil.isValidNumber(bsNumber));
}
public void testIsNotValidNumber() {
- PhoneNumber.Builder usNumber = PhoneNumber.newBuilder();
+ PhoneNumber usNumber = new PhoneNumber();
usNumber.setCountryCode(1).setNationalNumber(2530000L);
- assertFalse(phoneUtil.isValidNumber(usNumber.build()));
+ assertFalse(phoneUtil.isValidNumber(usNumber));
- PhoneNumber.Builder itNumber = PhoneNumber.newBuilder();
+ PhoneNumber itNumber = new PhoneNumber();
itNumber.setCountryCode(39).setNationalNumber(23661830000L).setItalianLeadingZero(true);
- assertFalse(phoneUtil.isValidNumber(itNumber.build()));
+ assertFalse(phoneUtil.isValidNumber(itNumber));
- PhoneNumber.Builder gbNumber = PhoneNumber.newBuilder();
+ PhoneNumber gbNumber = new PhoneNumber();
gbNumber.setCountryCode(44).setNationalNumber(791234567L);
- assertFalse(phoneUtil.isValidNumber(gbNumber.build()));
+ assertFalse(phoneUtil.isValidNumber(gbNumber));
- PhoneNumber.Builder deNumber = PhoneNumber.newBuilder();
+ PhoneNumber deNumber = new PhoneNumber();
deNumber.setCountryCode(49).setNationalNumber(1234L);
- assertFalse(phoneUtil.isValidNumber(deNumber.build()));
+ assertFalse(phoneUtil.isValidNumber(deNumber));
- PhoneNumber.Builder nzNumber = PhoneNumber.newBuilder();
+ PhoneNumber nzNumber = new PhoneNumber();
nzNumber.setCountryCode(64).setNationalNumber(3316005L);
- assertFalse(phoneUtil.isValidNumber(nzNumber.build()));
+ assertFalse(phoneUtil.isValidNumber(nzNumber));
}
public void testGetRegionCodeForCountryCode() {
@@ -804,17 +802,17 @@
}
public void testGetRegionCodeForNumber() {
- PhoneNumber.Builder bsNumber = PhoneNumber.newBuilder();
+ PhoneNumber bsNumber = new PhoneNumber();
bsNumber.setCountryCode(1).setNationalNumber(2423027000L);
- assertEquals("BS", phoneUtil.getRegionCodeForNumber(bsNumber.build()));
+ assertEquals("BS", phoneUtil.getRegionCodeForNumber(bsNumber));
- PhoneNumber.Builder usNumber = PhoneNumber.newBuilder();
+ PhoneNumber usNumber = new PhoneNumber();
usNumber.setCountryCode(1).setNationalNumber(6502530000L);
- assertEquals("US", phoneUtil.getRegionCodeForNumber(usNumber.build()));
+ assertEquals("US", phoneUtil.getRegionCodeForNumber(usNumber));
- PhoneNumber.Builder gbNumber = PhoneNumber.newBuilder();
+ PhoneNumber gbNumber = new PhoneNumber();
gbNumber.setCountryCode(44).setNationalNumber(7912345678L);
- assertEquals("GB", phoneUtil.getRegionCodeForNumber(gbNumber.build()));
+ assertEquals("GB", phoneUtil.getRegionCodeForNumber(gbNumber));
}
public void testGetCountryCodeForRegion() {
@@ -834,17 +832,18 @@
}
public void testIsPossibleNumber() {
- PhoneNumber number1 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(6502530000L).build();
- assertTrue(phoneUtil.isPossibleNumber(number1));
+ PhoneNumber number = new PhoneNumber();
+ number.setCountryCode(1).setNationalNumber(6502530000L);
+ assertTrue(phoneUtil.isPossibleNumber(number));
- PhoneNumber number2 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(2530000L).build();
- assertTrue(phoneUtil.isPossibleNumber(number2));
+ number.clear();
+ number.setCountryCode(1).setNationalNumber(2530000L);
+ assertTrue(phoneUtil.isPossibleNumber(number));
- PhoneNumber number3 =
- PhoneNumber.newBuilder().setCountryCode(44).setNationalNumber(2070313000L).build();
- assertTrue(phoneUtil.isPossibleNumber(number3));
+ number.clear();
+ number.setCountryCode(44).setNationalNumber(2070313000L);
+ assertTrue(phoneUtil.isPossibleNumber(number));
+
assertTrue(phoneUtil.isPossibleNumber("+1 650 253 0000", "US"));
assertTrue(phoneUtil.isPossibleNumber("+1 650 GOO OGLE", "US"));
assertTrue(phoneUtil.isPossibleNumber("(650) 253-0000", "US"));
@@ -859,44 +858,44 @@
public void testIsPossibleNumberWithReason() {
// FYI, national numbers for country code +1 that are within 7 to 10 digits are possible.
- PhoneNumber number1 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(6502530000L).build();
+ PhoneNumber number = new PhoneNumber();
+ number.setCountryCode(1).setNationalNumber(6502530000L);
assertEquals(PhoneNumberUtil.ValidationResult.IS_POSSIBLE,
- phoneUtil.isPossibleNumberWithReason(number1));
+ phoneUtil.isPossibleNumberWithReason(number));
- PhoneNumber number2 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(2530000L).build();
+ number.clear();
+ number.setCountryCode(1).setNationalNumber(2530000L);
assertEquals(PhoneNumberUtil.ValidationResult.IS_POSSIBLE,
- phoneUtil.isPossibleNumberWithReason(number2));
+ phoneUtil.isPossibleNumberWithReason(number));
- PhoneNumber number3 =
- PhoneNumber.newBuilder().setCountryCode(0).setNationalNumber(2530000L).build();
+ number.clear();
+ number.setCountryCode(0).setNationalNumber(2530000L);
assertEquals(PhoneNumberUtil.ValidationResult.INVALID_COUNTRY_CODE,
- phoneUtil.isPossibleNumberWithReason(number3));
+ phoneUtil.isPossibleNumberWithReason(number));
- PhoneNumber number4 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(253000L).build();
+ number.clear();
+ number.setCountryCode(1).setNationalNumber(253000L);
assertEquals(PhoneNumberUtil.ValidationResult.TOO_SHORT,
- phoneUtil.isPossibleNumberWithReason(number4));
+ phoneUtil.isPossibleNumberWithReason(number));
- PhoneNumber number5 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(65025300000L).build();
+ number.clear();
+ number.setCountryCode(1).setNationalNumber(65025300000L);
assertEquals(PhoneNumberUtil.ValidationResult.TOO_LONG,
- phoneUtil.isPossibleNumberWithReason(number5));
+ phoneUtil.isPossibleNumberWithReason(number));
}
public void testIsNotPossibleNumber() {
- PhoneNumber number1 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(65025300000L).build();
- assertFalse(phoneUtil.isPossibleNumber(number1));
+ PhoneNumber number = new PhoneNumber();
+ number.setCountryCode(1).setNationalNumber(65025300000L);
+ assertFalse(phoneUtil.isPossibleNumber(number));
- PhoneNumber number2 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(253000L).build();
- assertFalse(phoneUtil.isPossibleNumber(number2));
+ number.clear();
+ number.setCountryCode(1).setNationalNumber(253000L);
+ assertFalse(phoneUtil.isPossibleNumber(number));
- PhoneNumber number3 =
- PhoneNumber.newBuilder().setCountryCode(44).setNationalNumber(300L).build();
- assertFalse(phoneUtil.isPossibleNumber(number3));
+ number.clear();
+ number.setCountryCode(44).setNationalNumber(300L);
+ assertFalse(phoneUtil.isPossibleNumber(number));
assertFalse(phoneUtil.isPossibleNumber("+1 650 253 00000", "US"));
assertFalse(phoneUtil.isPossibleNumber("(650) 253-00000", "US"));
@@ -1039,7 +1038,7 @@
}
public void testMaybeExtractCountryCode() {
- PhoneNumber.Builder number = PhoneNumber.newBuilder();
+ PhoneNumber number = new PhoneNumber();
PhoneMetadata metadata = phoneUtil.getMetadataForRegion("US");
// Note that for the US, the IDD is 011.
try {
@@ -1157,8 +1156,8 @@
}
public void testParseNationalNumber() throws Exception {
- PhoneNumber nzNumber =
- PhoneNumber.newBuilder().setCountryCode(64).setNationalNumber(33316005L).build();
+ PhoneNumber nzNumber = new PhoneNumber();
+ nzNumber.setCountryCode(64).setNationalNumber(33316005L);
// National prefix attached.
assertEquals(nzNumber, phoneUtil.parse("033316005", "NZ"));
@@ -1176,28 +1175,27 @@
assertEquals(nzNumber, phoneUtil.parse("01164 3 331 6005", "US"));
assertEquals(nzNumber, phoneUtil.parse("+64 3 331 6005", "US"));
- PhoneNumber nzNumber2 =
- PhoneNumber.newBuilder().setCountryCode(64).setNationalNumber(64123456L).build();
- assertEquals(nzNumber2, phoneUtil.parse("64(0)64123456", "NZ"));
+ nzNumber.clear();
+ nzNumber.setCountryCode(64).setNationalNumber(64123456L);
+ assertEquals(nzNumber, phoneUtil.parse("64(0)64123456", "NZ"));
// Check that using a "/" is fine in a phone number.
- PhoneNumber deNumber =
- PhoneNumber.newBuilder().setCountryCode(49).setNationalNumber(12345678L).build();
+ PhoneNumber deNumber = new PhoneNumber();
+ deNumber.setCountryCode(49).setNationalNumber(12345678L);
assertEquals(deNumber, phoneUtil.parse("123/45678", "DE"));
+ PhoneNumber usNumber = new PhoneNumber();
// Check it doesn't use the '1' as a country code when parsing if the phone number was already
// possible.
- PhoneNumber usNumber =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(1234567890L).build();
+ usNumber.setCountryCode(1).setNationalNumber(1234567890L);
assertEquals(usNumber, phoneUtil.parse("123-456-7890", "US"));
}
public void testParseNumberWithAlphaCharacters() throws Exception {
// Test case with alpha characters.
- PhoneNumber tollfreeNumber =
- PhoneNumber.newBuilder().setCountryCode(64).setNationalNumber(800332005L).build();
- assertEquals(tollfreeNumber, phoneUtil.parse("0800 DDA 005", "NZ"));
- PhoneNumber premiumNumber =
- PhoneNumber.newBuilder().setCountryCode(64).setNationalNumber(9003326005L).build();
+ PhoneNumber tollfreeNumber = new PhoneNumber();
+ tollfreeNumber.setCountryCode(64).setNationalNumber(800332005L);
+ PhoneNumber premiumNumber = new PhoneNumber();
+ premiumNumber.setCountryCode(64).setNationalNumber(9003326005L);
assertEquals(premiumNumber, phoneUtil.parse("0900 DDA 6005", "NZ"));
// Not enough alpha characters for them to be considered intentional, so they are stripped.
assertEquals(premiumNumber, phoneUtil.parse("0900 332 6005a", "NZ"));
@@ -1207,8 +1205,8 @@
}
public void testParseWithInternationalPrefixes() throws Exception {
- PhoneNumber usNumber =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(6503336000L).build();
+ PhoneNumber usNumber = new PhoneNumber();
+ usNumber.setCountryCode(1).setNationalNumber(6503336000L);
assertEquals(usNumber, phoneUtil.parse("+1 (650) 333-6000", "NZ"));
assertEquals(usNumber, phoneUtil.parse("1-650-333-6000", "US"));
// Calling the US number from Singapore by using different service providers
@@ -1223,56 +1221,56 @@
}
public void testParseWithLeadingZero() throws Exception {
- PhoneNumber itNumber =
- PhoneNumber.newBuilder().setCountryCode(39).setNationalNumber(236618300L)
- .setItalianLeadingZero(true).build();
+ PhoneNumber itNumber = new PhoneNumber();
+ itNumber.setCountryCode(39).setNationalNumber(236618300L).setItalianLeadingZero(true);
assertEquals(itNumber, phoneUtil.parse("+39 02-36618 300", "NZ"));
assertEquals(itNumber, phoneUtil.parse("02-36618 300", "IT"));
- PhoneNumber itNumber2 =
- PhoneNumber.newBuilder().setCountryCode(39).setNationalNumber(312345678L).build();
- assertEquals(itNumber2, phoneUtil.parse("312 345 678", "IT"));
+ itNumber.clear();
+ itNumber.setCountryCode(39).setNationalNumber(312345678L);
+ assertEquals(itNumber, phoneUtil.parse("312 345 678", "IT"));
}
public void testParseNationalNumberArgentina() throws Exception {
// Test parsing mobile numbers of Argentina.
- PhoneNumber arNumber =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(93435551212L).build();
+ PhoneNumber arNumber = new PhoneNumber();
+
+ arNumber.setCountryCode(54).setNationalNumber(93435551212L);
assertEquals(arNumber, phoneUtil.parse("+54 9 343 555 1212", "AR"));
assertEquals(arNumber, phoneUtil.parse("0343 15 555 1212", "AR"));
- PhoneNumber arNumber2 =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(93715654320L).build();
- assertEquals(arNumber2, phoneUtil.parse("+54 9 3715 65 4320", "AR"));
- assertEquals(arNumber2, phoneUtil.parse("03715 15 65 4320", "AR"));
+ arNumber.clear();
+ arNumber.setCountryCode(54).setNationalNumber(93715654320L);
+ assertEquals(arNumber, phoneUtil.parse("+54 9 3715 65 4320", "AR"));
+ assertEquals(arNumber, phoneUtil.parse("03715 15 65 4320", "AR"));
// Test parsing fixed-line numbers of Argentina.
- PhoneNumber arNumber3 =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(1137970000L).build();
- assertEquals(arNumber3, phoneUtil.parse("+54 11 3797 0000", "AR"));
- assertEquals(arNumber3, phoneUtil.parse("011 3797 0000", "AR"));
+ arNumber.clear();
+ arNumber.setCountryCode(54).setNationalNumber(1137970000L);
+ assertEquals(arNumber, phoneUtil.parse("+54 11 3797 0000", "AR"));
+ assertEquals(arNumber, phoneUtil.parse("011 3797 0000", "AR"));
- PhoneNumber arNumber4 =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(3715654321L).build();
- assertEquals(arNumber4, phoneUtil.parse("+54 3715 65 4321", "AR"));
- assertEquals(arNumber4, phoneUtil.parse("03715 65 4321", "AR"));
+ arNumber.clear();
+ arNumber.setCountryCode(54).setNationalNumber(3715654321L);
+ assertEquals(arNumber, phoneUtil.parse("+54 3715 65 4321", "AR"));
+ assertEquals(arNumber, phoneUtil.parse("03715 65 4321", "AR"));
- PhoneNumber arNumber5 =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(2312340000L).build();
- assertEquals(arNumber5, phoneUtil.parse("+54 23 1234 0000", "AR"));
- assertEquals(arNumber5, phoneUtil.parse("023 1234 0000", "AR"));
+ arNumber.clear();
+ arNumber.setCountryCode(54).setNationalNumber(2312340000L);
+ assertEquals(arNumber, phoneUtil.parse("+54 23 1234 0000", "AR"));
+ assertEquals(arNumber, phoneUtil.parse("023 1234 0000", "AR"));
}
public void testParseWithXInNumber() throws Exception {
// Test that having an 'x' in the phone number at the start is ok and that it just gets removed.
- PhoneNumber arNumber6 =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(123456789L).build();
- assertEquals(arNumber6, phoneUtil.parse("0123456789", "AR"));
- assertEquals(arNumber6, phoneUtil.parse("(0) 123456789", "AR"));
- assertEquals(arNumber6, phoneUtil.parse("0 123456789", "AR"));
- assertEquals(arNumber6, phoneUtil.parse("(0xx) 123456789", "AR"));
- PhoneNumber arFromUs =
- PhoneNumber.newBuilder().setCountryCode(54).setNationalNumber(81429712L).build();
+ PhoneNumber arNumber = new PhoneNumber();
+ arNumber.setCountryCode(54).setNationalNumber(123456789L);
+ assertEquals(arNumber, phoneUtil.parse("0123456789", "AR"));
+ assertEquals(arNumber, phoneUtil.parse("(0) 123456789", "AR"));
+ assertEquals(arNumber, phoneUtil.parse("0 123456789", "AR"));
+ assertEquals(arNumber, phoneUtil.parse("(0xx) 123456789", "AR"));
+ PhoneNumber arFromUs = new PhoneNumber();
+ arFromUs.setCountryCode(54).setNationalNumber(81429712L);
// This test is intentionally constructed such that the number of digit after xx is larger than
// 7, so that the number won't be mistakenly treated as an extension, as we allow extensions up
// to 7 digits. This assumption is okay for now as all the countries where a carrier selection
@@ -1282,18 +1280,18 @@
public void testParseNumbersMexico() throws Exception {
// Test parsing fixed-line numbers of Mexico.
- PhoneNumber mxNumber =
- PhoneNumber.newBuilder().setCountryCode(52).setNationalNumber(4499780001L).build();
+ PhoneNumber mxNumber = new PhoneNumber();
+ mxNumber.setCountryCode(52).setNationalNumber(4499780001L);
assertEquals(mxNumber, phoneUtil.parse("+52 (449)978-0001", "MX"));
assertEquals(mxNumber, phoneUtil.parse("01 (449)978-0001", "MX"));
assertEquals(mxNumber, phoneUtil.parse("(449)978-0001", "MX"));
// Test parsing mobile numbers of Mexico.
- PhoneNumber mxNumber2 =
- PhoneNumber.newBuilder().setCountryCode(52).setNationalNumber(13312345678L).build();
- assertEquals(mxNumber2, phoneUtil.parse("+52 1 33 1234-5678", "MX"));
- assertEquals(mxNumber2, phoneUtil.parse("044 (33) 1234-5678", "MX"));
- assertEquals(mxNumber2, phoneUtil.parse("045 33 1234-5678", "MX"));
+ mxNumber.clear();
+ mxNumber.setCountryCode(52).setNationalNumber(13312345678L);
+ assertEquals(mxNumber, phoneUtil.parse("+52 1 33 1234-5678", "MX"));
+ assertEquals(mxNumber, phoneUtil.parse("044 (33) 1234-5678", "MX"));
+ assertEquals(mxNumber, phoneUtil.parse("045 33 1234-5678", "MX"));
}
public void testFailedParseOnInvalidNumbers() {
@@ -1400,30 +1398,27 @@
}
public void testParseExtensions() throws Exception {
- PhoneNumber nzNumber =
- PhoneNumber.newBuilder().setCountryCode(64).setNationalNumber(33316005L)
- .setExtension("3456").build();
+ PhoneNumber nzNumber = new PhoneNumber();
+ nzNumber.setCountryCode(64).setNationalNumber(33316005L).setExtension("3456");
assertEquals(nzNumber, phoneUtil.parse("03 331 6005 ext 3456", "NZ"));
assertEquals(nzNumber, phoneUtil.parse("03-3316005x3456", "NZ"));
assertEquals(nzNumber, phoneUtil.parse("03-3316005 int.3456", "NZ"));
assertEquals(nzNumber, phoneUtil.parse("03 3316005 #3456", "NZ"));
// Test the following do not extract extensions:
- PhoneNumber nonExtnNumber =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(180074935247L).build();
+ PhoneNumber nonExtnNumber = new PhoneNumber();
+ nonExtnNumber.setCountryCode(1).setNationalNumber(180074935247L);
assertEquals(nonExtnNumber, phoneUtil.parse("1800 six-flags", "US"));
assertEquals(nonExtnNumber, phoneUtil.parse("1800 SIX FLAGS", "US"));
assertEquals(nonExtnNumber, phoneUtil.parse("0~01 1800 7493 5247", "PL"));
assertEquals(nonExtnNumber, phoneUtil.parse("(1800) 7493.5247", "US"));
// Check that the last instance of an extension token is matched.
- PhoneNumber extnNumber =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(180074935247L)
- .setExtension("1234").build();
+ PhoneNumber extnNumber = new PhoneNumber();
+ extnNumber.setCountryCode(1).setNationalNumber(180074935247L).setExtension("1234");
assertEquals(extnNumber, phoneUtil.parse("0~01 1800 7493 5247 ~1234", "PL"));
// Verifying bug-fix where the last digit of a number was previously omitted if it was a 0 when
// extracting the extension. Also verifying a few different cases of extensions.
- PhoneNumber ukNumber =
- PhoneNumber.newBuilder().setCountryCode(44).setNationalNumber(2034567890L)
- .setExtension("456").build();
+ PhoneNumber ukNumber = new PhoneNumber();
+ ukNumber.setCountryCode(44).setNationalNumber(2034567890L).setExtension("456");
assertEquals(ukNumber, phoneUtil.parse("+44 2034567890x456", "NZ"));
assertEquals(ukNumber, phoneUtil.parse("+44 2034567890x456", "GB"));
assertEquals(ukNumber, phoneUtil.parse("+44 2034567890 x456", "GB"));
@@ -1433,9 +1428,9 @@
assertEquals(ukNumber, phoneUtil.parse("+44 2034567890 x 456 ", "GB"));
assertEquals(ukNumber, phoneUtil.parse("+44 2034567890 X 456", "GB"));
- PhoneNumber usWithExtension =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(8009013355L)
- .setExtension("7246433").build();
+ PhoneNumber usWithExtension = new PhoneNumber();
+ usWithExtension.clear();
+ usWithExtension.setCountryCode(1).setNationalNumber(8009013355L).setExtension("7246433");
assertEquals(usWithExtension, phoneUtil.parse("(800) 901-3355 x 7246433", "US"));
assertEquals(usWithExtension, phoneUtil.parse("(800) 901-3355 , ext 7246433", "US"));
assertEquals(usWithExtension,
@@ -1444,9 +1439,8 @@
assertEquals(usWithExtension, phoneUtil.parse("(800) 901-3355 ext: 7246433", "US"));
// Test that if a number has two extensions specified, we ignore the second.
- PhoneNumber usWithTwoExtensionsNumber =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(2121231234L)
- .setExtension("508").build();
+ PhoneNumber usWithTwoExtensionsNumber = new PhoneNumber();
+ usWithTwoExtensionsNumber.setCountryCode(1).setNationalNumber(2121231234L).setExtension("508");
assertEquals(usWithTwoExtensionsNumber, phoneUtil.parse("(212)123-1234 x508/x1234",
"US"));
assertEquals(usWithTwoExtensionsNumber, phoneUtil.parse("(212)123-1234 x508/ x1234",
@@ -1456,46 +1450,42 @@
// Test parsing numbers in the form (645) 123-1234-910# works, where the last 3 digits before
// the # are an extension.
- PhoneNumber usWithExtension2 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(6451231234L)
- .setExtension("910").build();
- assertEquals(usWithExtension2, phoneUtil.parse("+1 (645) 123 1234-910#", "US"));
+ usWithExtension.clear();
+ usWithExtension.setCountryCode(1).setNationalNumber(6451231234L).setExtension("910");
+ assertEquals(usWithExtension, phoneUtil.parse("+1 (645) 123 1234-910#", "US"));
}
public void testParseAndKeepRaw() throws Exception {
- PhoneNumber alphaNumericNumber1 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(180074935247L)
- .setRawInput("1800 six-flags")
- .setCountryCodeSource(CountryCodeSource.FROM_DEFAULT_COUNTRY).build();
- assertEquals(alphaNumericNumber1,
+ PhoneNumber alphaNumericNumber = new PhoneNumber();
+ alphaNumericNumber.
+ setCountryCode(1).setNationalNumber(180074935247L).setRawInput("1800 six-flags").
+ setCountryCodeSource(CountryCodeSource.FROM_DEFAULT_COUNTRY);
+ assertEquals(alphaNumericNumber,
phoneUtil.parseAndKeepRawInput("1800 six-flags", "US"));
- PhoneNumber alphaNumericNumber2 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(8007493524L)
- .setRawInput("1800 six-flag")
- .setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN).build();
- assertEquals(alphaNumericNumber2,
+ alphaNumericNumber.
+ setCountryCode(1).setNationalNumber(8007493524L).setRawInput("1800 six-flag").
+ setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN);
+ assertEquals(alphaNumericNumber,
phoneUtil.parseAndKeepRawInput("1800 six-flag", "US"));
- PhoneNumber alphaNumericNumber3 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(8007493524L)
- .setRawInput("+1800 six-flag")
- .setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN).build();
- assertEquals(alphaNumericNumber3,
+ alphaNumericNumber.
+ setCountryCode(1).setNationalNumber(8007493524L).setRawInput("+1800 six-flag").
+ setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN);
+ assertEquals(alphaNumericNumber,
phoneUtil.parseAndKeepRawInput("+1800 six-flag", "NZ"));
- PhoneNumber alphaNumericNumber4 =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(18007493524L)
- .setRawInput("1800 six-flag")
- .setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITH_IDD).build();
- assertEquals(alphaNumericNumber4,
+ alphaNumericNumber.
+ setCountryCode(1).setNationalNumber(8007493524L).setRawInput("001800 six-flag").
+ setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITH_IDD);
+ assertEquals(alphaNumericNumber,
phoneUtil.parseAndKeepRawInput("001800 six-flag", "NZ"));
}
public void testCountryWithNoNumberDesc() {
// Andorra is a country where we don't have PhoneNumberDesc info in the metadata.
- PhoneNumber adNumber =
- PhoneNumber.newBuilder().setCountryCode(376).setNationalNumber(12345L).build();
+ PhoneNumber adNumber = new PhoneNumber();
+ adNumber.setCountryCode(376).setNationalNumber(12345L);
assertEquals("+376 12345", phoneUtil.format(adNumber,
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL));
assertEquals("+37612345", phoneUtil.format(adNumber,
@@ -1507,16 +1497,16 @@
assertTrue(phoneUtil.isValidNumber(adNumber));
// Test dialing a US number from within Andorra.
- PhoneNumber usNumber =
- PhoneNumber.newBuilder().setCountryCode(1).setNationalNumber(6502530000L).build();
+ PhoneNumber usNumber = new PhoneNumber();
+ usNumber.setCountryCode(1).setNationalNumber(6502530000L);
assertEquals("00 1 650 253 0000",
phoneUtil.formatOutOfCountryCallingNumber(usNumber, "AD"));
}
public void testUnknownCountryCallingCodeForValidation() {
- PhoneNumber.Builder invalidNumber = PhoneNumber.newBuilder();
+ PhoneNumber invalidNumber = new PhoneNumber();
invalidNumber.setCountryCode(0).setNationalNumber(1234L);
- assertFalse(phoneUtil.isValidNumber(invalidNumber.build()));
+ assertFalse(phoneUtil.isValidNumber(invalidNumber));
}
public void testIsNumberMatchMatches() throws Exception {
@@ -1543,24 +1533,23 @@
assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
phoneUtil.isNumberMatch("+64 3 331-6005 extn 1234", "+6433316005#1234"));
// Test proto buffers.
- PhoneNumber nzNumber =
- PhoneNumber.newBuilder().setCountryCode(64).setNationalNumber(33316005L)
- .setExtension("3456").build();
+ PhoneNumber nzNumber = new PhoneNumber();
+ nzNumber.setCountryCode(64).setNationalNumber(33316005L).setExtension("3456");
assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
phoneUtil.isNumberMatch(nzNumber, "+643 331 6005 ext 3456"));
- PhoneNumber nzNumber2 = PhoneNumber.newBuilder(nzNumber).clearExtension().build();
+ nzNumber.clearExtension();
assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
- phoneUtil.isNumberMatch(nzNumber2, "+6403 331 6005"));
+ phoneUtil.isNumberMatch(nzNumber, "+6403 331 6005"));
// Check empty extensions are ignored.
- PhoneNumber nzNumber3 = PhoneNumber.newBuilder(nzNumber).setExtension("").build();
+ nzNumber.setExtension("");
assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
- phoneUtil.isNumberMatch(nzNumber3, "+6403 331 6005"));
+ phoneUtil.isNumberMatch(nzNumber, "+6403 331 6005"));
// Check variant with two proto buffers.
- PhoneNumber nzNumber4 =
- PhoneNumber.newBuilder().setCountryCode(64).setNationalNumber(33316005L).build();
- assertEquals("Number " + nzNumber.toString() + " did not match " + nzNumber4.toString(),
+ PhoneNumber nzNumberTwo = new PhoneNumber();
+ nzNumberTwo.setCountryCode(64).setNationalNumber(33316005L);
+ assertEquals("Number " + nzNumber.toString() + " did not match " + nzNumberTwo.toString(),
PhoneNumberUtil.MatchType.EXACT_MATCH,
- phoneUtil.isNumberMatch(nzNumber3, nzNumber4));
+ phoneUtil.isNumberMatch(nzNumber, nzNumberTwo));
}
public void testIsNumberMatchNonMatches() throws Exception {
@@ -1587,13 +1576,12 @@
phoneUtil.isNumberMatch("+64 3 331-6005", "03 331 6005"));
assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
phoneUtil.isNumberMatch("3 331-6005", "03 331 6005"));
- PhoneNumber nzNumber =
- PhoneNumber.newBuilder().setCountryCode(64).setNationalNumber(33316005L)
- .setExtension("").build();
+ PhoneNumber nzNumber = new PhoneNumber();
+ nzNumber.setCountryCode(64).setNationalNumber(33316005L).setExtension("");
assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
phoneUtil.isNumberMatch(nzNumber, "03 331 6005"));
- PhoneNumber unchangedNzNumber = PhoneNumber.newBuilder().setCountryCode(64)
- .setNationalNumber(33316005L).setExtension("").build();
+ PhoneNumber unchangedNzNumber = new PhoneNumber();
+ unchangedNzNumber.setCountryCode(64).setNationalNumber(33316005L).setExtension("");
// Check the phone number proto was not edited during the method call.
assertEquals(unchangedNzNumber, nzNumber);
}
@@ -1617,20 +1605,16 @@
assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
phoneUtil.isNumberMatch("+64 3 331-6005", "3 331 6005#1234"));
// One has Italian leading zero, one does not.
- PhoneNumber italianNumber1 =
- PhoneNumber.newBuilder().setCountryCode(39).setNationalNumber(1234L)
- .setItalianLeadingZero(true).build();
- PhoneNumber italianNumber2 =
- PhoneNumber.newBuilder().setCountryCode(39).setNationalNumber(1234L).build();
+ PhoneNumber italianNumberOne = new PhoneNumber();
+ italianNumberOne.setCountryCode(39).setNationalNumber(1234L).setItalianLeadingZero(true);
+ PhoneNumber italianNumberTwo = new PhoneNumber();
+ italianNumberTwo.setCountryCode(39).setNationalNumber(1234L);
assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
- phoneUtil.isNumberMatch(italianNumber1, italianNumber2));
+ phoneUtil.isNumberMatch(italianNumberOne, italianNumberTwo));
// One has an extension, the other has an extension of "".
- PhoneNumber italianNumber3 =
- PhoneNumber.newBuilder(italianNumber1).setExtension("1234")
- .clearItalianLeadingZero().build();
- PhoneNumber italianNumber4 =
- PhoneNumber.newBuilder(italianNumber2).setExtension("").build();
+ italianNumberOne.setExtension("1234").clearItalianLeadingZero();
+ italianNumberTwo.setExtension("");
assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
- phoneUtil.isNumberMatch(italianNumber3, italianNumber4));
+ phoneUtil.isNumberMatch(italianNumberOne, italianNumberTwo));
}
}