func processPhoneNumberDescElement()

in builder.go [403:431]


func processPhoneNumberDescElement(parentDesc *PhoneNumberDesc, element *PhoneNumberDescE) *PhoneNumberDesc {
	numberDesc := PhoneNumberDesc{}
	if element == nil {
		numberDesc.NationalNumberPattern = sp("NA")
		return &numberDesc
	}
	if parentDesc != nil {
		// New way of handling possible number lengths. We don't do this for the general
		// description, since these tags won't be present; instead we will calculate its values
		// based on the values for all the other number type descriptions (see
		// setPossibleLengthsGeneralDesc).
		lengths := make(map[int32]bool)
		localOnlyLengths := make(map[int32]bool)
		populatePossibleLengthSets([]*PhoneNumberDescE{element}, lengths, localOnlyLengths)
		setPossibleLengths(lengths, localOnlyLengths, parentDesc, &numberDesc)
	}

	validPattern := element.NationalNumberPattern
	if validPattern != "" {
		numberDesc.NationalNumberPattern = sp(validateRE(validPattern, true))
	}

	exampleNumber := element.ExampleNumber
	if exampleNumber != "" {
		numberDesc.ExampleNumber = sp(exampleNumber)
	}

	return &numberDesc
}