15724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia/* 2ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Copyright (C) 2010 The Libphonenumber Authors 35724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * 45724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * Licensed under the Apache License, Version 2.0 (the "License"); 55724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * you may not use this file except in compliance with the License. 65724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * You may obtain a copy of the License at 75724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * 85724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * http://www.apache.org/licenses/LICENSE-2.0 95724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * 105724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * Unless required by applicable law or agreed to in writing, software 115724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * distributed under the License is distributed on an "AS IS" BASIS, 125724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * See the License for the specific language governing permissions and 145724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * limitations under the License. 155724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia */ 165724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 175724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia/** 185724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * Definition of the class representing metadata for international telephone numbers. This class is 195724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * hand created based on the class file compiled from phonemetadata.proto. Please refer to that file 205724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia * for detailed descriptions of the meaning of each field. 215724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia */ 221524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia 23a77faddfc3b3e4cca8f585c82d669054aec221f4Narayan Kamathpackage com.google.i18n.phonenumbers; 241524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia 25bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jiaimport java.io.Externalizable; 26bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jiaimport java.io.IOException; 27bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jiaimport java.io.ObjectInput; 28bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jiaimport java.io.ObjectOutput; 295724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 301524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jiapublic final class Phonemetadata { 311524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private Phonemetadata() {} 32372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public static class NumberFormat implements Externalizable { 335724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private static final long serialVersionUID = 1; 345724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public NumberFormat() {} 355724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 36372bff8dd464574d36737d47e495cad14346653cShaopeng Jia /** 37372bff8dd464574d36737d47e495cad14346653cShaopeng Jia * Provides a dummy builder to 'emulate' the API of the code generated by the latest version of 38372bff8dd464574d36737d47e495cad14346653cShaopeng Jia * Protocol Buffers. This lets BuildMetadataFromXml class to build with both this hand created 39372bff8dd464574d36737d47e495cad14346653cShaopeng Jia * class and the one generated by the latest version of Protocol Buffers. 40372bff8dd464574d36737d47e495cad14346653cShaopeng Jia */ 41372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public static final class Builder extends NumberFormat { 42372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public NumberFormat build() { 43372bff8dd464574d36737d47e495cad14346653cShaopeng Jia return this; 44372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 45372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 46203cf688f8d56e2c1f9828801b113110465f39a7Shaopeng Jia 47372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public static Builder newBuilder() { 48372bff8dd464574d36737d47e495cad14346653cShaopeng Jia return new Builder(); 49372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 50372bff8dd464574d36737d47e495cad14346653cShaopeng Jia 511524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia // required string pattern = 1; 521524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasPattern; 535724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private String pattern_ = ""; 541524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasPattern() { return hasPattern; } 555724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public String getPattern() { return pattern_; } 565724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public NumberFormat setPattern(String value) { 575724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasPattern = true; 585724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia pattern_ = value; 595724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 605724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 615724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 621524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia // required string format = 2; 631524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasFormat; 645724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private String format_ = ""; 651524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasFormat() { return hasFormat; } 665724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public String getFormat() { return format_; } 675724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public NumberFormat setFormat(String value) { 685724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasFormat = true; 695724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia format_ = value; 705724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 715724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 725724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 73df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia // repeated string leading_digits_pattern = 3; 74df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia private java.util.List<String> leadingDigitsPattern_ = new java.util.ArrayList<String>(); 75372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public java.util.List<String> leadingDigitPatterns() { 76df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia return leadingDigitsPattern_; 77df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia } 78372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public int leadingDigitsPatternSize() { return leadingDigitsPattern_.size(); } 79df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia public String getLeadingDigitsPattern(int index) { 80df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia return leadingDigitsPattern_.get(index); 81df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia } 82df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia public NumberFormat addLeadingDigitsPattern(String value) { 83df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia if (value == null) { 84df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia throw new NullPointerException(); 85df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia } 86df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia leadingDigitsPattern_.add(value); 875724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 885724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 895724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 901524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia // optional string national_prefix_formatting_rule = 4; 911524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasNationalPrefixFormattingRule; 925724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private String nationalPrefixFormattingRule_ = ""; 931524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasNationalPrefixFormattingRule() { return hasNationalPrefixFormattingRule; } 945724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public String getNationalPrefixFormattingRule() { return nationalPrefixFormattingRule_; } 955724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public NumberFormat setNationalPrefixFormattingRule(String value) { 965724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasNationalPrefixFormattingRule = true; 975724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia nationalPrefixFormattingRule_ = value; 985724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 991524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 100df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia public NumberFormat clearNationalPrefixFormattingRule() { 101df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia hasNationalPrefixFormattingRule = false; 102df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia nationalPrefixFormattingRule_ = ""; 103df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia return this; 104df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia } 1055724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 106a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia // optional bool national_prefix_optional_when_formatting = 6; 107a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia private boolean hasNationalPrefixOptionalWhenFormatting; 108a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia private boolean nationalPrefixOptionalWhenFormatting_ = false; 109a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public boolean hasNationalPrefixOptionalWhenFormatting() { 110a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia return hasNationalPrefixOptionalWhenFormatting; } 111a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public boolean isNationalPrefixOptionalWhenFormatting() { 112a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia return nationalPrefixOptionalWhenFormatting_; } 113a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia public NumberFormat setNationalPrefixOptionalWhenFormatting(boolean value) { 114a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia hasNationalPrefixOptionalWhenFormatting = true; 115a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia nationalPrefixOptionalWhenFormatting_ = value; 116a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia return this; 117a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia } 118a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia 1194b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia // optional string domestic_carrier_code_formatting_rule = 5; 1204b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia private boolean hasDomesticCarrierCodeFormattingRule; 1214b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia private String domesticCarrierCodeFormattingRule_ = ""; 1224b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia public boolean hasDomesticCarrierCodeFormattingRule() { 1234b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia return hasDomesticCarrierCodeFormattingRule; } 1244b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia public String getDomesticCarrierCodeFormattingRule() { 1254b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia return domesticCarrierCodeFormattingRule_; } 1264b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia public NumberFormat setDomesticCarrierCodeFormattingRule(String value) { 1274b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia hasDomesticCarrierCodeFormattingRule = true; 1284b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia domesticCarrierCodeFormattingRule_ = value; 1294b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia return this; 1304b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia } 1314b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia 132df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia public NumberFormat mergeFrom(NumberFormat other) { 133df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia if (other.hasPattern()) { 134df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia setPattern(other.getPattern()); 135df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia } 136df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia if (other.hasFormat()) { 137df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia setFormat(other.getFormat()); 138df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia } 139372bff8dd464574d36737d47e495cad14346653cShaopeng Jia int leadingDigitsPatternSize = other.leadingDigitsPatternSize(); 140df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia for (int i = 0; i < leadingDigitsPatternSize; i++) { 141df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia addLeadingDigitsPattern(other.getLeadingDigitsPattern(i)); 142df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia } 143df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia if (other.hasNationalPrefixFormattingRule()) { 144df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia setNationalPrefixFormattingRule(other.getNationalPrefixFormattingRule()); 145df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia } 146df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia if (other.hasDomesticCarrierCodeFormattingRule()) { 147df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia setDomesticCarrierCodeFormattingRule(other.getDomesticCarrierCodeFormattingRule()); 148df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia } 149a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia setNationalPrefixOptionalWhenFormatting(other.isNationalPrefixOptionalWhenFormatting()); 150df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia return this; 151df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia } 152df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia 153bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia public void writeExternal(ObjectOutput objectOutput) throws IOException { 154bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeUTF(pattern_); 155bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeUTF(format_); 156372bff8dd464574d36737d47e495cad14346653cShaopeng Jia int leadingDigitsPatternSize = leadingDigitsPatternSize(); 157df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia objectOutput.writeInt(leadingDigitsPatternSize); 158df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia for (int i = 0; i < leadingDigitsPatternSize; i++) { 159df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia objectOutput.writeUTF(leadingDigitsPattern_.get(i)); 1601524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 161df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia 162bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasNationalPrefixFormattingRule); 163bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasNationalPrefixFormattingRule) { 164bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeUTF(nationalPrefixFormattingRule_); 1651524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 1664b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia objectOutput.writeBoolean(hasDomesticCarrierCodeFormattingRule); 1674b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia if (hasDomesticCarrierCodeFormattingRule) { 1684b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia objectOutput.writeUTF(domesticCarrierCodeFormattingRule_); 1694b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia } 170a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia objectOutput.writeBoolean(nationalPrefixOptionalWhenFormatting_); 1711524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 1725724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 173f59ccfca9dd02c4e3cf3e06b5cf184a8d0e67626Shaopeng Jia public void readExternal(ObjectInput objectInput) throws IOException { 174bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setPattern(objectInput.readUTF()); 175bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setFormat(objectInput.readUTF()); 176df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia int leadingDigitsPatternSize = objectInput.readInt(); 177df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia for (int i = 0; i < leadingDigitsPatternSize; i++) { 178df19cbfb8a1e8720bae76bb763ab29622e057c42Shaopeng Jia leadingDigitsPattern_.add(objectInput.readUTF()); 179bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 180bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (objectInput.readBoolean()) { 181bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setNationalPrefixFormattingRule(objectInput.readUTF()); 182bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 1834b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia if (objectInput.readBoolean()) { 1844b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia setDomesticCarrierCodeFormattingRule(objectInput.readUTF()); 1854b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia } 186a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia setNationalPrefixOptionalWhenFormatting(objectInput.readBoolean()); 1871524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 1881524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 1895724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 190372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public static class PhoneNumberDesc implements Externalizable { 1915724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private static final long serialVersionUID = 1; 1925724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneNumberDesc() {} 1935724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 194372bff8dd464574d36737d47e495cad14346653cShaopeng Jia /** 195372bff8dd464574d36737d47e495cad14346653cShaopeng Jia * Provides a dummy builder. 196372bff8dd464574d36737d47e495cad14346653cShaopeng Jia * 197372bff8dd464574d36737d47e495cad14346653cShaopeng Jia * @see NumberFormat.Builder 198372bff8dd464574d36737d47e495cad14346653cShaopeng Jia */ 199372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public static final class Builder extends PhoneNumberDesc { 200372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public PhoneNumberDesc build() { 201372bff8dd464574d36737d47e495cad14346653cShaopeng Jia return this; 202372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 203372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 204372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public static Builder newBuilder() { 205372bff8dd464574d36737d47e495cad14346653cShaopeng Jia return new Builder(); 206372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 207372bff8dd464574d36737d47e495cad14346653cShaopeng Jia 2081524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia // optional string national_number_pattern = 2; 2091524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasNationalNumberPattern; 2105724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private String nationalNumberPattern_ = ""; 2111524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasNationalNumberPattern() { return hasNationalNumberPattern; } 2125724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public String getNationalNumberPattern() { return nationalNumberPattern_; } 2135724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneNumberDesc setNationalNumberPattern(String value) { 2145724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasNationalNumberPattern = true; 2155724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia nationalNumberPattern_ = value; 2165724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 2175724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 2185724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 2191524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia // optional string possible_number_pattern = 3; 2201524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasPossibleNumberPattern; 2215724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private String possibleNumberPattern_ = ""; 2221524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasPossibleNumberPattern() { return hasPossibleNumberPattern; } 2235724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public String getPossibleNumberPattern() { return possibleNumberPattern_; } 2245724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneNumberDesc setPossibleNumberPattern(String value) { 2255724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasPossibleNumberPattern = true; 2265724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia possibleNumberPattern_ = value; 2275724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 2285724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 2295724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 2301524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia // optional string example_number = 6; 2311524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasExampleNumber; 2325724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private String exampleNumber_ = ""; 2331524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasExampleNumber() { return hasExampleNumber; } 2345724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public String getExampleNumber() { return exampleNumber_; } 2355724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneNumberDesc setExampleNumber(String value) { 2365724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasExampleNumber = true; 2375724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia exampleNumber_ = value; 2385724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 2391524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 2405724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 2415724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneNumberDesc mergeFrom(PhoneNumberDesc other) { 2425724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (other.hasNationalNumberPattern()) { 2435724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia setNationalNumberPattern(other.getNationalNumberPattern()); 2441524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 2455724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (other.hasPossibleNumberPattern()) { 2465724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia setPossibleNumberPattern(other.getPossibleNumberPattern()); 2471524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 2485724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (other.hasExampleNumber()) { 2495724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia setExampleNumber(other.getExampleNumber()); 2501524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 2515724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 2521524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 2535724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 2545724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public boolean exactlySameAs(PhoneNumberDesc other) { 2555724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return nationalNumberPattern_.equals(other.nationalNumberPattern_) && 2565724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia possibleNumberPattern_.equals(other.possibleNumberPattern_) && 2575724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia exampleNumber_.equals(other.exampleNumber_); 2581524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 259bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 260bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia public void writeExternal(ObjectOutput objectOutput) throws IOException { 261bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasNationalNumberPattern); 262bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasNationalNumberPattern) { 263bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeUTF(nationalNumberPattern_); 264bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 265bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 266bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasPossibleNumberPattern); 267bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasPossibleNumberPattern) { 268bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeUTF(possibleNumberPattern_); 269bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 270bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 271bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasExampleNumber); 272bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasExampleNumber) { 273bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeUTF(exampleNumber_); 274bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 275bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 276bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 277f59ccfca9dd02c4e3cf3e06b5cf184a8d0e67626Shaopeng Jia public void readExternal(ObjectInput objectInput) throws IOException { 278bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (objectInput.readBoolean()) { 279bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setNationalNumberPattern(objectInput.readUTF()); 280bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 281bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 282bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (objectInput.readBoolean()) { 283bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setPossibleNumberPattern(objectInput.readUTF()); 284bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 285bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 286bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (objectInput.readBoolean()) { 287bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setExampleNumber(objectInput.readUTF()); 288bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 289bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 2901524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 2915724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 292372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public static class PhoneMetadata implements Externalizable { 2935724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private static final long serialVersionUID = 1; 2945724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata() {} 2955724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 296372bff8dd464574d36737d47e495cad14346653cShaopeng Jia /** 297372bff8dd464574d36737d47e495cad14346653cShaopeng Jia * Provides a dummy builder. 298372bff8dd464574d36737d47e495cad14346653cShaopeng Jia * 299372bff8dd464574d36737d47e495cad14346653cShaopeng Jia * @see NumberFormat.Builder 300372bff8dd464574d36737d47e495cad14346653cShaopeng Jia */ 301372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public static final class Builder extends PhoneMetadata { 302372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public PhoneMetadata build() { 303372bff8dd464574d36737d47e495cad14346653cShaopeng Jia return this; 304372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 305372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 306372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public static Builder newBuilder() { 307372bff8dd464574d36737d47e495cad14346653cShaopeng Jia return new Builder(); 308372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 309372bff8dd464574d36737d47e495cad14346653cShaopeng Jia 310bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc general_desc = 1; 3115724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private boolean hasGeneralDesc; 3125724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private PhoneNumberDesc generalDesc_ = null; 3135724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public boolean hasGeneralDesc() { return hasGeneralDesc; } 3145724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneNumberDesc getGeneralDesc() { return generalDesc_; } 3155724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setGeneralDesc(PhoneNumberDesc value) { 3165724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (value == null) { 3175724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia throw new NullPointerException(); 3181524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 3195724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasGeneralDesc = true; 3205724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia generalDesc_ = value; 3215724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 3221524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 3235724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 324bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc fixed_line = 2; 3251524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasFixedLine; 3265724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private PhoneNumberDesc fixedLine_ = null; 3271524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasFixedLine() { return hasFixedLine; } 3285724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneNumberDesc getFixedLine() { return fixedLine_; } 3295724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setFixedLine(PhoneNumberDesc value) { 3305724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (value == null) { 3315724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia throw new NullPointerException(); 3325724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 3335724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasFixedLine = true; 3345724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia fixedLine_ = value; 3355724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 3365724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 3375724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 338bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc mobile = 3; 3391524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasMobile; 3405724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private PhoneNumberDesc mobile_ = null; 3411524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasMobile() { return hasMobile; } 3425724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneNumberDesc getMobile() { return mobile_; } 3435724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setMobile(PhoneNumberDesc value) { 3445724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (value == null) { 3455724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia throw new NullPointerException(); 3465724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 3475724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasMobile = true; 3485724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia mobile_ = value; 3495724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 3505724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 3515724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 352bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc toll_free = 4; 3531524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasTollFree; 3545724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private PhoneNumberDesc tollFree_ = null; 3551524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasTollFree() { return hasTollFree; } 3565724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneNumberDesc getTollFree() { return tollFree_; } 3575724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setTollFree(PhoneNumberDesc value) { 3585724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (value == null) { 3595724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia throw new NullPointerException(); 3605724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 3615724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasTollFree = true; 3625724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia tollFree_ = value; 3635724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 3645724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 3655724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 366bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc premium_rate = 5; 3671524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasPremiumRate; 3685724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private PhoneNumberDesc premiumRate_ = null; 3691524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasPremiumRate() { return hasPremiumRate; } 3705724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneNumberDesc getPremiumRate() { return premiumRate_; } 3715724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setPremiumRate(PhoneNumberDesc value) { 3725724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (value == null) { 3735724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia throw new NullPointerException(); 3745724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 3755724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasPremiumRate = true; 3765724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia premiumRate_ = value; 3775724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 3785724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 3795724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 380bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc shared_cost = 6; 3811524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasSharedCost; 3825724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private PhoneNumberDesc sharedCost_ = null; 3831524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasSharedCost() { return hasSharedCost; } 3845724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneNumberDesc getSharedCost() { return sharedCost_; } 3855724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setSharedCost(PhoneNumberDesc value) { 3865724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (value == null) { 3875724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia throw new NullPointerException(); 3885724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 3895724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasSharedCost = true; 3905724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia sharedCost_ = value; 3915724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 3925724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 3935724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 394bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc personal_number = 7; 3951524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasPersonalNumber; 3965724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private PhoneNumberDesc personalNumber_ = null; 3971524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasPersonalNumber() { return hasPersonalNumber; } 3985724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneNumberDesc getPersonalNumber() { return personalNumber_; } 3995724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setPersonalNumber(PhoneNumberDesc value) { 4005724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (value == null) { 4015724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia throw new NullPointerException(); 4025724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 4035724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasPersonalNumber = true; 4045724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia personalNumber_ = value; 4055724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 4065724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 4075724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 408bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc voip = 8; 4091524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasVoip; 4105724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private PhoneNumberDesc voip_ = null; 4111524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasVoip() { return hasVoip; } 4125724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneNumberDesc getVoip() { return voip_; } 4135724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setVoip(PhoneNumberDesc value) { 4145724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (value == null) { 4155724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia throw new NullPointerException(); 4165724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 4175724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasVoip = true; 4185724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia voip_ = value; 4195724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 4205724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 4215724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 422bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc pager = 21; 423b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia private boolean hasPager; 424b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia private PhoneNumberDesc pager_ = null; 425b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia public boolean hasPager() { return hasPager; } 426b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia public PhoneNumberDesc getPager() { return pager_; } 427b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia public PhoneMetadata setPager(PhoneNumberDesc value) { 428b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia if (value == null) { 429b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia throw new NullPointerException(); 430b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia } 431b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia hasPager = true; 432b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia pager_ = value; 433b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia return this; 434b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia } 435b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia 436bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc uan = 25; 43774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia private boolean hasUan; 43874aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia private PhoneNumberDesc uan_ = null; 43974aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia public boolean hasUan() { return hasUan; } 44074aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia public PhoneNumberDesc getUan() { return uan_; } 44174aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia public PhoneMetadata setUan(PhoneNumberDesc value) { 44274aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia if (value == null) { 44374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia throw new NullPointerException(); 44474aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia } 44574aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia hasUan = true; 44674aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia uan_ = value; 44774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia return this; 44874aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia } 44974aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 450bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc emergency = 27; 451bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia private boolean hasEmergency; 452bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia private PhoneNumberDesc emergency_ = null; 453bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public boolean hasEmergency() { return hasEmergency; } 454bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public PhoneNumberDesc getEmergency() { return emergency_; } 455bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public PhoneMetadata setEmergency(PhoneNumberDesc value) { 456bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia if (value == null) { 457bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia throw new NullPointerException(); 458bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia } 459bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia hasEmergency = true; 460bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia emergency_ = value; 461bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia return this; 462bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia } 463bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia 464bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc voicemail = 28; 465528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia private boolean hasVoicemail; 466528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia private PhoneNumberDesc voicemail_ = null; 467528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia public boolean hasVoicemail() { return hasVoicemail; } 468528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia public PhoneNumberDesc getVoicemail() { return voicemail_; } 469528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia public PhoneMetadata setVoicemail(PhoneNumberDesc value) { 470528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia if (value == null) { 471528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia throw new NullPointerException(); 472528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia } 473528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia hasVoicemail = true; 474528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia voicemail_ = value; 475528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia return this; 476528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia } 477528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia 478bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc short_code = 29; 479bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia private boolean hasShortCode; 480bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia private PhoneNumberDesc shortCode_ = null; 481bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public boolean hasShortCode() { return hasShortCode; } 482bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public PhoneNumberDesc getShortCode() { return shortCode_; } 483bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public PhoneMetadata setShortCode(PhoneNumberDesc value) { 484ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia if (value == null) { 485ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia throw new NullPointerException(); 486ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 487bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia hasShortCode = true; 488bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia shortCode_ = value; 489bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia return this; 490bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia } 491bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia 492bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc standard_rate = 30; 493bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia private boolean hasStandardRate; 494bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia private PhoneNumberDesc standardRate_ = null; 495bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public boolean hasStandardRate() { return hasStandardRate; } 496bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public PhoneNumberDesc getStandardRate() { return standardRate_; } 497bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public PhoneMetadata setStandardRate(PhoneNumberDesc value) { 498bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia if (value == null) { 499bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia throw new NullPointerException(); 500bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia } 501bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia hasStandardRate = true; 502bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia standardRate_ = value; 503bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia return this; 504bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia } 505bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia 506bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc carrier_specific = 31; 507bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia private boolean hasCarrierSpecific; 508bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia private PhoneNumberDesc carrierSpecific_ = null; 509bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public boolean hasCarrierSpecific() { return hasCarrierSpecific; } 510bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public PhoneNumberDesc getCarrierSpecific() { return carrierSpecific_; } 511bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia public PhoneMetadata setCarrierSpecific(PhoneNumberDesc value) { 512bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia if (value == null) { 513bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia throw new NullPointerException(); 514bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia } 515bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia hasCarrierSpecific = true; 516bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia carrierSpecific_ = value; 517ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia return this; 518ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 519ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia 520bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia // optional PhoneNumberDesc noInternationalDialling = 24; 52174aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia private boolean hasNoInternationalDialling; 52274aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia private PhoneNumberDesc noInternationalDialling_ = null; 52374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia public boolean hasNoInternationalDialling() { return hasNoInternationalDialling; } 52474aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia public PhoneNumberDesc getNoInternationalDialling() { return noInternationalDialling_; } 52574aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia public PhoneMetadata setNoInternationalDialling(PhoneNumberDesc value) { 52674aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia if (value == null) { 52774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia throw new NullPointerException(); 52874aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia } 52974aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia hasNoInternationalDialling = true; 53074aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia noInternationalDialling_ = value; 53174aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia return this; 53274aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia } 53374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia 5341524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia // required string id = 9; 5351524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasId; 5365724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private String id_ = ""; 5371524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasId() { return hasId; } 5385724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public String getId() { return id_; } 5395724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setId(String value) { 5405724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasId = true; 5415724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia id_ = value; 5425724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 5435724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 5445724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 545f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia // optional int32 country_code = 10; 5461524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasCountryCode; 5471524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private int countryCode_ = 0; 5481524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasCountryCode() { return hasCountryCode; } 5491524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public int getCountryCode() { return countryCode_; } 5505724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setCountryCode(int value) { 5515724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasCountryCode = true; 5525724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia countryCode_ = value; 5535724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 5545724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 5555724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 556f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia // optional string international_prefix = 11; 5571524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasInternationalPrefix; 5585724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private String internationalPrefix_ = ""; 5591524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasInternationalPrefix() { return hasInternationalPrefix; } 5605724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public String getInternationalPrefix() { return internationalPrefix_; } 5615724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setInternationalPrefix(String value) { 5625724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasInternationalPrefix = true; 5635724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia internationalPrefix_ = value; 5645724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 5655724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 5665724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 5671524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia // optional string preferred_international_prefix = 17; 5681524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasPreferredInternationalPrefix; 5695724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private String preferredInternationalPrefix_ = ""; 5701524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasPreferredInternationalPrefix() { return hasPreferredInternationalPrefix; } 5715724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public String getPreferredInternationalPrefix() { return preferredInternationalPrefix_; } 5725724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setPreferredInternationalPrefix(String value) { 5735724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasPreferredInternationalPrefix = true; 5745724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia preferredInternationalPrefix_ = value; 5755724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 5765724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 5775724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 5781524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia // optional string national_prefix = 12; 5791524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasNationalPrefix; 5805724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private String nationalPrefix_ = ""; 5811524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasNationalPrefix() { return hasNationalPrefix; } 5825724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public String getNationalPrefix() { return nationalPrefix_; } 5835724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setNationalPrefix(String value) { 5845724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasNationalPrefix = true; 5855724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia nationalPrefix_ = value; 5865724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 5875724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 5885724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 5891524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia // optional string preferred_extn_prefix = 13; 5901524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasPreferredExtnPrefix; 5915724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private String preferredExtnPrefix_ = ""; 5921524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasPreferredExtnPrefix() { return hasPreferredExtnPrefix; } 5935724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public String getPreferredExtnPrefix() { return preferredExtnPrefix_; } 5945724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setPreferredExtnPrefix(String value) { 5955724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasPreferredExtnPrefix = true; 5965724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia preferredExtnPrefix_ = value; 5975724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 5985724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 5995724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 6001524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia // optional string national_prefix_for_parsing = 15; 6011524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasNationalPrefixForParsing; 6025724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private String nationalPrefixForParsing_ = ""; 6031524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasNationalPrefixForParsing() { return hasNationalPrefixForParsing; } 6045724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public String getNationalPrefixForParsing() { return nationalPrefixForParsing_; } 6055724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setNationalPrefixForParsing(String value) { 6065724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasNationalPrefixForParsing = true; 6075724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia nationalPrefixForParsing_ = value; 6085724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 6095724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 6105724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 6111524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia // optional string national_prefix_transform_rule = 16; 6121524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasNationalPrefixTransformRule; 6135724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private String nationalPrefixTransformRule_ = ""; 6141524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasNationalPrefixTransformRule() { return hasNationalPrefixTransformRule; } 6155724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public String getNationalPrefixTransformRule() { return nationalPrefixTransformRule_; } 6165724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setNationalPrefixTransformRule(String value) { 6175724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasNationalPrefixTransformRule = true; 6185724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia nationalPrefixTransformRule_ = value; 6195724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 6205724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 6215724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 6221524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false]; 6231524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean hasSameMobileAndFixedLinePattern; 6241524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia private boolean sameMobileAndFixedLinePattern_ = false; 6251524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public boolean hasSameMobileAndFixedLinePattern() { return hasSameMobileAndFixedLinePattern; } 626d1db4c508088ac27cb0815a222cf2600f16ad5b9Shaopeng Jia public boolean isSameMobileAndFixedLinePattern() { return sameMobileAndFixedLinePattern_; } 6275724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata setSameMobileAndFixedLinePattern(boolean value) { 6285724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia hasSameMobileAndFixedLinePattern = true; 6295724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia sameMobileAndFixedLinePattern_ = value; 6305724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 6315724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 6325724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 6335724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia // repeated NumberFormat number_format = 19; 634bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia private java.util.List<NumberFormat> numberFormat_ = new java.util.ArrayList<NumberFormat>(); 635372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public java.util.List<NumberFormat> numberFormats() { 6361524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia return numberFormat_; 6371524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 638372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public int numberFormatSize() { return numberFormat_.size(); } 6395724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public NumberFormat getNumberFormat(int index) { 6401524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia return numberFormat_.get(index); 6411524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 6425724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata addNumberFormat(NumberFormat value) { 6435724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (value == null) { 6445724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia throw new NullPointerException(); 6455724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 6465724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia numberFormat_.add(value); 6475724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 6485724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia } 6495724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 6505724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia // repeated NumberFormat intl_number_format = 20; 6515724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private java.util.List<NumberFormat> intlNumberFormat_ = 652bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia new java.util.ArrayList<NumberFormat>(); 653372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public java.util.List<NumberFormat> intlNumberFormats() { 6541524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia return intlNumberFormat_; 6551524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 656372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public int intlNumberFormatSize() { return intlNumberFormat_.size(); } 6575724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public NumberFormat getIntlNumberFormat(int index) { 6581524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia return intlNumberFormat_.get(index); 6591524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 660bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 6615724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadata addIntlNumberFormat(NumberFormat value) { 6625724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (value == null) { 6635724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia throw new NullPointerException(); 6641524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 6655724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia intlNumberFormat_.add(value); 6665724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 6671524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 668372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public PhoneMetadata clearIntlNumberFormat() { 669372bff8dd464574d36737d47e495cad14346653cShaopeng Jia intlNumberFormat_.clear(); 670372bff8dd464574d36737d47e495cad14346653cShaopeng Jia return this; 671372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 6725724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 6734b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia // optional bool main_country_for_code = 22 [default = false]; 6744b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia private boolean hasMainCountryForCode; 6754b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia private boolean mainCountryForCode_ = false; 6764b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia public boolean hasMainCountryForCode() { return hasMainCountryForCode; } 677372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public boolean isMainCountryForCode() { return mainCountryForCode_; } 678d1db4c508088ac27cb0815a222cf2600f16ad5b9Shaopeng Jia // Method that lets this class have the same interface as the one generated by Protocol Buffers 679d1db4c508088ac27cb0815a222cf2600f16ad5b9Shaopeng Jia // which is used by C++ build tools. 680d1db4c508088ac27cb0815a222cf2600f16ad5b9Shaopeng Jia public boolean getMainCountryForCode() { return mainCountryForCode_; } 6814b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia public PhoneMetadata setMainCountryForCode(boolean value) { 6824b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia hasMainCountryForCode = true; 6834b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia mainCountryForCode_ = value; 6844b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia return this; 6854b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia } 6864b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia 6874b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia // optional string leading_digits = 23; 6884b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia private boolean hasLeadingDigits; 6894b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia private String leadingDigits_ = ""; 6904b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia public boolean hasLeadingDigits() { return hasLeadingDigits; } 6914b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia public String getLeadingDigits() { return leadingDigits_; } 6924b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia public PhoneMetadata setLeadingDigits(String value) { 6934b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia hasLeadingDigits = true; 6944b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia leadingDigits_ = value; 6954b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia return this; 6964b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia } 6974b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia 698372bff8dd464574d36737d47e495cad14346653cShaopeng Jia // optional bool leading_zero_possible = 26 [default = false]; 699372bff8dd464574d36737d47e495cad14346653cShaopeng Jia private boolean hasLeadingZeroPossible; 700372bff8dd464574d36737d47e495cad14346653cShaopeng Jia private boolean leadingZeroPossible_ = false; 701372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public boolean hasLeadingZeroPossible() { return hasLeadingZeroPossible; } 702372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public boolean isLeadingZeroPossible() { return leadingZeroPossible_; } 703372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public PhoneMetadata setLeadingZeroPossible(boolean value) { 704372bff8dd464574d36737d47e495cad14346653cShaopeng Jia hasLeadingZeroPossible = true; 705372bff8dd464574d36737d47e495cad14346653cShaopeng Jia leadingZeroPossible_ = value; 706372bff8dd464574d36737d47e495cad14346653cShaopeng Jia return this; 707372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 708372bff8dd464574d36737d47e495cad14346653cShaopeng Jia 709f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia // optional bool mobile_number_portable_region = 32 [default = false]; 710f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia private boolean hasMobileNumberPortableRegion; 711f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia private boolean mobileNumberPortableRegion_ = false; 712f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia public boolean hasMobileNumberPortableRegion() { return hasMobileNumberPortableRegion; } 713f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia public boolean isMobileNumberPortableRegion() { return mobileNumberPortableRegion_; } 714f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia public PhoneMetadata setMobileNumberPortableRegion(boolean value) { 715f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia hasMobileNumberPortableRegion = true; 716f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia mobileNumberPortableRegion_ = value; 717f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia return this; 718f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia } 719f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia 720bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia public void writeExternal(ObjectOutput objectOutput) throws IOException { 721bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasGeneralDesc); 722bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasGeneralDesc) { 723bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia generalDesc_.writeExternal(objectOutput); 724bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 725bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasFixedLine); 726bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasFixedLine) { 727bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia fixedLine_.writeExternal(objectOutput); 728bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 729bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasMobile); 730bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasMobile) { 731bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia mobile_.writeExternal(objectOutput); 732bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 733bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasTollFree); 734bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasTollFree) { 735bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia tollFree_.writeExternal(objectOutput); 736bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 737bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasPremiumRate); 738bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasPremiumRate) { 739bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia premiumRate_.writeExternal(objectOutput); 740bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 741bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasSharedCost); 742bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasSharedCost) { 743bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia sharedCost_.writeExternal(objectOutput); 744bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 745bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasPersonalNumber); 746bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasPersonalNumber) { 747bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia personalNumber_.writeExternal(objectOutput); 748bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 749bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasVoip); 750bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasVoip) { 751bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia voip_.writeExternal(objectOutput); 752bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 753b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia objectOutput.writeBoolean(hasPager); 754b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia if (hasPager) { 755b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia pager_.writeExternal(objectOutput); 756b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia } 75774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia objectOutput.writeBoolean(hasUan); 75874aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia if (hasUan) { 75974aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia uan_.writeExternal(objectOutput); 76074aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia } 761bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia objectOutput.writeBoolean(hasEmergency); 762bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia if (hasEmergency) { 763bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia emergency_.writeExternal(objectOutput); 764bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia } 765528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia objectOutput.writeBoolean(hasVoicemail); 766528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia if (hasVoicemail) { 767528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia voicemail_.writeExternal(objectOutput); 768528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia } 769bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia objectOutput.writeBoolean(hasShortCode); 770bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia if (hasShortCode) { 771bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia shortCode_.writeExternal(objectOutput); 772bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia } 773bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia objectOutput.writeBoolean(hasStandardRate); 774bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia if (hasStandardRate) { 775bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia standardRate_.writeExternal(objectOutput); 776bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia } 777bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia objectOutput.writeBoolean(hasCarrierSpecific); 778bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia if (hasCarrierSpecific) { 779bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia carrierSpecific_.writeExternal(objectOutput); 780ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 78174aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia objectOutput.writeBoolean(hasNoInternationalDialling); 78274aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia if (hasNoInternationalDialling) { 78374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia noInternationalDialling_.writeExternal(objectOutput); 78474aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia } 785bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 786bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeUTF(id_); 787bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeInt(countryCode_); 788bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeUTF(internationalPrefix_); 789bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 790bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasPreferredInternationalPrefix); 791bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasPreferredInternationalPrefix) { 792bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeUTF(preferredInternationalPrefix_); 793bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 794bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 795bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasNationalPrefix); 796bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasNationalPrefix) { 797bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeUTF(nationalPrefix_); 798bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 799bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 800bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasPreferredExtnPrefix); 801bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasPreferredExtnPrefix) { 802bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeUTF(preferredExtnPrefix_); 803bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 804bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 805bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasNationalPrefixForParsing); 806bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasNationalPrefixForParsing) { 807bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeUTF(nationalPrefixForParsing_); 808bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 809bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 810bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(hasNationalPrefixTransformRule); 811bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasNationalPrefixTransformRule) { 812bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeUTF(nationalPrefixTransformRule_); 813bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 814bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 815bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeBoolean(sameMobileAndFixedLinePattern_); 816bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 817372bff8dd464574d36737d47e495cad14346653cShaopeng Jia int numberFormatSize = numberFormatSize(); 818bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeInt(numberFormatSize); 819bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia for (int i = 0; i < numberFormatSize; i++) { 820bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia numberFormat_.get(i).writeExternal(objectOutput); 821bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 822bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 823372bff8dd464574d36737d47e495cad14346653cShaopeng Jia int intlNumberFormatSize = intlNumberFormatSize(); 824bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeInt(intlNumberFormatSize); 825bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia for (int i = 0; i < intlNumberFormatSize; i++) { 826bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia intlNumberFormat_.get(i).writeExternal(objectOutput); 827bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 8284b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia 8294b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia objectOutput.writeBoolean(mainCountryForCode_); 8304b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia 8314b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia objectOutput.writeBoolean(hasLeadingDigits); 8324b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia if (hasLeadingDigits) { 8334b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia objectOutput.writeUTF(leadingDigits_); 8344b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia } 835372bff8dd464574d36737d47e495cad14346653cShaopeng Jia 836372bff8dd464574d36737d47e495cad14346653cShaopeng Jia objectOutput.writeBoolean(leadingZeroPossible_); 837f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia 838f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia objectOutput.writeBoolean(mobileNumberPortableRegion_); 8391524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 8405724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 841f59ccfca9dd02c4e3cf3e06b5cf184a8d0e67626Shaopeng Jia public void readExternal(ObjectInput objectInput) throws IOException { 842bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia boolean hasDesc = objectInput.readBoolean(); 843bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasDesc) { 844bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 845bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia desc.readExternal(objectInput); 846bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setGeneralDesc(desc); 847bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 848bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia hasDesc = objectInput.readBoolean(); 849bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasDesc) { 850bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 851bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia desc.readExternal(objectInput); 852bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setFixedLine(desc); 853bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 854bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia hasDesc = objectInput.readBoolean(); 855bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasDesc) { 856bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 857bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia desc.readExternal(objectInput); 858bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setMobile(desc); 859bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 860bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia hasDesc = objectInput.readBoolean(); 861bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasDesc) { 862bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 863bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia desc.readExternal(objectInput); 864bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setTollFree(desc); 865bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 866bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia hasDesc = objectInput.readBoolean(); 867bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasDesc) { 868bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 869bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia desc.readExternal(objectInput); 870bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setPremiumRate(desc); 871bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 872bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia hasDesc = objectInput.readBoolean(); 873bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasDesc) { 874bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 875bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia desc.readExternal(objectInput); 876bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setSharedCost(desc); 877bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 878bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia hasDesc = objectInput.readBoolean(); 879bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasDesc) { 880bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 881bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia desc.readExternal(objectInput); 882bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setPersonalNumber(desc); 883bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 884bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia hasDesc = objectInput.readBoolean(); 885bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasDesc) { 886bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 887bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia desc.readExternal(objectInput); 888bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setVoip(desc); 889bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 890b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia hasDesc = objectInput.readBoolean(); 891b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia if (hasDesc) { 892b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 893b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia desc.readExternal(objectInput); 894b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia setPager(desc); 895b2697412130f6d087dde01fb1a978f7e5840a5faShaopeng Jia } 89674aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia hasDesc = objectInput.readBoolean(); 89774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia if (hasDesc) { 89874aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 89974aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia desc.readExternal(objectInput); 90074aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia setUan(desc); 90174aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia } 90274aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia hasDesc = objectInput.readBoolean(); 90374aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia if (hasDesc) { 90474aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 90574aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia desc.readExternal(objectInput); 906bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia setEmergency(desc); 907bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia } 908bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia hasDesc = objectInput.readBoolean(); 909bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia if (hasDesc) { 910bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 911bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia desc.readExternal(objectInput); 912528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia setVoicemail(desc); 913528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia } 914528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia hasDesc = objectInput.readBoolean(); 915528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia if (hasDesc) { 916528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 917528b0d12a556ff0c2d16f99d56fcdd62657f433cShaopeng Jia desc.readExternal(objectInput); 918bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia setShortCode(desc); 919bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia } 920bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia hasDesc = objectInput.readBoolean(); 921bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia if (hasDesc) { 922bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 923bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia desc.readExternal(objectInput); 924bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia setStandardRate(desc); 925bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia } 926bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia hasDesc = objectInput.readBoolean(); 927bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia if (hasDesc) { 928bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 929bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia desc.readExternal(objectInput); 930bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia setCarrierSpecific(desc); 931ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia } 932ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia hasDesc = objectInput.readBoolean(); 933ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia if (hasDesc) { 934ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia PhoneNumberDesc desc = new PhoneNumberDesc(); 935ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia desc.readExternal(objectInput); 93674aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia setNoInternationalDialling(desc); 93774aa862e30b4d1b2722e90b1a8684274441a7541Shaopeng Jia } 938bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 939bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setId(objectInput.readUTF()); 940bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setCountryCode(objectInput.readInt()); 941bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setInternationalPrefix(objectInput.readUTF()); 942bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 943bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia boolean hasString = objectInput.readBoolean(); 944bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasString) { 945bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setPreferredInternationalPrefix(objectInput.readUTF()); 946bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 947bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 948bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia hasString = objectInput.readBoolean(); 949bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasString) { 950bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setNationalPrefix(objectInput.readUTF()); 951bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 952bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 953bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia hasString = objectInput.readBoolean(); 954bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasString) { 955bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setPreferredExtnPrefix(objectInput.readUTF()); 956bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 957bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 958bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia hasString = objectInput.readBoolean(); 959bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasString) { 960bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setNationalPrefixForParsing(objectInput.readUTF()); 961bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 962bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 963bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia hasString = objectInput.readBoolean(); 964bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia if (hasString) { 965bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setNationalPrefixTransformRule(objectInput.readUTF()); 966bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 967bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 968bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia setSameMobileAndFixedLinePattern(objectInput.readBoolean()); 969bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 970bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia int nationalFormatSize = objectInput.readInt(); 971bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia for (int i = 0; i < nationalFormatSize; i++) { 972bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia NumberFormat numFormat = new NumberFormat(); 973bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia numFormat.readExternal(objectInput); 974bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia numberFormat_.add(numFormat); 975bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 976bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 977bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia int intlNumberFormatSize = objectInput.readInt(); 978bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia for (int i = 0; i < intlNumberFormatSize; i++) { 979bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia NumberFormat numFormat = new NumberFormat(); 980bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia numFormat.readExternal(objectInput); 981bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia intlNumberFormat_.add(numFormat); 982bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 9834b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia 9844b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia setMainCountryForCode(objectInput.readBoolean()); 9854b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia 9864b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia hasString = objectInput.readBoolean(); 9874b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia if (hasString) { 9884b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia setLeadingDigits(objectInput.readUTF()); 9894b7846722d1a5acb0577b07e98324f744f5e7942Shaopeng Jia } 990372bff8dd464574d36737d47e495cad14346653cShaopeng Jia 991372bff8dd464574d36737d47e495cad14346653cShaopeng Jia setLeadingZeroPossible(objectInput.readBoolean()); 992f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia 993f9768eb3c8f303725fb4f899598481cbc4fb76a3Shaopeng Jia setMobileNumberPortableRegion(objectInput.readBoolean()); 9941524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 9951524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 9965724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 997372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public static class PhoneMetadataCollection implements Externalizable { 9985724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia private static final long serialVersionUID = 1; 9995724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadataCollection() {} 10005724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia 1001372bff8dd464574d36737d47e495cad14346653cShaopeng Jia /** 1002372bff8dd464574d36737d47e495cad14346653cShaopeng Jia * Provides a dummy builder. 1003372bff8dd464574d36737d47e495cad14346653cShaopeng Jia * 1004372bff8dd464574d36737d47e495cad14346653cShaopeng Jia * @see NumberFormat.Builder 1005372bff8dd464574d36737d47e495cad14346653cShaopeng Jia */ 1006372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public static final class Builder extends PhoneMetadataCollection { 1007372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public PhoneMetadataCollection build() { 1008372bff8dd464574d36737d47e495cad14346653cShaopeng Jia return this; 1009372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 1010372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 1011372bff8dd464574d36737d47e495cad14346653cShaopeng Jia public static Builder newBuilder() { 1012372bff8dd464574d36737d47e495cad14346653cShaopeng Jia return new Builder(); 1013372bff8dd464574d36737d47e495cad14346653cShaopeng Jia } 1014372bff8dd464574d36737d47e495cad14346653cShaopeng Jia 10155724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia // repeated PhoneMetadata metadata = 1; 1016bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia private java.util.List<PhoneMetadata> metadata_ = new java.util.ArrayList<PhoneMetadata>(); 1017bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 10185724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public java.util.List<PhoneMetadata> getMetadataList() { 10191524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia return metadata_; 10201524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 10211524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia public int getMetadataCount() { return metadata_.size(); } 1022bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 10235724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia public PhoneMetadataCollection addMetadata(PhoneMetadata value) { 10245724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia if (value == null) { 10255724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia throw new NullPointerException(); 10261524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 10275724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia metadata_.add(value); 10285724d94f83d41d33bfdf9fdbaddbfebb1a0e77f0Shaopeng Jia return this; 10291524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 1030bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 1031bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia public void writeExternal(ObjectOutput objectOutput) throws IOException { 1032bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia int size = getMetadataCount(); 1033bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia objectOutput.writeInt(size); 1034bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia for (int i = 0; i < size; i++) { 1035bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia metadata_.get(i).writeExternal(objectOutput); 1036bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 10371524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 1038bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia 1039f59ccfca9dd02c4e3cf3e06b5cf184a8d0e67626Shaopeng Jia public void readExternal(ObjectInput objectInput) throws IOException { 1040bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia int size = objectInput.readInt(); 1041bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia for (int i = 0; i < size; i++) { 1042bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia PhoneMetadata metadata = new PhoneMetadata(); 1043bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia metadata.readExternal(objectInput); 1044bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia metadata_.add(metadata); 1045bef3e6ee44a7666b4748f5f471d32b9a9371f2d8Shaopeng Jia } 10461524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 1047fa42140081949568565af7dc8c22f0600ad90a8aShaopeng Jia 1048fa42140081949568565af7dc8c22f0600ad90a8aShaopeng Jia public PhoneMetadataCollection clear() { 1049fa42140081949568565af7dc8c22f0600ad90a8aShaopeng Jia metadata_.clear(); 1050fa42140081949568565af7dc8c22f0600ad90a8aShaopeng Jia return this; 1051fa42140081949568565af7dc8c22f0600ad90a8aShaopeng Jia } 10521524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia } 10531524ca8c53cd2c3adee0bb2e2b95a93fee976862Shaopeng Jia} 1054