From d7a488452b58f0cd77147e66dec276f514832ad9 Mon Sep 17 00:00:00 2001 From: Andy Staudacher Date: Tue, 10 Feb 2015 12:23:59 +0100 Subject: [PATCH 1/4] Fix demo.html's closure base.js path to no longer use the now defunct googlecode.com URL. --- javascript/i18n/phonenumbers/demo.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/i18n/phonenumbers/demo.html b/javascript/i18n/phonenumbers/demo.html index b7ca19565..cab962c95 100644 --- a/javascript/i18n/phonenumbers/demo.html +++ b/javascript/i18n/phonenumbers/demo.html @@ -21,7 +21,7 @@ limitations under the License. --> Phone Number Parser Demo - + From 5f278455968a878ca0c06fd23c7a74117d2898ce Mon Sep 17 00:00:00 2001 From: Andy Staudacher Date: Tue, 10 Feb 2015 12:32:28 +0100 Subject: [PATCH 2/4] Update generated .pb.js files with proper generated proto2 descriptor APIs --- .../i18n/phonenumbers/phonemetadata.pb.js | 642 +++++++++++------- .../i18n/phonenumbers/phonenumber.pb.js | 116 ++-- .../BuildMetadataJsonFromXml.java | 8 + 3 files changed, 475 insertions(+), 291 deletions(-) diff --git a/javascript/i18n/phonenumbers/phonemetadata.pb.js b/javascript/i18n/phonenumbers/phonemetadata.pb.js index 17726c564..054348e02 100644 --- a/javascript/i18n/phonenumbers/phonemetadata.pb.js +++ b/javascript/i18n/phonenumbers/phonemetadata.pb.js @@ -37,7 +37,7 @@ goog.require('goog.proto2.Message'); * @extends {goog.proto2.Message} */ i18n.phonenumbers.NumberFormat = function() { - goog.proto2.Message.apply(this); + goog.proto2.Message.call(this); }; goog.inherits(i18n.phonenumbers.NumberFormat, goog.proto2.Message); @@ -374,7 +374,7 @@ i18n.phonenumbers.NumberFormat.prototype.clearDomesticCarrierCodeFormattingRule * @extends {goog.proto2.Message} */ i18n.phonenumbers.PhoneNumberDesc = function() { - goog.proto2.Message.apply(this); + goog.proto2.Message.call(this); }; goog.inherits(i18n.phonenumbers.PhoneNumberDesc, goog.proto2.Message); @@ -540,6 +540,108 @@ i18n.phonenumbers.PhoneNumberDesc.prototype.clearExampleNumber = function() { }; +/** + * Gets the value of the national_number_matcher_data field. + * @return {?string} The value. + */ +i18n.phonenumbers.PhoneNumberDesc.prototype.getNationalNumberMatcherData = function() { + return /** @type {?string} */ (this.get$Value(7)); +}; + + +/** + * Gets the value of the national_number_matcher_data field or the default value if not set. + * @return {string} The value. + */ +i18n.phonenumbers.PhoneNumberDesc.prototype.getNationalNumberMatcherDataOrDefault = function() { + return /** @type {string} */ (this.get$ValueOrDefault(7)); +}; + + +/** + * Sets the value of the national_number_matcher_data field. + * @param {string} value The value. + */ +i18n.phonenumbers.PhoneNumberDesc.prototype.setNationalNumberMatcherData = function(value) { + this.set$Value(7, value); +}; + + +/** + * @return {boolean} Whether the national_number_matcher_data field has a value. + */ +i18n.phonenumbers.PhoneNumberDesc.prototype.hasNationalNumberMatcherData = function() { + return this.has$Value(7); +}; + + +/** + * @return {number} The number of values in the national_number_matcher_data field. + */ +i18n.phonenumbers.PhoneNumberDesc.prototype.nationalNumberMatcherDataCount = function() { + return this.count$Values(7); +}; + + +/** + * Clears the values in the national_number_matcher_data field. + */ +i18n.phonenumbers.PhoneNumberDesc.prototype.clearNationalNumberMatcherData = function() { + this.clear$Field(7); +}; + + +/** + * Gets the value of the possible_number_matcher_data field. + * @return {?string} The value. + */ +i18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleNumberMatcherData = function() { + return /** @type {?string} */ (this.get$Value(8)); +}; + + +/** + * Gets the value of the possible_number_matcher_data field or the default value if not set. + * @return {string} The value. + */ +i18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleNumberMatcherDataOrDefault = function() { + return /** @type {string} */ (this.get$ValueOrDefault(8)); +}; + + +/** + * Sets the value of the possible_number_matcher_data field. + * @param {string} value The value. + */ +i18n.phonenumbers.PhoneNumberDesc.prototype.setPossibleNumberMatcherData = function(value) { + this.set$Value(8, value); +}; + + +/** + * @return {boolean} Whether the possible_number_matcher_data field has a value. + */ +i18n.phonenumbers.PhoneNumberDesc.prototype.hasPossibleNumberMatcherData = function() { + return this.has$Value(8); +}; + + +/** + * @return {number} The number of values in the possible_number_matcher_data field. + */ +i18n.phonenumbers.PhoneNumberDesc.prototype.possibleNumberMatcherDataCount = function() { + return this.count$Values(8); +}; + + +/** + * Clears the values in the possible_number_matcher_data field. + */ +i18n.phonenumbers.PhoneNumberDesc.prototype.clearPossibleNumberMatcherData = function() { + this.clear$Field(8); +}; + + /** * Message PhoneMetadata. @@ -547,7 +649,7 @@ i18n.phonenumbers.PhoneNumberDesc.prototype.clearExampleNumber = function() { * @extends {goog.proto2.Message} */ i18n.phonenumbers.PhoneMetadata = function() { - goog.proto2.Message.apply(this); + goog.proto2.Message.call(this); }; goog.inherits(i18n.phonenumbers.PhoneMetadata, goog.proto2.Message); @@ -1959,14 +2061,13 @@ i18n.phonenumbers.PhoneMetadata.prototype.clearLeadingZeroPossible = function() }; - /** * Message PhoneMetadataCollection. * @constructor * @extends {goog.proto2.Message} */ i18n.phonenumbers.PhoneMetadataCollection = function() { - goog.proto2.Message.apply(this); + goog.proto2.Message.call(this); }; goog.inherits(i18n.phonenumbers.PhoneMetadataCollection, goog.proto2.Message); @@ -2041,243 +2142,302 @@ i18n.phonenumbers.PhoneMetadataCollection.prototype.clearMetadata = function() { }; -goog.proto2.Message.set$Metadata(i18n.phonenumbers.NumberFormat, { - 0: { - name: 'NumberFormat', - fullName: 'i18n.phonenumbers.NumberFormat' - }, - 1: { - name: 'pattern', - required: true, - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 2: { - name: 'format', - required: true, - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 3: { - name: 'leading_digits_pattern', - repeated: true, - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 4: { - name: 'national_prefix_formatting_rule', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 6: { - name: 'national_prefix_optional_when_formatting', - fieldType: goog.proto2.Message.FieldType.BOOL, - type: Boolean - }, - 5: { - name: 'domestic_carrier_code_formatting_rule', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String +/** @override */ +i18n.phonenumbers.NumberFormat.prototype.getDescriptor = function() { + if (!i18n.phonenumbers.NumberFormat.descriptor_) { + // The descriptor is created lazily when we instantiate a new instance. + var descriptorObj = { + 0: { + name: 'NumberFormat', + fullName: 'i18n.phonenumbers.NumberFormat' + }, + 1: { + name: 'pattern', + required: true, + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 2: { + name: 'format', + required: true, + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 3: { + name: 'leading_digits_pattern', + repeated: true, + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 4: { + name: 'national_prefix_formatting_rule', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 6: { + name: 'national_prefix_optional_when_formatting', + fieldType: goog.proto2.Message.FieldType.BOOL, + type: Boolean + }, + 5: { + name: 'domestic_carrier_code_formatting_rule', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + } + }; + i18n.phonenumbers.NumberFormat.descriptor_ = + goog.proto2.Message.createDescriptor( + i18n.phonenumbers.NumberFormat, descriptorObj); } -}); - - -goog.proto2.Message.set$Metadata(i18n.phonenumbers.PhoneNumberDesc, { - 0: { - name: 'PhoneNumberDesc', - fullName: 'i18n.phonenumbers.PhoneNumberDesc' - }, - 2: { - name: 'national_number_pattern', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 3: { - name: 'possible_number_pattern', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 6: { - name: 'example_number', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String + return i18n.phonenumbers.NumberFormat.descriptor_; +}; + + +// Export getDescriptor static function robust to minification. +i18n.phonenumbers.NumberFormat['ctor'] = i18n.phonenumbers.NumberFormat; +i18n.phonenumbers.NumberFormat['ctor'].getDescriptor = + i18n.phonenumbers.NumberFormat.prototype.getDescriptor; + + +/** @override */ +i18n.phonenumbers.PhoneNumberDesc.prototype.getDescriptor = function() { + if (!i18n.phonenumbers.PhoneNumberDesc.descriptor_) { + // The descriptor is created lazily when we instantiate a new instance. + var descriptorObj = { + 0: { + name: 'PhoneNumberDesc', + fullName: 'i18n.phonenumbers.PhoneNumberDesc' + }, + 2: { + name: 'national_number_pattern', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 3: { + name: 'possible_number_pattern', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 6: { + name: 'example_number', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 7: { + name: 'national_number_matcher_data', + fieldType: goog.proto2.Message.FieldType.BYTES, + type: String + }, + 8: { + name: 'possible_number_matcher_data', + fieldType: goog.proto2.Message.FieldType.BYTES, + type: String + } + }; + i18n.phonenumbers.PhoneNumberDesc.descriptor_ = + goog.proto2.Message.createDescriptor( + i18n.phonenumbers.PhoneNumberDesc, descriptorObj); } -}); - - -goog.proto2.Message.set$Metadata(i18n.phonenumbers.PhoneMetadata, { - 0: { - name: 'PhoneMetadata', - fullName: 'i18n.phonenumbers.PhoneMetadata' - }, - 1: { - name: 'general_desc', - required: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneNumberDesc - }, - 2: { - name: 'fixed_line', - required: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneNumberDesc - }, - 3: { - name: 'mobile', - required: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneNumberDesc - }, - 4: { - name: 'toll_free', - required: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneNumberDesc - }, - 5: { - name: 'premium_rate', - required: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneNumberDesc - }, - 6: { - name: 'shared_cost', - required: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneNumberDesc - }, - 7: { - name: 'personal_number', - required: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneNumberDesc - }, - 8: { - name: 'voip', - required: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneNumberDesc - }, - 21: { - name: 'pager', - required: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneNumberDesc - }, - 25: { - name: 'uan', - required: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneNumberDesc - }, - 27: { - name: 'emergency', - required: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneNumberDesc - }, - 28: { - name: 'voicemail', - required: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneNumberDesc - }, - 24: { - name: 'no_international_dialling', - required: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneNumberDesc - }, - 9: { - name: 'id', - required: true, - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 10: { - name: 'country_code', - required: true, - fieldType: goog.proto2.Message.FieldType.INT32, - type: Number - }, - 11: { - name: 'international_prefix', - required: true, - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 17: { - name: 'preferred_international_prefix', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 12: { - name: 'national_prefix', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 13: { - name: 'preferred_extn_prefix', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 15: { - name: 'national_prefix_for_parsing', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 16: { - name: 'national_prefix_transform_rule', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 18: { - name: 'same_mobile_and_fixed_line_pattern', - fieldType: goog.proto2.Message.FieldType.BOOL, - defaultValue: false, - type: Boolean - }, - 19: { - name: 'number_format', - repeated: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.NumberFormat - }, - 20: { - name: 'intl_number_format', - repeated: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.NumberFormat - }, - 22: { - name: 'main_country_for_code', - fieldType: goog.proto2.Message.FieldType.BOOL, - defaultValue: false, - type: Boolean - }, - 23: { - name: 'leading_digits', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 26: { - name: 'leading_zero_possible', - fieldType: goog.proto2.Message.FieldType.BOOL, - defaultValue: false, - type: Boolean + return i18n.phonenumbers.PhoneNumberDesc.descriptor_; +}; + + +// Export getDescriptor static function robust to minification. +i18n.phonenumbers.PhoneNumberDesc['ctor'] = i18n.phonenumbers.PhoneNumberDesc; +i18n.phonenumbers.PhoneNumberDesc['ctor'].getDescriptor = + i18n.phonenumbers.PhoneNumberDesc.prototype.getDescriptor; + + +/** @override */ +i18n.phonenumbers.PhoneMetadata.prototype.getDescriptor = function() { + if (!i18n.phonenumbers.PhoneMetadata.descriptor_) { + // The descriptor is created lazily when we instantiate a new instance. + var descriptorObj = { + 0: { + name: 'PhoneMetadata', + fullName: 'i18n.phonenumbers.PhoneMetadata' + }, + 1: { + name: 'general_desc', + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, + 2: { + name: 'fixed_line', + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, + 3: { + name: 'mobile', + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, + 4: { + name: 'toll_free', + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, + 5: { + name: 'premium_rate', + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, + 6: { + name: 'shared_cost', + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, + 7: { + name: 'personal_number', + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, + 8: { + name: 'voip', + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, + 21: { + name: 'pager', + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, + 25: { + name: 'uan', + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, + 27: { + name: 'emergency', + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, + 28: { + name: 'voicemail', + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, + 24: { + name: 'no_international_dialling', + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, + 9: { + name: 'id', + required: true, + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 10: { + name: 'country_code', + fieldType: goog.proto2.Message.FieldType.INT32, + type: Number + }, + 11: { + name: 'international_prefix', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 17: { + name: 'preferred_international_prefix', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 12: { + name: 'national_prefix', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 13: { + name: 'preferred_extn_prefix', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 15: { + name: 'national_prefix_for_parsing', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 16: { + name: 'national_prefix_transform_rule', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 18: { + name: 'same_mobile_and_fixed_line_pattern', + fieldType: goog.proto2.Message.FieldType.BOOL, + defaultValue: false, + type: Boolean + }, + 19: { + name: 'number_format', + repeated: true, + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.NumberFormat + }, + 20: { + name: 'intl_number_format', + repeated: true, + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.NumberFormat + }, + 22: { + name: 'main_country_for_code', + fieldType: goog.proto2.Message.FieldType.BOOL, + defaultValue: false, + type: Boolean + }, + 23: { + name: 'leading_digits', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 26: { + name: 'leading_zero_possible', + fieldType: goog.proto2.Message.FieldType.BOOL, + defaultValue: false, + type: Boolean + } + }; + i18n.phonenumbers.PhoneMetadata.descriptor_ = + goog.proto2.Message.createDescriptor( + i18n.phonenumbers.PhoneMetadata, descriptorObj); } -}); - - -goog.proto2.Message.set$Metadata(i18n.phonenumbers.PhoneMetadataCollection, { - 0: { - name: 'PhoneMetadataCollection', - fullName: 'i18n.phonenumbers.PhoneMetadataCollection' - }, - 1: { - name: 'metadata', - repeated: true, - fieldType: goog.proto2.Message.FieldType.MESSAGE, - type: i18n.phonenumbers.PhoneMetadata + return i18n.phonenumbers.PhoneMetadata.descriptor_; +}; + + +// Export getDescriptor static function robust to minification. +i18n.phonenumbers.PhoneMetadata['ctor'] = i18n.phonenumbers.PhoneMetadata; +i18n.phonenumbers.PhoneMetadata['ctor'].getDescriptor = + i18n.phonenumbers.PhoneMetadata.prototype.getDescriptor; + + +/** @override */ +i18n.phonenumbers.PhoneMetadataCollection.prototype.getDescriptor = function() { + if (!i18n.phonenumbers.PhoneMetadataCollection.descriptor_) { + // The descriptor is created lazily when we instantiate a new instance. + var descriptorObj = { + 0: { + name: 'PhoneMetadataCollection', + fullName: 'i18n.phonenumbers.PhoneMetadataCollection' + }, + 1: { + name: 'metadata', + repeated: true, + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneMetadata + } + }; + i18n.phonenumbers.PhoneMetadataCollection.descriptor_ = + goog.proto2.Message.createDescriptor( + i18n.phonenumbers.PhoneMetadataCollection, descriptorObj); } -}); + return i18n.phonenumbers.PhoneMetadataCollection.descriptor_; +}; + + +// Export getDescriptor static function robust to minification. +i18n.phonenumbers.PhoneMetadataCollection['ctor'] = i18n.phonenumbers.PhoneMetadataCollection; +i18n.phonenumbers.PhoneMetadataCollection['ctor'].getDescriptor = + i18n.phonenumbers.PhoneMetadataCollection.prototype.getDescriptor; diff --git a/javascript/i18n/phonenumbers/phonenumber.pb.js b/javascript/i18n/phonenumbers/phonenumber.pb.js index 2139bc18e..5bbf0b6f5 100644 --- a/javascript/i18n/phonenumbers/phonenumber.pb.js +++ b/javascript/i18n/phonenumbers/phonenumber.pb.js @@ -35,7 +35,7 @@ goog.require('goog.proto2.Message'); * @extends {goog.proto2.Message} */ i18n.phonenumbers.PhoneNumber = function() { - goog.proto2.Message.apply(this); + goog.proto2.Message.call(this); }; goog.inherits(i18n.phonenumbers.PhoneNumber, goog.proto2.Message); @@ -468,53 +468,69 @@ i18n.phonenumbers.PhoneNumber.CountryCodeSource = { }; -goog.proto2.Message.set$Metadata(i18n.phonenumbers.PhoneNumber, { - 0: { - name: 'PhoneNumber', - fullName: 'i18n.phonenumbers.PhoneNumber' - }, - 1: { - name: 'country_code', - required: true, - fieldType: goog.proto2.Message.FieldType.INT32, - type: Number - }, - 2: { - name: 'national_number', - required: true, - fieldType: goog.proto2.Message.FieldType.UINT64, - type: Number - }, - 3: { - name: 'extension', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 4: { - name: 'italian_leading_zero', - fieldType: goog.proto2.Message.FieldType.BOOL, - type: Boolean - }, - 8: { - name: 'number_of_leading_zeros', - fieldType: goog.proto2.Message.FieldType.INT32, - defaultValue: 1, - type: Number - }, - 5: { - name: 'raw_input', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String - }, - 6: { - name: 'country_code_source', - fieldType: goog.proto2.Message.FieldType.ENUM, - defaultValue: i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN, - type: i18n.phonenumbers.PhoneNumber.CountryCodeSource - }, - 7: { - name: 'preferred_domestic_carrier_code', - fieldType: goog.proto2.Message.FieldType.STRING, - type: String +/** @override */ +i18n.phonenumbers.PhoneNumber.prototype.getDescriptor = function() { + if (!i18n.phonenumbers.PhoneNumber.descriptor_) { + // The descriptor is created lazily when we instantiate a new instance. + var descriptorObj = { + 0: { + name: 'PhoneNumber', + fullName: 'i18n.phonenumbers.PhoneNumber' + }, + 1: { + name: 'country_code', + required: true, + fieldType: goog.proto2.Message.FieldType.INT32, + type: Number + }, + 2: { + name: 'national_number', + required: true, + fieldType: goog.proto2.Message.FieldType.UINT64, + type: Number + }, + 3: { + name: 'extension', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 4: { + name: 'italian_leading_zero', + fieldType: goog.proto2.Message.FieldType.BOOL, + type: Boolean + }, + 8: { + name: 'number_of_leading_zeros', + fieldType: goog.proto2.Message.FieldType.INT32, + defaultValue: 1, + type: Number + }, + 5: { + name: 'raw_input', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + }, + 6: { + name: 'country_code_source', + fieldType: goog.proto2.Message.FieldType.ENUM, + defaultValue: i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN, + type: i18n.phonenumbers.PhoneNumber.CountryCodeSource + }, + 7: { + name: 'preferred_domestic_carrier_code', + fieldType: goog.proto2.Message.FieldType.STRING, + type: String + } + }; + i18n.phonenumbers.PhoneNumber.descriptor_ = + goog.proto2.Message.createDescriptor( + i18n.phonenumbers.PhoneNumber, descriptorObj); } -}); + return i18n.phonenumbers.PhoneNumber.descriptor_; +}; + + +// Export getDescriptor static function robust to minification. +i18n.phonenumbers.PhoneNumber['ctor'] = i18n.phonenumbers.PhoneNumber; +i18n.phonenumbers.PhoneNumber['ctor'].getDescriptor = + i18n.phonenumbers.PhoneNumber.prototype.getDescriptor; diff --git a/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java b/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java index 2a264def9..cbf7b7c9e 100644 --- a/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java +++ b/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java @@ -383,6 +383,14 @@ public class BuildMetadataJsonFromXml extends Command { toJsArray(metadata.getEmergency(), jsArrayBuilder); // optional PhoneNumberDesc voicemail = 28; toJsArray(metadata.getVoicemail(), jsArrayBuilder); + // Fields 29-31 are omitted due to space increase. + // optional PhoneNumberDesc short_code = 29; + // optional PhoneNumberDesc standard_rate = 30; + // optional PhoneNumberDesc carrier_specific = 31; + // optional bool mobile_number_portable_region = 32 [default=false]; + // Omit since the JS API doesn't expose this data. + // Note: Need to add null for each of the above fields when a subsequent + // field is being populated. jsArrayBuilder.endArray(); } From c169c04671b811c30bf44462549a352eccbb76fe Mon Sep 17 00:00:00 2001 From: Andy Staudacher Date: Tue, 10 Feb 2015 12:33:37 +0100 Subject: [PATCH 3/4] Update instructions to reflect that the JavaScript ant 'compile' target is broken right now (and 'compile-demo' should be used instead) --- javascript/README | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/javascript/README b/javascript/README index de9b402e9..6327071a4 100644 --- a/javascript/README +++ b/javascript/README @@ -10,7 +10,7 @@ How to setup: next to libphonenumber: e.g. -svn checkout http://libphonenumber.googlecode.com/svn/trunk/ ~/src/libphonenumber +git clone https://github.com/googlei18n/libphonenumber/ git clone https://github.com/google/closure-library/ git clone https://github.com/google/closure-compiler.git svn checkout http://closure-linter.googlecode.com/svn/trunk/ ~/src/closure-linter @@ -81,9 +81,11 @@ project: AsYouTypeFormatterTest.java => asyoutypeformatter_test.js 4. Run the Closure Compiler to get your changes syntax and type checked. - This will also generate demo-compiled.js used by demo-compiler.html: + This will also generate demo-compiled.js used by demo-compiler.html + (TODO: Use target "compile" rather than "compile-demo" once + visibility issues for getExtractedNationalPrefix_ have been resolved): - ant -f javascript/build.xml compile + ant -f javascript/build.xml compile-demo 5. Run the Closure Linter to lint the JavaScript files: From 68600571e5e627772325c4e0d736b4e17baf3ee0 Mon Sep 17 00:00:00 2001 From: Andy Staudacher Date: Tue, 10 Feb 2015 12:34:41 +0100 Subject: [PATCH 4/4] Regenerate the demo-compiled.js --- javascript/i18n/phonenumbers/demo-compiled.js | 130 +++++++++--------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/javascript/i18n/phonenumbers/demo-compiled.js b/javascript/i18n/phonenumbers/demo-compiled.js index 9a9ae3aad..a7c4a758c 100644 --- a/javascript/i18n/phonenumbers/demo-compiled.js +++ b/javascript/i18n/phonenumbers/demo-compiled.js @@ -1,16 +1,16 @@ -(function(){var k,l=this; +(function(){var k=this; function aa(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"== -b&&"undefined"==typeof a.call)return"object";return b}function n(a){return"string"==typeof a}function p(a,b){function c(){}c.prototype=b.prototype;a.Aa=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.Ja=function(a,c,f){return b.prototype[c].apply(a,Array.prototype.slice.call(arguments,2))}};var ba=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};function ca(a,b){return ab?1:0};var da=Array.prototype,ea=da.indexOf?function(a,b,c){return da.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(n(a))return n(b)&&1==b.length?a.indexOf(b,c):-1;for(;cb?1:aparseFloat(a))?String(b):a}(),qa={}; -function ra(a){if(!qa[a]){for(var b=0,c=ba(String(pa)).split("."),d=ba(String(a)).split("."),e=Math.max(c.length,d.length),f=0;0==b&&fb?e+="000":256>b?e+="00":4096>b&&(e+="0");return Aa[a]=e+b.toString(16)}),'"')};function Ca(a,b,c){this.h=b;this.pa=c.name;this.r=!!c.ga;this.k=c.a;this.qa=c.type;this.ma=!1;switch(this.k){case Da:case Ea:case Fa:case Ga:case Ha:case Ia:case Ja:this.ma=!0}this.w=c.defaultValue}var Ja=1,Ia=2,Da=3,Ea=4,Fa=6,Ga=16,Ha=18;Ca.prototype.getName=function(){return this.pa};function Ka(a,b,c){this.ya=a;this.pa=b.name||null;this.l={};for(a=0;ab?1:0};function ea(a,b){b.unshift(a);p.call(this,ba.apply(null,b));b.shift()}n(ea,p);ea.prototype.name="AssertionError";function fa(a,b){throw new ea("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));};var ga=Array.prototype,ha=ga.indexOf?function(a,b,c){return ga.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(l(a))return l(b)&&1==b.length?a.indexOf(b,c):-1;for(;cb?1:aparseFloat(a))?String(b):a}(),ta={}; +function ua(a){if(!ta[a]){for(var b=0,c=ca(String(sa)).split("."),d=ca(String(a)).split("."),e=Math.max(c.length,d.length),f=0;0==b&&fb?e+="000":256>b?e+="00":4096>b&&(e+="0");return Ea[a]=e+b.toString(16)}),'"')};function Ga(a,b,c){this.i=b;this.oa=c.name;this.r=!!c.ra;this.l=c.a;this.pa=c.type;this.ka=!1;switch(this.l){case Ha:case Ia:case Ja:case Ka:case La:case Ma:case Na:this.ka=!0}this.w=c.defaultValue}var Na=1,Ma=2,Ha=3,Ia=4,Ja=6,Ka=16,La=18;Ga.prototype.getName=function(){return this.oa};function Oa(a,b,c){this.xa=a;this.oa=b.name||null;this.m={};for(a=0;aa.length?!1:Q(db,a)}function lb(a){return Q(bb,a)?R(a,Va):R(a,O)}function mb(a){var b=lb(a.toString());a.clear();a.append(b)}function R(a,b){for(var c=new G,d,e=a.length,f=0;f=e){a=c;break}d=d.substring(0,e);d=R(d,O);if(0==d.length){a=c;break}g=g.clone();z(g,4);d=[g];g=b.e();c=S(b);g in M?(a=U(a,g,V(g)),e="",e=vb(d,c),null==e?e=c:(d=e.clone(),e=B(e,4),0=f&&f<=e;++f)if(d=parseInt(c.substring(0,f),10),d in M)return b.append(c.substring(f)),d;return 0} -function Eb(a,b,c,d,e){if(0==a.length)return 0;a=new G(a);var f;null!=b&&(f=x(b,11));null==f&&(f="NonMatch");var g=a.toString();if(0==g.length)f=20;else if(P.test(g))g=g.replace(P,""),a.clear(),a.append(lb(g)),f=1;else{g=new RegExp(f);mb(a);f=a.toString();if(0==f.search(g)){var g=f.match(g)[0].length,h=f.substring(g).match(Ya);h&&null!=h[1]&&0=a.f.length)throw"Phone number too short after IDD"; -c=Db(a,c);if(0!=c)return e.da(c),c;throw"Invalid country calling code";}if(null!=b&&(f=b.e(),g=""+f,h=a.toString(),0==h.lastIndexOf(g,0))){var m=new G(h.substring(g.length)),h=x(b,1),g=new RegExp(B(h,2));Fb(m,b,null);b=m.toString();h=B(h,3);if(!Q(g,a.toString())&&Q(g,b)||3==Bb(h,a.toString()))return c.append(b),d&&y(e,6,10),e.da(f),f}e.da(0);return 0} -function Fb(a,b,c){var d=a.toString(),e=d.length,f=x(b,15);if(0!=e&&null!=f&&0!=f.length&&(f=new RegExp("^(?:"+f+")"),e=f.exec(d))){var g=RegExp,h;h=x(b,1);h=B(h,2);g=new g(h);h=Q(g,d);var m=e.length-1;b=x(b,16);if(null==b||0==b.length||null==e[m]||0==e[m].length){if(!h||Q(g,d.substring(e[0].length)))null!=c&&0b.f.length)throw"The string supplied is too short to be a phone number";null!=g&&(a=new G,c=new G(b.toString()),Fb(c,g,a),e=c.toString(),g=x(g,1),g=B(g,3),2!=Bb(g,e)&&(b=c,d&&y(f,7,a.toString())));d=b.toString();a=d.length;if(2>a)throw"The string supplied is too short to be a phone number";if(17a.length?!1:P(mb,a)}function ub(a){return P(kb,a)?Q(a,db):Q(a,M)}function vb(a){var b=ub(a.toString());a.clear();a.append(b)}function Q(a,b){for(var c=new E,d,e=a.length,f=0;f=e){a=c;break}d=d.substring(0,e);d=Q(d,M);if(0==d.length){a=c;break}g=g.clone();Ta(g,4);d=[g];g=b.f();c=R(b);g in K?(a=T(a,g,U(g)),e="",e=Eb(d,c),null==e?e=c:(d=e.clone(),e=A(e,4),0=f&&f<=e;++f)if(d=parseInt(c.substring(0,f),10),d in K)return b.append(c.substring(f)),d;return 0} +function Nb(a,b,c,d,e){if(0==a.length)return 0;a=new E(a);var f;null!=b&&(f=x(b,11));null==f&&(f="NonMatch");var g=a.toString();if(0==g.length)f=20;else if(O.test(g))g=g.replace(O,""),a.clear(),a.append(ub(g)),f=1;else{g=new RegExp(f);vb(a);f=a.toString();if(0==f.search(g)){var g=f.match(g)[0].length,h=f.substring(g).match(gb);h&&null!=h[1]&&0=a.g.length)throw"Phone number too short after IDD"; +c=Mb(a,c);if(0!=c)return e.da(c),c;throw"Invalid country calling code";}if(null!=b&&(f=b.f(),g=""+f,h=a.toString(),0==h.lastIndexOf(g,0))){var m=new E(h.substring(g.length)),h=x(b,1),g=new RegExp(A(h,2));Ob(m,b,null);b=m.toString();h=A(h,3);if(!P(g,a.toString())&&P(g,b)||3==Kb(h,a.toString()))return c.append(b),d&&y(e,6,10),e.da(f),f}e.da(0);return 0} +function Ob(a,b,c){var d=a.toString(),e=d.length,f=x(b,15);if(0!=e&&null!=f&&0!=f.length&&(f=new RegExp("^(?:"+f+")"),e=f.exec(d))){var g=RegExp,h;h=x(b,1);h=A(h,2);g=new g(h);h=P(g,d);var m=e.length-1;b=x(b,16);if(null==b||0==b.length||null==e[m]||0==e[m].length){if(!h||P(g,d.substring(e[0].length)))null!=c&&0b.g.length)throw"The string supplied is too short to be a phone number";null!=g&&(a=new E,c=new E(b.toString()),Ob(c,g,a),e=c.toString(),g=x(g,1),g=A(g,3),2!=Kb(g,e)&&(b=c,d&&y(f,7,a.toString())));d=b.toString();a=d.length;if(2>a)throw"The string supplied is too short to be a phone number";if(17