private function formatNsn($number, PhoneMetadata $metadata, $numberFormat, $carrierCode = null) { $intlNumberFormats = $metadata->intlNumberFormats(); // When the intlNumberFormats exists, we use that to format national number for the // INTERNATIONAL format instead of using the numberDesc.numberFormats. $availableFormats = count($intlNumberFormats) == 0 || $numberFormat == PhoneNumberFormat::NATIONAL ? $metadata->numberFormats() : $metadata->intlNumberFormats(); $formattingPattern = $this->chooseFormattingPatternForNumber($availableFormats, $number); return $formattingPattern === null ? $number : $this->formatNsnUsingPattern($number, $formattingPattern, $numberFormat, $carrierCode); }