in builder.go [533:569]
func setRelevantDescPatterns(metadata *PhoneMetadata, element *TerritoryE, isShortNumberMetadata bool) {
generalDesc := processPhoneNumberDescElement(nil, element.GeneralDesc)
// Calculate the possible lengths for the general description. This will be based on the
// possible lengths of the child elements.
setPossibleLengthsGeneralDesc(generalDesc, metadata.GetId(), element, isShortNumberMetadata)
metadata.GeneralDesc = generalDesc
if !isShortNumberMetadata {
// Set fields used by regular length phone numbers.
metadata.FixedLine = processPhoneNumberDescElement(generalDesc, element.FixedLine)
metadata.Mobile = processPhoneNumberDescElement(generalDesc, element.Mobile)
metadata.SharedCost = processPhoneNumberDescElement(generalDesc, element.SharedCost)
metadata.Voip = processPhoneNumberDescElement(generalDesc, element.VOIP)
metadata.PersonalNumber = processPhoneNumberDescElement(generalDesc, element.PersonalNumber)
metadata.Pager = processPhoneNumberDescElement(generalDesc, element.Pager)
metadata.Uan = processPhoneNumberDescElement(generalDesc, element.UAN)
metadata.Voicemail = processPhoneNumberDescElement(generalDesc, element.VoiceMail)
metadata.NoInternationalDialling = processPhoneNumberDescElement(generalDesc, element.NoInternationalDialing)
mobileAndFixedAreSame := *metadata.Mobile.NationalNumberPattern == *metadata.FixedLine.NationalNumberPattern
if metadata.GetSameMobileAndFixedLinePattern() != mobileAndFixedAreSame {
metadata.SameMobileAndFixedLinePattern = bp(mobileAndFixedAreSame)
}
metadata.TollFree = processPhoneNumberDescElement(generalDesc, element.TollFree)
metadata.PremiumRate = processPhoneNumberDescElement(generalDesc, element.PremiumRate)
} else {
// Set fields used by short numbers.
metadata.StandardRate = processPhoneNumberDescElement(generalDesc, element.StandardRate)
metadata.ShortCode = processPhoneNumberDescElement(generalDesc, element.ShortCode)
metadata.CarrierSpecific = processPhoneNumberDescElement(generalDesc, element.CarrierSpecific)
metadata.Emergency = processPhoneNumberDescElement(generalDesc, element.Emergency)
metadata.TollFree = processPhoneNumberDescElement(generalDesc, element.TollFree)
metadata.PremiumRate = processPhoneNumberDescElement(generalDesc, element.PremiumRate)
}
}