code: public final List<PhoneNumberData> getSuggstions(final String psearch, final int plimit,
        final Locale plocale) {
      final List<PhoneNumberData> suggestList = new ArrayList<>(plimit);
      final String cleanedPhoneNumber = cleanString(psearch);
      PhoneCountryCodeData foundCounty = null;
      final List<PhoneCountryCodeData> possibleCountries = new ArrayList<>(plimit);
      for (final PhoneCountryCodeData countryCode : CreatePhoneCountryConstantsClass.create(plocale)
          .countryCodeData()) {
        if (cleanedPhoneNumber.startsWith(countryCode.getCountryCode())) {
          foundCounty = countryCode;
          break;
        }
        if (countryCode.getCountryCode().startsWith(cleanedPhoneNumber)) {
          possibleCountries.add(countryCode);
        }
      }
      if (foundCounty == null) {
        // we don't have found a matching country, show possible countries
        for (final PhoneCountryCodeData country : possibleCountries) {
          final PhoneNumberData entry = new PhoneNumberData();
          entry.setCountryCode(country.getCountryCode());
          entry.setCountryName(country.getCountryCodeName());
          suggestList.add(entry);
        }
      } else {
        // we do have a country, search for possible area codes
        final String phoneNumberWork =
            StringUtils.substring(cleanedPhoneNumber, foundCounty.getCountryCode().length());
        for (final PhoneAreaCodeData areaCode : foundCounty.getAreaCodeData()) {
          if (!areaCode.isRegEx() && areaCode.getAreaCode().startsWith(phoneNumberWork)) {
            final PhoneNumberData entry = new PhoneNumberData();
            entry.setCountryCode(foundCounty.getCountryCode());
            entry.setCountryName(foundCounty.getCountryCodeName());
            entry.setAreaCode(areaCode.getAreaCode());
            entry.setAreaName(areaCode.getAreaName());
            suggestList.add(entry);
          }
        }
      }
      Collections.sort(suggestList, new PhoneNumberSuggestComperator());
      if (suggestList.size() >= plimit) {
        return suggestList.subList(0, plimit);
      }
      return suggestList;
    }
docs: get suggestions.
  
  @param psearch search string
  @param plimit limit entries
  @param plocale locale
  @return list of phone number data