func setRelevantDescPatterns()

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)
	}
}