// @VisibleForTesting internal static PhoneMetadata.Builder loadTerritoryTagMetadata(String regionCode, XmlElement element, String nationalPrefix) { PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder(); metadata.setId(regionCode); if (element.HasAttribute(COUNTRY_CODE)) { metadata.setCountryCode(int.Parse(element.GetAttribute(COUNTRY_CODE))); } if (element.HasAttribute(LEADING_DIGITS)) { metadata.setLeadingDigits(validateRE(element.GetAttribute(LEADING_DIGITS))); } metadata.setInternationalPrefix(validateRE(element.GetAttribute(INTERNATIONAL_PREFIX))); if (element.HasAttribute(PREFERRED_INTERNATIONAL_PREFIX)) { String preferredInternationalPrefix = element.GetAttribute(PREFERRED_INTERNATIONAL_PREFIX); metadata.setPreferredInternationalPrefix(preferredInternationalPrefix); } if (element.HasAttribute(NATIONAL_PREFIX_FOR_PARSING)) { metadata.setNationalPrefixForParsing( validateRE(element.GetAttribute(NATIONAL_PREFIX_FOR_PARSING), true)); if (element.HasAttribute(NATIONAL_PREFIX_TRANSFORM_RULE)) { metadata.setNationalPrefixTransformRule( validateRE(element.GetAttribute(NATIONAL_PREFIX_TRANSFORM_RULE))); } } if (nationalPrefix.Length != 0) { metadata.setNationalPrefix(nationalPrefix); if (!metadata.HasNationalPrefixForParsing()) { metadata.setNationalPrefixForParsing(nationalPrefix); } } if (element.HasAttribute(PREFERRED_EXTN_PREFIX)) { metadata.setPreferredExtnPrefix(element.GetAttribute(PREFERRED_EXTN_PREFIX)); } if (element.HasAttribute(MAIN_COUNTRY_FOR_CODE)) { metadata.setMainCountryForCode(true); } if (element.HasAttribute(LEADING_ZERO_POSSIBLE)) { metadata.setLeadingZeroPossible(true); } if (element.HasAttribute(MOBILE_NUMBER_PORTABLE_REGION)) { metadata.setMobileNumberPortableRegion(true); } return(metadata); }