if (fieldName.equals("phoneNumber")) {
phoneNumber = Streams.asString(in, "UTF-8");
} else if (fieldName.equals("defaultCountry")) {
- defaultCountry = Streams.asString(in);
+ defaultCountry = Streams.asString(in).toUpperCase();
} else if (fieldName.equals("languageCode")) {
- String languageEntered = Streams.asString(in);
+ String languageEntered = Streams.asString(in).toLowerCase();
if (languageEntered.length() > 0) {
languageCode = languageEntered;
}
} else if (fieldName.equals("regionCode")) {
- regionCode = Streams.asString(in);
+ regionCode = Streams.asString(in).toUpperCase();
}
} else {
try {
StringBuilder output;
if (fileContents.length() == 0) {
output = getOutputForSingleNumber(phoneNumber, defaultCountry, languageCode, regionCode);
- resp.setContentType("text/plain");
+ resp.setContentType("text/html");
resp.setCharacterEncoding("UTF-8");
- resp.getWriter().println("Phone Number entered: " + phoneNumber);
- resp.getWriter().println("defaultCountry entered: " + defaultCountry);
+ resp.getWriter().println("<html><head>");
+ resp.getWriter().println(
+ "<link type=\"text/css\" rel=\"stylesheet\" href=\"/stylesheets/main.css\" />");
+ resp.getWriter().println("</head>");
+ resp.getWriter().println("<body>");
+ resp.getWriter().println("Phone Number entered: " + phoneNumber + "<br>");
+ resp.getWriter().println("defaultCountry entered: " + defaultCountry + "<br>");
resp.getWriter().println(
"Language entered: " + languageCode +
- (regionCode.length() == 0 ? "" : " (" + regionCode + ")"));
+ (regionCode.length() == 0 ? "" : " (" + regionCode + ")" + "<br>"));
} else {
output = getOutputForFile(defaultCountry, fileContents);
resp.setContentType("text/html");
}
resp.getWriter().println(output);
+ resp.getWriter().println("</body></html>");
}
private StringBuilder getOutputForFile(String defaultCountry, String fileContents) {
return output;
}
+ private void appendLine(String title, String data, StringBuilder output) {
+ output.append("<TR>");
+ output.append("<TH>").append(title).append("</TH>");
+ output.append("<TD>").append(data.length() > 0 ? data : " ").append("</TD>");
+ output.append("</TR>");
+ }
+
/**
* The defaultCountry here is used for parsing phoneNumber. The languageCode and regionCode are
* used to specify the language used for displaying the area descriptions generated from phone
StringBuilder output = new StringBuilder();
try {
PhoneNumber number = phoneUtil.parseAndKeepRawInput(phoneNumber, defaultCountry);
- output.append("\n\n****Parsing Result:****");
- output.append("\ncountry_code: ").append(number.getCountryCode());
- output.append("\nnational_number: ").append(number.getNationalNumber());
- output.append("\nextension:").append(number.getExtension());
- output.append("\ncountry_code_source: ").append(number.getCountryCodeSource());
- output.append("\nitalian_leading_zero: ").append(number.isItalianLeadingZero());
- output.append("\nraw_input: ").append(number.getRawInput());
-
- output.append("\n\n****Validation Results:****");
+ output.append("<DIV>");
+ output.append("<TABLE border=1>");
+ output.append("<TR><TD colspan=2>Parsing Result</TD></TR>");
+
+ appendLine("country_code", Integer.toString(number.getCountryCode()), output);
+ appendLine("national_number", Long.toString(number.getNationalNumber()), output);
+ appendLine("extension", number.getExtension(), output);
+ appendLine("country_code_source", number.getCountryCodeSource().toString(), output);
+ appendLine("italian_leading_zero", Boolean.toString(number.isItalianLeadingZero()), output);
+ appendLine("raw_input", number.getRawInput(), output);
+ output.append("</TABLE>");
+ output.append("</DIV>");
+
boolean isNumberValid = phoneUtil.isValidNumber(number);
- output.append("\nResult from isValidNumber(): ").append(isNumberValid);
- output.append("\nResult from isValidNumberForRegion(): ").append(
- phoneUtil.isValidNumberForRegion(number, defaultCountry));
- output.append("\nPhone Number region: ").append(phoneUtil.getRegionCodeForNumber(number));
- output.append("\nResult from isPossibleNumber(): ").append(
- phoneUtil.isPossibleNumber(number));
- output.append("\nResult from getNumberType(): ").append(phoneUtil.getNumberType(number));
-
- output.append("\n\n****Formatting Results:**** ");
- output.append("\nE164 format: ").append(
- isNumberValid ? phoneUtil.format(number, PhoneNumberFormat.E164) : "invalid");
- output.append("\nOriginal format: ").append(
- phoneUtil.formatInOriginalFormat(number, defaultCountry));
- output.append("\nInternational format: ").append(
- isNumberValid ? phoneUtil.format(number, PhoneNumberFormat.INTERNATIONAL) : "invalid");
- output.append("\nNational format: ").append(
- phoneUtil.format(number, PhoneNumberFormat.NATIONAL));
- output.append("\nOut-of-country format from US: ").append(
- isNumberValid ? phoneUtil.formatOutOfCountryCallingNumber(number, "US") : "invalid");
- output.append("\n\n****AsYouTypeFormatter Results****");
+
+ output.append("<DIV>");
+ output.append("<TABLE border=1>");
+ output.append("<TR><TD colspan=2>Validation Results</TD></TR>");
+ appendLine("Result from isValidNumber()", Boolean.toString(isNumberValid), output);
+ appendLine(
+ "Result from isValidNumberForRegion()",
+ Boolean.toString(phoneUtil.isValidNumberForRegion(number, defaultCountry)),
+ output);
+ appendLine("Phone Number region", phoneUtil.getRegionCodeForNumber(number), output);
+ appendLine("Result from isPossibleNumber()",
+ Boolean.toString(phoneUtil.isPossibleNumber(number)), output);
+ appendLine("Result from getNumberType()", phoneUtil.getNumberType(number).toString(), output);
+ output.append("</TABLE>");
+ output.append("</DIV>");
+
+ output.append("<DIV>");
+ output.append("<TABLE border=1>");
+ output.append("<TR><TD colspan=2>Formatting Results</TD></TR>");
+ appendLine("E164 format",
+ isNumberValid ? phoneUtil.format(number, PhoneNumberFormat.E164) : "invalid",
+ output);
+ appendLine("Original format",
+ phoneUtil.formatInOriginalFormat(number, defaultCountry), output);
+ appendLine(
+ "International format",
+ isNumberValid ? phoneUtil.format(number, PhoneNumberFormat.INTERNATIONAL) : "invalid",
+ output);
+ appendLine("National format", phoneUtil.format(number, PhoneNumberFormat.NATIONAL), output);
+ appendLine(
+ "Out-of-country format from US",
+ isNumberValid ? phoneUtil.formatOutOfCountryCallingNumber(number, "US") : "invalid",
+ output);
+ output.append("</TABLE>");
+ output.append("</DIV>");
+
AsYouTypeFormatter formatter = phoneUtil.getAsYouTypeFormatter(defaultCountry);
int rawNumberLength = phoneNumber.length();
+ output.append("<DIV>");
+ output.append("<TABLE border=1>");
+ output.append("<TR><TD colspan=2>AsYouTypeFormatter Results</TD></TR>");
for (int i = 0; i < rawNumberLength; i++) {
// Note this doesn't handle supplementary characters, but it shouldn't be a big deal as
// there are no dial-pad characters in the supplementary range.
char inputChar = phoneNumber.charAt(i);
- output.append("\nChar entered: ").append(inputChar).append(" Output: ")
- .append(formatter.inputDigit(inputChar));
+ appendLine("Char entered: '" + inputChar + "' Output: ",
+ formatter.inputDigit(inputChar), output);
}
- output.append("\n\n****PhoneNumberOfflineGeocoder Results****");
- output.append("\n" +
+ output.append("</TABLE>");
+ output.append("</DIV>");
+
+ output.append("<DIV>");
+ output.append("<TABLE border=1>");
+ output.append("<TR><TD colspan=2>PhoneNumberOfflineGeocoder Results</TD></TR>");
+ appendLine(
+ "Location",
PhoneNumberOfflineGeocoder.getInstance().getDescriptionForNumber(
- number, new Locale(languageCode, regionCode)));
+ number, new Locale(languageCode, regionCode)),
+ output);
+ output.append("</TABLE>");
+ output.append("</DIV>");
} catch (NumberParseException e) {
output.append(e.toString());
}