• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2010 The Libphonenumber Authors
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 /**
18  * Definition of the class representing metadata for international telephone numbers. This class is
19  * hand created based on the class file compiled from phonemetadata.proto. Please refer to that file
20  * for detailed descriptions of the meaning of each field.
21  *
22  * <p>WARNING: This API isn't stable. It is considered libphonenumber-internal and can change at any
23  * time. We only declare it as public for easy inclusion in our build tools not in this package.
24  * Clients should not refer to this file, we do not commit to support backwards-compatibility or to
25  * warn about breaking changes.
26  */
27 
28 package com.google.i18n.phonenumbers;
29 
30 import java.io.Externalizable;
31 import java.io.IOException;
32 import java.io.ObjectInput;
33 import java.io.ObjectOutput;
34 
35 public final class Phonemetadata {
Phonemetadata()36   private Phonemetadata() {}
37   public static class NumberFormat implements Externalizable {
38     private static final long serialVersionUID = 1;
NumberFormat()39     public NumberFormat() {}
40 
41     /**
42      * Provides a dummy builder to 'emulate' the API of the code generated by the latest version of
43      * Protocol Buffers. This lets BuildMetadataFromXml class to build with both this hand created
44      * class and the one generated by the latest version of Protocol Buffers.
45      */
46     public static final class Builder extends NumberFormat {
build()47       public NumberFormat build() {
48         return this;
49       }
50 
mergeFrom(NumberFormat other)51       public Builder mergeFrom(NumberFormat other) {
52         if (other.hasPattern()) {
53           setPattern(other.getPattern());
54         }
55         if (other.hasFormat()) {
56           setFormat(other.getFormat());
57         }
58         for (int i = 0; i < other.leadingDigitsPatternSize(); i++) {
59           addLeadingDigitsPattern(other.getLeadingDigitsPattern(i));
60         }
61         if (other.hasNationalPrefixFormattingRule()) {
62           setNationalPrefixFormattingRule(other.getNationalPrefixFormattingRule());
63         }
64         if (other.hasDomesticCarrierCodeFormattingRule()) {
65           setDomesticCarrierCodeFormattingRule(other.getDomesticCarrierCodeFormattingRule());
66         }
67         if (other.hasNationalPrefixOptionalWhenFormatting()) {
68           setNationalPrefixOptionalWhenFormatting(other.getNationalPrefixOptionalWhenFormatting());
69         }
70         return this;
71       }
72     }
73 
newBuilder()74     public static Builder newBuilder() {
75       return new Builder();
76     }
77 
78     // required string pattern = 1;
79     private boolean hasPattern;
80     private String pattern_ = "";
hasPattern()81     public boolean hasPattern() { return hasPattern; }
getPattern()82     public String getPattern() { return pattern_; }
setPattern(String value)83     public NumberFormat setPattern(String value) {
84       hasPattern = true;
85       pattern_ = value;
86       return this;
87     }
88 
89     // required string format = 2;
90     private boolean hasFormat;
91     private String format_ = "";
hasFormat()92     public boolean hasFormat() { return hasFormat; }
getFormat()93     public String getFormat() { return format_; }
setFormat(String value)94     public NumberFormat setFormat(String value) {
95       hasFormat = true;
96       format_ = value;
97       return this;
98     }
99 
100     // repeated string leading_digits_pattern = 3;
101     private java.util.List<String> leadingDigitsPattern_ = new java.util.ArrayList<String>();
leadingDigitPatterns()102     public java.util.List<String> leadingDigitPatterns() {
103       return leadingDigitsPattern_;
104     }
leadingDigitsPatternSize()105     public int leadingDigitsPatternSize() { return leadingDigitsPattern_.size(); }
getLeadingDigitsPattern(int index)106     public String getLeadingDigitsPattern(int index) {
107       return leadingDigitsPattern_.get(index);
108     }
addLeadingDigitsPattern(String value)109     public NumberFormat addLeadingDigitsPattern(String value) {
110       if (value == null) {
111         throw new NullPointerException();
112       }
113       leadingDigitsPattern_.add(value);
114       return this;
115     }
116 
117     // optional string national_prefix_formatting_rule = 4;
118     private boolean hasNationalPrefixFormattingRule;
119     private String nationalPrefixFormattingRule_ = "";
hasNationalPrefixFormattingRule()120     public boolean hasNationalPrefixFormattingRule() { return hasNationalPrefixFormattingRule; }
getNationalPrefixFormattingRule()121     public String getNationalPrefixFormattingRule() { return nationalPrefixFormattingRule_; }
setNationalPrefixFormattingRule(String value)122     public NumberFormat setNationalPrefixFormattingRule(String value) {
123       hasNationalPrefixFormattingRule = true;
124       nationalPrefixFormattingRule_ = value;
125       return this;
126     }
clearNationalPrefixFormattingRule()127     public NumberFormat clearNationalPrefixFormattingRule() {
128       hasNationalPrefixFormattingRule = false;
129       nationalPrefixFormattingRule_ = "";
130       return this;
131     }
132 
133     // optional bool national_prefix_optional_when_formatting = 6 [default = false];
134     private boolean hasNationalPrefixOptionalWhenFormatting;
135     private boolean nationalPrefixOptionalWhenFormatting_ = false;
hasNationalPrefixOptionalWhenFormatting()136     public boolean hasNationalPrefixOptionalWhenFormatting() {
137       return hasNationalPrefixOptionalWhenFormatting; }
getNationalPrefixOptionalWhenFormatting()138     public boolean getNationalPrefixOptionalWhenFormatting() {
139       return nationalPrefixOptionalWhenFormatting_; }
setNationalPrefixOptionalWhenFormatting(boolean value)140     public NumberFormat setNationalPrefixOptionalWhenFormatting(boolean value) {
141       hasNationalPrefixOptionalWhenFormatting = true;
142       nationalPrefixOptionalWhenFormatting_ = value;
143       return this;
144     }
145 
146     // optional string domestic_carrier_code_formatting_rule = 5;
147     private boolean hasDomesticCarrierCodeFormattingRule;
148     private String domesticCarrierCodeFormattingRule_ = "";
hasDomesticCarrierCodeFormattingRule()149     public boolean hasDomesticCarrierCodeFormattingRule() {
150       return hasDomesticCarrierCodeFormattingRule; }
getDomesticCarrierCodeFormattingRule()151     public String getDomesticCarrierCodeFormattingRule() {
152       return domesticCarrierCodeFormattingRule_; }
setDomesticCarrierCodeFormattingRule(String value)153     public NumberFormat setDomesticCarrierCodeFormattingRule(String value) {
154       hasDomesticCarrierCodeFormattingRule = true;
155       domesticCarrierCodeFormattingRule_ = value;
156       return this;
157     }
158 
writeExternal(ObjectOutput objectOutput)159     public void writeExternal(ObjectOutput objectOutput) throws IOException {
160       objectOutput.writeUTF(pattern_);
161       objectOutput.writeUTF(format_);
162       int leadingDigitsPatternSize = leadingDigitsPatternSize();
163       objectOutput.writeInt(leadingDigitsPatternSize);
164       for (int i = 0; i < leadingDigitsPatternSize; i++) {
165         objectOutput.writeUTF(leadingDigitsPattern_.get(i));
166       }
167 
168       objectOutput.writeBoolean(hasNationalPrefixFormattingRule);
169       if (hasNationalPrefixFormattingRule) {
170         objectOutput.writeUTF(nationalPrefixFormattingRule_);
171       }
172       objectOutput.writeBoolean(hasDomesticCarrierCodeFormattingRule);
173       if (hasDomesticCarrierCodeFormattingRule) {
174         objectOutput.writeUTF(domesticCarrierCodeFormattingRule_);
175       }
176       objectOutput.writeBoolean(nationalPrefixOptionalWhenFormatting_);
177     }
178 
readExternal(ObjectInput objectInput)179     public void readExternal(ObjectInput objectInput) throws IOException {
180       setPattern(objectInput.readUTF());
181       setFormat(objectInput.readUTF());
182       int leadingDigitsPatternSize = objectInput.readInt();
183       for (int i = 0; i < leadingDigitsPatternSize; i++) {
184         leadingDigitsPattern_.add(objectInput.readUTF());
185       }
186       if (objectInput.readBoolean()) {
187         setNationalPrefixFormattingRule(objectInput.readUTF());
188       }
189       if (objectInput.readBoolean()) {
190         setDomesticCarrierCodeFormattingRule(objectInput.readUTF());
191       }
192       setNationalPrefixOptionalWhenFormatting(objectInput.readBoolean());
193     }
194   }
195 
196   public static class PhoneNumberDesc implements Externalizable {
197     private static final long serialVersionUID = 1;
PhoneNumberDesc()198     public PhoneNumberDesc() {}
199 
200     /**
201      * Provides a dummy builder.
202      *
203      * @see NumberFormat.Builder
204      */
205     public static final class Builder extends PhoneNumberDesc {
build()206       public PhoneNumberDesc build() {
207         return this;
208       }
209 
mergeFrom(PhoneNumberDesc other)210       public Builder mergeFrom(PhoneNumberDesc other) {
211         if (other.hasNationalNumberPattern()) {
212           setNationalNumberPattern(other.getNationalNumberPattern());
213         }
214         for (int i = 0; i < other.getPossibleLengthCount(); i++) {
215           addPossibleLength(other.getPossibleLength(i));
216         }
217         for (int i = 0; i < other.getPossibleLengthLocalOnlyCount(); i++) {
218           addPossibleLengthLocalOnly(other.getPossibleLengthLocalOnly(i));
219         }
220         if (other.hasExampleNumber()) {
221           setExampleNumber(other.getExampleNumber());
222         }
223         return this;
224       }
225     }
226 
newBuilder()227     public static Builder newBuilder() {
228       return new Builder();
229     }
230 
231     // optional string national_number_pattern = 2;
232     private boolean hasNationalNumberPattern;
233     private String nationalNumberPattern_ = "";
hasNationalNumberPattern()234     public boolean hasNationalNumberPattern() { return hasNationalNumberPattern; }
getNationalNumberPattern()235     public String getNationalNumberPattern() { return nationalNumberPattern_; }
setNationalNumberPattern(String value)236     public PhoneNumberDesc setNationalNumberPattern(String value) {
237       hasNationalNumberPattern = true;
238       nationalNumberPattern_ = value;
239       return this;
240     }
clearNationalNumberPattern()241     public PhoneNumberDesc clearNationalNumberPattern() {
242       hasNationalNumberPattern = false;
243       nationalNumberPattern_ = "";
244       return this;
245     }
246 
247     // repeated int32 possible_length = 9;
248     private java.util.List<Integer> possibleLength_ = new java.util.ArrayList<Integer>();
getPossibleLengthList()249     public java.util.List<Integer> getPossibleLengthList() {
250       return possibleLength_;
251     }
getPossibleLengthCount()252     public int getPossibleLengthCount() { return possibleLength_.size(); }
getPossibleLength(int index)253     public int getPossibleLength(int index) {
254       return possibleLength_.get(index);
255     }
addPossibleLength(int value)256     public PhoneNumberDesc addPossibleLength(int value) {
257       possibleLength_.add(value);
258       return this;
259     }
clearPossibleLength()260     public PhoneNumberDesc clearPossibleLength() {
261       possibleLength_.clear();
262       return this;
263     }
264 
265     // repeated int32 possible_length_local_only = 10;
266     private java.util.List<Integer> possibleLengthLocalOnly_ = new java.util.ArrayList<Integer>();
getPossibleLengthLocalOnlyList()267     public java.util.List<Integer> getPossibleLengthLocalOnlyList() {
268       return possibleLengthLocalOnly_;
269     }
getPossibleLengthLocalOnlyCount()270     public int getPossibleLengthLocalOnlyCount() { return possibleLengthLocalOnly_.size(); }
getPossibleLengthLocalOnly(int index)271     public int getPossibleLengthLocalOnly(int index) {
272       return possibleLengthLocalOnly_.get(index);
273     }
addPossibleLengthLocalOnly(int value)274     public PhoneNumberDesc addPossibleLengthLocalOnly(int value) {
275       possibleLengthLocalOnly_.add(value);
276       return this;
277     }
clearPossibleLengthLocalOnly()278     public PhoneNumberDesc clearPossibleLengthLocalOnly() {
279       possibleLengthLocalOnly_.clear();
280       return this;
281     }
282 
283     // optional string example_number = 6;
284     private boolean hasExampleNumber;
285     private String exampleNumber_ = "";
hasExampleNumber()286     public boolean hasExampleNumber() { return hasExampleNumber; }
getExampleNumber()287     public String getExampleNumber() { return exampleNumber_; }
setExampleNumber(String value)288     public PhoneNumberDesc setExampleNumber(String value) {
289       hasExampleNumber = true;
290       exampleNumber_ = value;
291       return this;
292     }
clearExampleNumber()293     public PhoneNumberDesc clearExampleNumber() {
294       hasExampleNumber = false;
295       exampleNumber_ = "";
296       return this;
297     }
298 
exactlySameAs(PhoneNumberDesc other)299     public boolean exactlySameAs(PhoneNumberDesc other) {
300       return nationalNumberPattern_.equals(other.nationalNumberPattern_) &&
301           possibleLength_.equals(other.possibleLength_) &&
302           possibleLengthLocalOnly_.equals(other.possibleLengthLocalOnly_) &&
303           exampleNumber_.equals(other.exampleNumber_);
304     }
305 
writeExternal(ObjectOutput objectOutput)306     public void writeExternal(ObjectOutput objectOutput) throws IOException {
307       objectOutput.writeBoolean(hasNationalNumberPattern);
308       if (hasNationalNumberPattern) {
309         objectOutput.writeUTF(nationalNumberPattern_);
310       }
311 
312       int possibleLengthSize = getPossibleLengthCount();
313       objectOutput.writeInt(possibleLengthSize);
314       for (int i = 0; i < possibleLengthSize; i++) {
315         objectOutput.writeInt(possibleLength_.get(i));
316       }
317 
318       int possibleLengthLocalOnlySize = getPossibleLengthLocalOnlyCount();
319       objectOutput.writeInt(possibleLengthLocalOnlySize);
320       for (int i = 0; i < possibleLengthLocalOnlySize; i++) {
321         objectOutput.writeInt(possibleLengthLocalOnly_.get(i));
322       }
323 
324       objectOutput.writeBoolean(hasExampleNumber);
325       if (hasExampleNumber) {
326         objectOutput.writeUTF(exampleNumber_);
327       }
328     }
329 
readExternal(ObjectInput objectInput)330     public void readExternal(ObjectInput objectInput) throws IOException {
331       if (objectInput.readBoolean()) {
332         setNationalNumberPattern(objectInput.readUTF());
333       }
334 
335       int possibleLengthSize = objectInput.readInt();
336       for (int i = 0; i < possibleLengthSize; i++) {
337         possibleLength_.add(objectInput.readInt());
338       }
339 
340       int possibleLengthLocalOnlySize = objectInput.readInt();
341       for (int i = 0; i < possibleLengthLocalOnlySize; i++) {
342         possibleLengthLocalOnly_.add(objectInput.readInt());
343       }
344 
345       if (objectInput.readBoolean()) {
346         setExampleNumber(objectInput.readUTF());
347       }
348     }
349   }
350 
351   public static class PhoneMetadata implements Externalizable {
352     private static final long serialVersionUID = 1;
PhoneMetadata()353     public PhoneMetadata() {}
354 
355     /**
356      * Provides a dummy builder.
357      *
358      * @see NumberFormat.Builder
359      */
360     public static final class Builder extends PhoneMetadata {
build()361       public PhoneMetadata build() {
362         return this;
363       }
364     }
newBuilder()365     public static Builder newBuilder() {
366       return new Builder();
367     }
368 
369     // optional PhoneNumberDesc general_desc = 1;
370     private boolean hasGeneralDesc;
371     private PhoneNumberDesc generalDesc_ = null;
hasGeneralDesc()372     public boolean hasGeneralDesc() { return hasGeneralDesc; }
getGeneralDesc()373     public PhoneNumberDesc getGeneralDesc() { return generalDesc_; }
setGeneralDesc(PhoneNumberDesc value)374     public PhoneMetadata setGeneralDesc(PhoneNumberDesc value) {
375       if (value == null) {
376         throw new NullPointerException();
377       }
378       hasGeneralDesc = true;
379       generalDesc_ = value;
380       return this;
381     }
382 
383     // optional PhoneNumberDesc fixed_line = 2;
384     private boolean hasFixedLine;
385     private PhoneNumberDesc fixedLine_ = null;
hasFixedLine()386     public boolean hasFixedLine() { return hasFixedLine; }
getFixedLine()387     public PhoneNumberDesc getFixedLine() { return fixedLine_; }
setFixedLine(PhoneNumberDesc value)388     public PhoneMetadata setFixedLine(PhoneNumberDesc value) {
389       if (value == null) {
390         throw new NullPointerException();
391       }
392       hasFixedLine = true;
393       fixedLine_ = value;
394       return this;
395     }
396 
397     // optional PhoneNumberDesc mobile = 3;
398     private boolean hasMobile;
399     private PhoneNumberDesc mobile_ = null;
hasMobile()400     public boolean hasMobile() { return hasMobile; }
getMobile()401     public PhoneNumberDesc getMobile() { return mobile_; }
setMobile(PhoneNumberDesc value)402     public PhoneMetadata setMobile(PhoneNumberDesc value) {
403       if (value == null) {
404         throw new NullPointerException();
405       }
406       hasMobile = true;
407       mobile_ = value;
408       return this;
409     }
410 
411     // optional PhoneNumberDesc toll_free = 4;
412     private boolean hasTollFree;
413     private PhoneNumberDesc tollFree_ = null;
hasTollFree()414     public boolean hasTollFree() { return hasTollFree; }
getTollFree()415     public PhoneNumberDesc getTollFree() { return tollFree_; }
setTollFree(PhoneNumberDesc value)416     public PhoneMetadata setTollFree(PhoneNumberDesc value) {
417       if (value == null) {
418         throw new NullPointerException();
419       }
420       hasTollFree = true;
421       tollFree_ = value;
422       return this;
423     }
424 
425     // optional PhoneNumberDesc premium_rate = 5;
426     private boolean hasPremiumRate;
427     private PhoneNumberDesc premiumRate_ = null;
hasPremiumRate()428     public boolean hasPremiumRate() { return hasPremiumRate; }
getPremiumRate()429     public PhoneNumberDesc getPremiumRate() { return premiumRate_; }
setPremiumRate(PhoneNumberDesc value)430     public PhoneMetadata setPremiumRate(PhoneNumberDesc value) {
431       if (value == null) {
432         throw new NullPointerException();
433       }
434       hasPremiumRate = true;
435       premiumRate_ = value;
436       return this;
437     }
438 
439     // optional PhoneNumberDesc shared_cost = 6;
440     private boolean hasSharedCost;
441     private PhoneNumberDesc sharedCost_ = null;
hasSharedCost()442     public boolean hasSharedCost() { return hasSharedCost; }
getSharedCost()443     public PhoneNumberDesc getSharedCost() { return sharedCost_; }
setSharedCost(PhoneNumberDesc value)444     public PhoneMetadata setSharedCost(PhoneNumberDesc value) {
445       if (value == null) {
446         throw new NullPointerException();
447       }
448       hasSharedCost = true;
449       sharedCost_ = value;
450       return this;
451     }
452 
453     // optional PhoneNumberDesc personal_number = 7;
454     private boolean hasPersonalNumber;
455     private PhoneNumberDesc personalNumber_ = null;
hasPersonalNumber()456     public boolean hasPersonalNumber() { return hasPersonalNumber; }
getPersonalNumber()457     public PhoneNumberDesc getPersonalNumber() { return personalNumber_; }
setPersonalNumber(PhoneNumberDesc value)458     public PhoneMetadata setPersonalNumber(PhoneNumberDesc value) {
459       if (value == null) {
460         throw new NullPointerException();
461       }
462       hasPersonalNumber = true;
463       personalNumber_ = value;
464       return this;
465     }
466 
467     // optional PhoneNumberDesc voip = 8;
468     private boolean hasVoip;
469     private PhoneNumberDesc voip_ = null;
hasVoip()470     public boolean hasVoip() { return hasVoip; }
getVoip()471     public PhoneNumberDesc getVoip() { return voip_; }
setVoip(PhoneNumberDesc value)472     public PhoneMetadata setVoip(PhoneNumberDesc value) {
473       if (value == null) {
474         throw new NullPointerException();
475       }
476       hasVoip = true;
477       voip_ = value;
478       return this;
479     }
480 
481     // optional PhoneNumberDesc pager = 21;
482     private boolean hasPager;
483     private PhoneNumberDesc pager_ = null;
hasPager()484     public boolean hasPager() { return hasPager; }
getPager()485     public PhoneNumberDesc getPager() { return pager_; }
setPager(PhoneNumberDesc value)486     public PhoneMetadata setPager(PhoneNumberDesc value) {
487       if (value == null) {
488         throw new NullPointerException();
489       }
490       hasPager = true;
491       pager_ = value;
492       return this;
493     }
494 
495     // optional PhoneNumberDesc uan = 25;
496     private boolean hasUan;
497     private PhoneNumberDesc uan_ = null;
hasUan()498     public boolean hasUan() { return hasUan; }
getUan()499     public PhoneNumberDesc getUan() { return uan_; }
setUan(PhoneNumberDesc value)500     public PhoneMetadata setUan(PhoneNumberDesc value) {
501       if (value == null) {
502         throw new NullPointerException();
503       }
504       hasUan = true;
505       uan_ = value;
506       return this;
507     }
508 
509     // optional PhoneNumberDesc emergency = 27;
510     private boolean hasEmergency;
511     private PhoneNumberDesc emergency_ = null;
hasEmergency()512     public boolean hasEmergency() { return hasEmergency; }
getEmergency()513     public PhoneNumberDesc getEmergency() { return emergency_; }
setEmergency(PhoneNumberDesc value)514     public PhoneMetadata setEmergency(PhoneNumberDesc value) {
515       if (value == null) {
516         throw new NullPointerException();
517       }
518       hasEmergency = true;
519       emergency_ = value;
520       return this;
521     }
522 
523     // optional PhoneNumberDesc voicemail = 28;
524     private boolean hasVoicemail;
525     private PhoneNumberDesc voicemail_ = null;
hasVoicemail()526     public boolean hasVoicemail() { return hasVoicemail; }
getVoicemail()527     public PhoneNumberDesc getVoicemail() { return voicemail_; }
setVoicemail(PhoneNumberDesc value)528     public PhoneMetadata setVoicemail(PhoneNumberDesc value) {
529       if (value == null) {
530         throw new NullPointerException();
531       }
532       hasVoicemail = true;
533       voicemail_ = value;
534       return this;
535     }
536 
537     // optional PhoneNumberDesc short_code = 29;
538     private boolean hasShortCode;
539     private PhoneNumberDesc shortCode_ = null;
hasShortCode()540     public boolean hasShortCode() { return hasShortCode; }
getShortCode()541     public PhoneNumberDesc getShortCode() { return shortCode_; }
setShortCode(PhoneNumberDesc value)542     public PhoneMetadata setShortCode(PhoneNumberDesc value) {
543       if (value == null) {
544         throw new NullPointerException();
545       }
546       hasShortCode = true;
547       shortCode_ = value;
548       return this;
549     }
550 
551     // optional PhoneNumberDesc standard_rate = 30;
552     private boolean hasStandardRate;
553     private PhoneNumberDesc standardRate_ = null;
hasStandardRate()554     public boolean hasStandardRate() { return hasStandardRate; }
getStandardRate()555     public PhoneNumberDesc getStandardRate() { return standardRate_; }
setStandardRate(PhoneNumberDesc value)556     public PhoneMetadata setStandardRate(PhoneNumberDesc value) {
557       if (value == null) {
558         throw new NullPointerException();
559       }
560       hasStandardRate = true;
561       standardRate_ = value;
562       return this;
563     }
564 
565     // optional PhoneNumberDesc carrier_specific = 31;
566     private boolean hasCarrierSpecific;
567     private PhoneNumberDesc carrierSpecific_ = null;
hasCarrierSpecific()568     public boolean hasCarrierSpecific() { return hasCarrierSpecific; }
getCarrierSpecific()569     public PhoneNumberDesc getCarrierSpecific() { return carrierSpecific_; }
setCarrierSpecific(PhoneNumberDesc value)570     public PhoneMetadata setCarrierSpecific(PhoneNumberDesc value) {
571       if (value == null) {
572         throw new NullPointerException();
573       }
574       hasCarrierSpecific = true;
575       carrierSpecific_ = value;
576       return this;
577     }
578 
579     // optional PhoneNumberDesc sms_services = 33;
580     private boolean hasSmsServices;
581     private PhoneNumberDesc smsServices_ = null;
hasSmsServices()582     public boolean hasSmsServices() { return hasSmsServices; }
getSmsServices()583     public PhoneNumberDesc getSmsServices() { return smsServices_; }
setSmsServices(PhoneNumberDesc value)584     public PhoneMetadata setSmsServices(PhoneNumberDesc value) {
585       if (value == null) {
586         throw new NullPointerException();
587       }
588       hasSmsServices = true;
589       smsServices_ = value;
590       return this;
591     }
592 
593     // optional PhoneNumberDesc noInternationalDialling = 24;
594     private boolean hasNoInternationalDialling;
595     private PhoneNumberDesc noInternationalDialling_ = null;
hasNoInternationalDialling()596     public boolean hasNoInternationalDialling() { return hasNoInternationalDialling; }
getNoInternationalDialling()597     public PhoneNumberDesc getNoInternationalDialling() { return noInternationalDialling_; }
setNoInternationalDialling(PhoneNumberDesc value)598     public PhoneMetadata setNoInternationalDialling(PhoneNumberDesc value) {
599       if (value == null) {
600         throw new NullPointerException();
601       }
602       hasNoInternationalDialling = true;
603       noInternationalDialling_ = value;
604       return this;
605     }
606 
607     // required string id = 9;
608     private boolean hasId;
609     private String id_ = "";
hasId()610     public boolean hasId() { return hasId; }
getId()611     public String getId() { return id_; }
setId(String value)612     public PhoneMetadata setId(String value) {
613       hasId = true;
614       id_ = value;
615       return this;
616     }
617 
618     // optional int32 country_code = 10;
619     private boolean hasCountryCode;
620     private int countryCode_ = 0;
hasCountryCode()621     public boolean hasCountryCode() { return hasCountryCode; }
getCountryCode()622     public int getCountryCode() { return countryCode_; }
setCountryCode(int value)623     public PhoneMetadata setCountryCode(int value) {
624       hasCountryCode = true;
625       countryCode_ = value;
626       return this;
627     }
628 
629     // optional string international_prefix = 11;
630     private boolean hasInternationalPrefix;
631     private String internationalPrefix_ = "";
hasInternationalPrefix()632     public boolean hasInternationalPrefix() { return hasInternationalPrefix; }
getInternationalPrefix()633     public String getInternationalPrefix() { return internationalPrefix_; }
setInternationalPrefix(String value)634     public PhoneMetadata setInternationalPrefix(String value) {
635       hasInternationalPrefix = true;
636       internationalPrefix_ = value;
637       return this;
638     }
639 
640     // optional string preferred_international_prefix = 17;
641     private boolean hasPreferredInternationalPrefix;
642     private String preferredInternationalPrefix_ = "";
hasPreferredInternationalPrefix()643     public boolean hasPreferredInternationalPrefix() { return hasPreferredInternationalPrefix; }
getPreferredInternationalPrefix()644     public String getPreferredInternationalPrefix() { return preferredInternationalPrefix_; }
setPreferredInternationalPrefix(String value)645     public PhoneMetadata setPreferredInternationalPrefix(String value) {
646       hasPreferredInternationalPrefix = true;
647       preferredInternationalPrefix_ = value;
648       return this;
649     }
clearPreferredInternationalPrefix()650     public PhoneMetadata clearPreferredInternationalPrefix() {
651       hasPreferredInternationalPrefix = false;
652       preferredInternationalPrefix_ = "";
653       return this;
654     }
655 
656     // optional string national_prefix = 12;
657     private boolean hasNationalPrefix;
658     private String nationalPrefix_ = "";
hasNationalPrefix()659     public boolean hasNationalPrefix() { return hasNationalPrefix; }
getNationalPrefix()660     public String getNationalPrefix() { return nationalPrefix_; }
setNationalPrefix(String value)661     public PhoneMetadata setNationalPrefix(String value) {
662       hasNationalPrefix = true;
663       nationalPrefix_ = value;
664       return this;
665     }
clearNationalPrefix()666     public PhoneMetadata clearNationalPrefix() {
667       hasNationalPrefix = false;
668       nationalPrefix_ = "";
669       return this;
670     }
671 
672     // optional string preferred_extn_prefix = 13;
673     private boolean hasPreferredExtnPrefix;
674     private String preferredExtnPrefix_ = "";
hasPreferredExtnPrefix()675     public boolean hasPreferredExtnPrefix() { return hasPreferredExtnPrefix; }
getPreferredExtnPrefix()676     public String getPreferredExtnPrefix() { return preferredExtnPrefix_; }
setPreferredExtnPrefix(String value)677     public PhoneMetadata setPreferredExtnPrefix(String value) {
678       hasPreferredExtnPrefix = true;
679       preferredExtnPrefix_ = value;
680       return this;
681     }
clearPreferredExtnPrefix()682     public PhoneMetadata clearPreferredExtnPrefix() {
683       hasPreferredExtnPrefix = false;
684       preferredExtnPrefix_ = "";
685       return this;
686     }
687 
688     // optional string national_prefix_for_parsing = 15;
689     private boolean hasNationalPrefixForParsing;
690     private String nationalPrefixForParsing_ = "";
hasNationalPrefixForParsing()691     public boolean hasNationalPrefixForParsing() { return hasNationalPrefixForParsing; }
getNationalPrefixForParsing()692     public String getNationalPrefixForParsing() { return nationalPrefixForParsing_; }
setNationalPrefixForParsing(String value)693     public PhoneMetadata setNationalPrefixForParsing(String value) {
694       hasNationalPrefixForParsing = true;
695       nationalPrefixForParsing_ = value;
696       return this;
697     }
698 
699     // optional string national_prefix_transform_rule = 16;
700     private boolean hasNationalPrefixTransformRule;
701     private String nationalPrefixTransformRule_ = "";
hasNationalPrefixTransformRule()702     public boolean hasNationalPrefixTransformRule() { return hasNationalPrefixTransformRule; }
getNationalPrefixTransformRule()703     public String getNationalPrefixTransformRule() { return nationalPrefixTransformRule_; }
setNationalPrefixTransformRule(String value)704     public PhoneMetadata setNationalPrefixTransformRule(String value) {
705       hasNationalPrefixTransformRule = true;
706       nationalPrefixTransformRule_ = value;
707       return this;
708     }
clearNationalPrefixTransformRule()709     public PhoneMetadata clearNationalPrefixTransformRule() {
710       hasNationalPrefixTransformRule = false;
711       nationalPrefixTransformRule_ = "";
712       return this;
713     }
714 
715     // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false];
716     private boolean hasSameMobileAndFixedLinePattern;
717     private boolean sameMobileAndFixedLinePattern_ = false;
hasSameMobileAndFixedLinePattern()718     public boolean hasSameMobileAndFixedLinePattern() { return hasSameMobileAndFixedLinePattern; }
getSameMobileAndFixedLinePattern()719     public boolean getSameMobileAndFixedLinePattern() { return sameMobileAndFixedLinePattern_; }
setSameMobileAndFixedLinePattern(boolean value)720     public PhoneMetadata setSameMobileAndFixedLinePattern(boolean value) {
721       hasSameMobileAndFixedLinePattern = true;
722       sameMobileAndFixedLinePattern_ = value;
723       return this;
724     }
clearSameMobileAndFixedLinePattern()725     public PhoneMetadata clearSameMobileAndFixedLinePattern() {
726       hasSameMobileAndFixedLinePattern = false;
727       sameMobileAndFixedLinePattern_ = false;
728       return this;
729     }
730 
731     // repeated NumberFormat number_format = 19;
732     private java.util.List<NumberFormat> numberFormat_ = new java.util.ArrayList<NumberFormat>();
numberFormats()733     public java.util.List<NumberFormat> numberFormats() {
734       return numberFormat_;
735     }
numberFormatSize()736     public int numberFormatSize() { return numberFormat_.size(); }
getNumberFormat(int index)737     public NumberFormat getNumberFormat(int index) {
738       return numberFormat_.get(index);
739     }
addNumberFormat(NumberFormat value)740     public PhoneMetadata addNumberFormat(NumberFormat value) {
741       if (value == null) {
742         throw new NullPointerException();
743       }
744       numberFormat_.add(value);
745       return this;
746     }
747 
748     // repeated NumberFormat intl_number_format = 20;
749     private java.util.List<NumberFormat> intlNumberFormat_ =
750         new java.util.ArrayList<NumberFormat>();
intlNumberFormats()751     public java.util.List<NumberFormat> intlNumberFormats() {
752       return intlNumberFormat_;
753     }
intlNumberFormatSize()754     public int intlNumberFormatSize() { return intlNumberFormat_.size(); }
getIntlNumberFormat(int index)755     public NumberFormat getIntlNumberFormat(int index) {
756       return intlNumberFormat_.get(index);
757     }
758 
addIntlNumberFormat(NumberFormat value)759     public PhoneMetadata addIntlNumberFormat(NumberFormat value) {
760       if (value == null) {
761         throw new NullPointerException();
762       }
763       intlNumberFormat_.add(value);
764       return this;
765     }
clearIntlNumberFormat()766     public PhoneMetadata clearIntlNumberFormat() {
767       intlNumberFormat_.clear();
768       return this;
769     }
770 
771     // optional bool main_country_for_code = 22 [default = false];
772     private boolean hasMainCountryForCode;
773     private boolean mainCountryForCode_ = false;
hasMainCountryForCode()774     public boolean hasMainCountryForCode() { return hasMainCountryForCode; }
isMainCountryForCode()775     public boolean isMainCountryForCode() { return mainCountryForCode_; }
776     // Method that lets this class have the same interface as the one generated by Protocol Buffers
777     // which is used by C++ build tools.
getMainCountryForCode()778     public boolean getMainCountryForCode() { return mainCountryForCode_; }
setMainCountryForCode(boolean value)779     public PhoneMetadata setMainCountryForCode(boolean value) {
780       hasMainCountryForCode = true;
781       mainCountryForCode_ = value;
782       return this;
783     }
clearMainCountryForCode()784     public PhoneMetadata clearMainCountryForCode() {
785       hasMainCountryForCode = false;
786       mainCountryForCode_ = false;
787       return this;
788     }
789 
790     // optional string leading_digits = 23;
791     private boolean hasLeadingDigits;
792     private String leadingDigits_ = "";
hasLeadingDigits()793     public boolean hasLeadingDigits() { return hasLeadingDigits; }
getLeadingDigits()794     public String getLeadingDigits() { return leadingDigits_; }
setLeadingDigits(String value)795     public PhoneMetadata setLeadingDigits(String value) {
796       hasLeadingDigits = true;
797       leadingDigits_ = value;
798       return this;
799     }
800 
801     // optional bool leading_zero_possible = 26 [default = false];
802     private boolean hasLeadingZeroPossible;
803     private boolean leadingZeroPossible_ = false;
hasLeadingZeroPossible()804     public boolean hasLeadingZeroPossible() { return hasLeadingZeroPossible; }
isLeadingZeroPossible()805     public boolean isLeadingZeroPossible() { return leadingZeroPossible_; }
setLeadingZeroPossible(boolean value)806     public PhoneMetadata setLeadingZeroPossible(boolean value) {
807       hasLeadingZeroPossible = true;
808       leadingZeroPossible_ = value;
809       return this;
810     }
clearLeadingZeroPossible()811     public PhoneMetadata clearLeadingZeroPossible() {
812       hasLeadingZeroPossible = false;
813       leadingZeroPossible_ = false;
814       return this;
815     }
816 
817     // optional bool mobile_number_portable_region = 32 [default = false];
818     private boolean hasMobileNumberPortableRegion;
819     private boolean mobileNumberPortableRegion_ = false;
hasMobileNumberPortableRegion()820     public boolean hasMobileNumberPortableRegion() { return hasMobileNumberPortableRegion; }
isMobileNumberPortableRegion()821     public boolean isMobileNumberPortableRegion() { return mobileNumberPortableRegion_; }
setMobileNumberPortableRegion(boolean value)822     public PhoneMetadata setMobileNumberPortableRegion(boolean value) {
823       hasMobileNumberPortableRegion = true;
824       mobileNumberPortableRegion_ = value;
825       return this;
826     }
clearMobileNumberPortableRegion()827     public PhoneMetadata clearMobileNumberPortableRegion() {
828       hasMobileNumberPortableRegion = false;
829       mobileNumberPortableRegion_ = false;
830       return this;
831     }
832 
writeExternal(ObjectOutput objectOutput)833     public void writeExternal(ObjectOutput objectOutput) throws IOException {
834       objectOutput.writeBoolean(hasGeneralDesc);
835       if (hasGeneralDesc) {
836         generalDesc_.writeExternal(objectOutput);
837       }
838       objectOutput.writeBoolean(hasFixedLine);
839       if (hasFixedLine) {
840         fixedLine_.writeExternal(objectOutput);
841       }
842       objectOutput.writeBoolean(hasMobile);
843       if (hasMobile) {
844         mobile_.writeExternal(objectOutput);
845       }
846       objectOutput.writeBoolean(hasTollFree);
847       if (hasTollFree) {
848         tollFree_.writeExternal(objectOutput);
849       }
850       objectOutput.writeBoolean(hasPremiumRate);
851       if (hasPremiumRate) {
852         premiumRate_.writeExternal(objectOutput);
853       }
854       objectOutput.writeBoolean(hasSharedCost);
855       if (hasSharedCost) {
856         sharedCost_.writeExternal(objectOutput);
857       }
858       objectOutput.writeBoolean(hasPersonalNumber);
859       if (hasPersonalNumber) {
860         personalNumber_.writeExternal(objectOutput);
861       }
862       objectOutput.writeBoolean(hasVoip);
863       if (hasVoip) {
864         voip_.writeExternal(objectOutput);
865       }
866       objectOutput.writeBoolean(hasPager);
867       if (hasPager) {
868         pager_.writeExternal(objectOutput);
869       }
870       objectOutput.writeBoolean(hasUan);
871       if (hasUan) {
872         uan_.writeExternal(objectOutput);
873       }
874       objectOutput.writeBoolean(hasEmergency);
875       if (hasEmergency) {
876         emergency_.writeExternal(objectOutput);
877       }
878       objectOutput.writeBoolean(hasVoicemail);
879       if (hasVoicemail) {
880         voicemail_.writeExternal(objectOutput);
881       }
882       objectOutput.writeBoolean(hasShortCode);
883       if (hasShortCode) {
884         shortCode_.writeExternal(objectOutput);
885       }
886       objectOutput.writeBoolean(hasStandardRate);
887       if (hasStandardRate) {
888         standardRate_.writeExternal(objectOutput);
889       }
890       objectOutput.writeBoolean(hasCarrierSpecific);
891       if (hasCarrierSpecific) {
892         carrierSpecific_.writeExternal(objectOutput);
893       }
894       objectOutput.writeBoolean(hasSmsServices);
895       if (hasSmsServices) {
896         smsServices_.writeExternal(objectOutput);
897       }
898       objectOutput.writeBoolean(hasNoInternationalDialling);
899       if (hasNoInternationalDialling) {
900         noInternationalDialling_.writeExternal(objectOutput);
901       }
902 
903       objectOutput.writeUTF(id_);
904       objectOutput.writeInt(countryCode_);
905       objectOutput.writeUTF(internationalPrefix_);
906 
907       objectOutput.writeBoolean(hasPreferredInternationalPrefix);
908       if (hasPreferredInternationalPrefix) {
909         objectOutput.writeUTF(preferredInternationalPrefix_);
910       }
911 
912       objectOutput.writeBoolean(hasNationalPrefix);
913       if (hasNationalPrefix) {
914         objectOutput.writeUTF(nationalPrefix_);
915       }
916 
917       objectOutput.writeBoolean(hasPreferredExtnPrefix);
918       if (hasPreferredExtnPrefix) {
919         objectOutput.writeUTF(preferredExtnPrefix_);
920       }
921 
922       objectOutput.writeBoolean(hasNationalPrefixForParsing);
923       if (hasNationalPrefixForParsing) {
924         objectOutput.writeUTF(nationalPrefixForParsing_);
925       }
926 
927       objectOutput.writeBoolean(hasNationalPrefixTransformRule);
928       if (hasNationalPrefixTransformRule) {
929         objectOutput.writeUTF(nationalPrefixTransformRule_);
930       }
931 
932       objectOutput.writeBoolean(sameMobileAndFixedLinePattern_);
933 
934       int numberFormatSize = numberFormatSize();
935       objectOutput.writeInt(numberFormatSize);
936       for (int i = 0; i < numberFormatSize; i++) {
937         numberFormat_.get(i).writeExternal(objectOutput);
938       }
939 
940       int intlNumberFormatSize = intlNumberFormatSize();
941       objectOutput.writeInt(intlNumberFormatSize);
942       for (int i = 0; i < intlNumberFormatSize; i++) {
943         intlNumberFormat_.get(i).writeExternal(objectOutput);
944       }
945 
946       objectOutput.writeBoolean(mainCountryForCode_);
947 
948       objectOutput.writeBoolean(hasLeadingDigits);
949       if (hasLeadingDigits) {
950         objectOutput.writeUTF(leadingDigits_);
951       }
952 
953       objectOutput.writeBoolean(leadingZeroPossible_);
954 
955       objectOutput.writeBoolean(mobileNumberPortableRegion_);
956     }
957 
readExternal(ObjectInput objectInput)958     public void readExternal(ObjectInput objectInput) throws IOException {
959       boolean hasDesc = objectInput.readBoolean();
960       if (hasDesc) {
961         PhoneNumberDesc desc = new PhoneNumberDesc();
962         desc.readExternal(objectInput);
963         setGeneralDesc(desc);
964       }
965       hasDesc = objectInput.readBoolean();
966       if (hasDesc) {
967         PhoneNumberDesc desc = new PhoneNumberDesc();
968         desc.readExternal(objectInput);
969         setFixedLine(desc);
970       }
971       hasDesc = objectInput.readBoolean();
972       if (hasDesc) {
973         PhoneNumberDesc desc = new PhoneNumberDesc();
974         desc.readExternal(objectInput);
975         setMobile(desc);
976       }
977       hasDesc = objectInput.readBoolean();
978       if (hasDesc) {
979         PhoneNumberDesc desc = new PhoneNumberDesc();
980         desc.readExternal(objectInput);
981         setTollFree(desc);
982       }
983       hasDesc = objectInput.readBoolean();
984       if (hasDesc) {
985         PhoneNumberDesc desc = new PhoneNumberDesc();
986         desc.readExternal(objectInput);
987         setPremiumRate(desc);
988       }
989       hasDesc = objectInput.readBoolean();
990       if (hasDesc) {
991         PhoneNumberDesc desc = new PhoneNumberDesc();
992         desc.readExternal(objectInput);
993         setSharedCost(desc);
994       }
995       hasDesc = objectInput.readBoolean();
996       if (hasDesc) {
997         PhoneNumberDesc desc = new PhoneNumberDesc();
998         desc.readExternal(objectInput);
999         setPersonalNumber(desc);
1000       }
1001       hasDesc = objectInput.readBoolean();
1002       if (hasDesc) {
1003         PhoneNumberDesc desc = new PhoneNumberDesc();
1004         desc.readExternal(objectInput);
1005         setVoip(desc);
1006       }
1007       hasDesc = objectInput.readBoolean();
1008       if (hasDesc) {
1009         PhoneNumberDesc desc = new PhoneNumberDesc();
1010         desc.readExternal(objectInput);
1011         setPager(desc);
1012       }
1013       hasDesc = objectInput.readBoolean();
1014       if (hasDesc) {
1015         PhoneNumberDesc desc = new PhoneNumberDesc();
1016         desc.readExternal(objectInput);
1017         setUan(desc);
1018       }
1019       hasDesc = objectInput.readBoolean();
1020       if (hasDesc) {
1021         PhoneNumberDesc desc = new PhoneNumberDesc();
1022         desc.readExternal(objectInput);
1023         setEmergency(desc);
1024       }
1025       hasDesc = objectInput.readBoolean();
1026       if (hasDesc) {
1027         PhoneNumberDesc desc = new PhoneNumberDesc();
1028         desc.readExternal(objectInput);
1029         setVoicemail(desc);
1030       }
1031       hasDesc = objectInput.readBoolean();
1032       if (hasDesc) {
1033         PhoneNumberDesc desc = new PhoneNumberDesc();
1034         desc.readExternal(objectInput);
1035         setShortCode(desc);
1036       }
1037       hasDesc = objectInput.readBoolean();
1038       if (hasDesc) {
1039         PhoneNumberDesc desc = new PhoneNumberDesc();
1040         desc.readExternal(objectInput);
1041         setStandardRate(desc);
1042       }
1043       hasDesc = objectInput.readBoolean();
1044       if (hasDesc) {
1045         PhoneNumberDesc desc = new PhoneNumberDesc();
1046         desc.readExternal(objectInput);
1047         setCarrierSpecific(desc);
1048       }
1049       hasDesc = objectInput.readBoolean();
1050       if (hasDesc) {
1051         PhoneNumberDesc desc = new PhoneNumberDesc();
1052         desc.readExternal(objectInput);
1053         setSmsServices(desc);
1054       }
1055       hasDesc = objectInput.readBoolean();
1056       if (hasDesc) {
1057         PhoneNumberDesc desc = new PhoneNumberDesc();
1058         desc.readExternal(objectInput);
1059         setNoInternationalDialling(desc);
1060       }
1061 
1062       setId(objectInput.readUTF());
1063       setCountryCode(objectInput.readInt());
1064       setInternationalPrefix(objectInput.readUTF());
1065 
1066       boolean hasString = objectInput.readBoolean();
1067       if (hasString) {
1068         setPreferredInternationalPrefix(objectInput.readUTF());
1069       }
1070 
1071       hasString = objectInput.readBoolean();
1072       if (hasString) {
1073         setNationalPrefix(objectInput.readUTF());
1074       }
1075 
1076       hasString = objectInput.readBoolean();
1077       if (hasString) {
1078         setPreferredExtnPrefix(objectInput.readUTF());
1079       }
1080 
1081       hasString = objectInput.readBoolean();
1082       if (hasString) {
1083         setNationalPrefixForParsing(objectInput.readUTF());
1084       }
1085 
1086       hasString = objectInput.readBoolean();
1087       if (hasString) {
1088         setNationalPrefixTransformRule(objectInput.readUTF());
1089       }
1090 
1091       setSameMobileAndFixedLinePattern(objectInput.readBoolean());
1092 
1093       int nationalFormatSize = objectInput.readInt();
1094       for (int i = 0; i < nationalFormatSize; i++) {
1095         NumberFormat numFormat = new NumberFormat();
1096         numFormat.readExternal(objectInput);
1097         numberFormat_.add(numFormat);
1098       }
1099 
1100       int intlNumberFormatSize = objectInput.readInt();
1101       for (int i = 0; i < intlNumberFormatSize; i++) {
1102         NumberFormat numFormat = new NumberFormat();
1103         numFormat.readExternal(objectInput);
1104         intlNumberFormat_.add(numFormat);
1105       }
1106 
1107       setMainCountryForCode(objectInput.readBoolean());
1108 
1109       hasString = objectInput.readBoolean();
1110       if (hasString) {
1111         setLeadingDigits(objectInput.readUTF());
1112       }
1113 
1114       setLeadingZeroPossible(objectInput.readBoolean());
1115 
1116       setMobileNumberPortableRegion(objectInput.readBoolean());
1117     }
1118   }
1119 
1120   public static class PhoneMetadataCollection implements Externalizable {
1121     private static final long serialVersionUID = 1;
PhoneMetadataCollection()1122     public PhoneMetadataCollection() {}
1123 
1124     /**
1125      * Provides a dummy builder.
1126      *
1127      * @see NumberFormat.Builder
1128      */
1129     public static final class Builder extends PhoneMetadataCollection {
build()1130       public PhoneMetadataCollection build() {
1131         return this;
1132       }
1133     }
newBuilder()1134     public static Builder newBuilder() {
1135       return new Builder();
1136     }
1137 
1138     // repeated PhoneMetadata metadata = 1;
1139     private java.util.List<PhoneMetadata> metadata_ = new java.util.ArrayList<PhoneMetadata>();
1140 
getMetadataList()1141     public java.util.List<PhoneMetadata> getMetadataList() {
1142       return metadata_;
1143     }
getMetadataCount()1144     public int getMetadataCount() { return metadata_.size(); }
1145 
addMetadata(PhoneMetadata value)1146     public PhoneMetadataCollection addMetadata(PhoneMetadata value) {
1147       if (value == null) {
1148         throw new NullPointerException();
1149       }
1150       metadata_.add(value);
1151       return this;
1152     }
1153 
writeExternal(ObjectOutput objectOutput)1154     public void writeExternal(ObjectOutput objectOutput) throws IOException {
1155       int size = getMetadataCount();
1156       objectOutput.writeInt(size);
1157       for (int i = 0; i < size; i++) {
1158         metadata_.get(i).writeExternal(objectOutput);
1159       }
1160     }
1161 
readExternal(ObjectInput objectInput)1162     public void readExternal(ObjectInput objectInput) throws IOException {
1163       int size = objectInput.readInt();
1164       for (int i = 0; i < size; i++) {
1165         PhoneMetadata metadata = new PhoneMetadata();
1166         metadata.readExternal(objectInput);
1167         metadata_.add(metadata);
1168       }
1169     }
1170 
clear()1171     public PhoneMetadataCollection clear() {
1172       metadata_.clear();
1173       return this;
1174     }
1175   }
1176 }
1177