private boolean attemptToExtractIdd(){
  Pattern internationalPrefix=regexCache.getPatternForRegex("\\" + PhoneNumberUtil.PLUS_SIGN + "|"+ currentMetadata.getInternationalPrefix());
  Matcher iddMatcher=internationalPrefix.matcher(accruedInputWithoutFormatting);
  if (iddMatcher.lookingAt()) {
    isCompleteNumber=true;
    int startOfCountryCallingCode=iddMatcher.end();
    nationalNumber.setLength(0);
    nationalNumber.append(accruedInputWithoutFormatting.substring(startOfCountryCallingCode));
    prefixBeforeNationalNumber.setLength(0);
    prefixBeforeNationalNumber.append(accruedInputWithoutFormatting.substring(0,startOfCountryCallingCode));
    if (accruedInputWithoutFormatting.charAt(0) != PhoneNumberUtil.PLUS_SIGN) {
      prefixBeforeNationalNumber.append(SEPARATOR_BEFORE_NATIONAL_NUMBER);
    }
    return true;
  }
  return false;
}

private boolean attemptToExtractIdd ( ) { Pattern internationalPrefix = regexCache . getPatternForRegex ( "\\" + PhoneNumberUtil . PLUS_SIGN + "|" + currentMetadata . getInternationalPrefix ( ) ) ; Matcher iddMatcher = internationalPrefix . matcher ( accruedInputWithoutFormatting ) ; if ( iddMatcher . lookingAt ( ) ) { isCompleteNumber = true ; int startOfCountryCallingCode = iddMatcher . end ( ) ; nationalNumber . setLength ( 0 ) ; nationalNumber . append ( accruedInputWithoutFormatting . substring ( startOfCountryCallingCode ) ) ; prefixBeforeNationalNumber . setLength ( 0 ) ; prefixBeforeNationalNumber . append ( accruedInputWithoutFormatting . substring ( 0 , startOfCountryCallingCode ) ) ; if ( accruedInputWithoutFormatting . charAt ( 0 ) != PhoneNumberUtil . PLUS_SIGN ) { prefixBeforeNationalNumber . append ( SEPARATOR_BEFORE_NATIONAL_NUMBER ) ; } return true ; } return false ; }
extracts idd and plus sign to prefixbeforenationalnumber when they are available , and places the remaining input into nationalnumber .
