private void getAvailableFormats(String leadingThreeDigits) { List <NumberFormat> formatList = (isCompleteNumber && currentMetadata.intlNumberFormatSize() > 0) ? currentMetadata.intlNumberFormats() : currentMetadata.numberFormats(); boolean nationalPrefixIsUsedByCountry = currentMetadata.hasNationalPrefix(); foreach (NumberFormat format in formatList) { if (!nationalPrefixIsUsedByCountry || isCompleteNumber || format.isNationalPrefixOptionalWhenFormatting() || PhoneNumberUtil.formattingRuleHasFirstGroupOnly(format.getNationalPrefixFormattingRule())) { if (isFormatEligible(format.getFormat())) { possibleFormats.add(format); } } } narrowDownPossibleFormats(leadingThreeDigits); }