/testing/library/src/com/google/appengine/library/Util.java

http://datanucleus-appengine.googlecode.com/ · Java · 55 lines · 40 code · 11 blank · 4 comment · 5 complexity · 306df53316f0fb3240608b0546c4afb5 MD5 · raw file

  1. package com.google.appengine.library;
  2. import java.util.Enumeration;
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import javax.servlet.http.HttpServletRequest;
  6. final class Util {
  7. /**
  8. * Convenience class that returns "" for {@code null} value. This saves the
  9. * check against {@code null} at caller.
  10. */
  11. static final class NullToEmptyMapWrapper {
  12. final private Map<String, String> map;
  13. public NullToEmptyMapWrapper(Map<String, String> map) {
  14. this.map = map;
  15. }
  16. public String get(String k) {
  17. String v = map.get(k);
  18. return v == null ? "" : v;
  19. }
  20. public String put(String k, String v) {
  21. return map.put(k, v);
  22. }
  23. }
  24. static final String nullSafeToString(Object obj) {
  25. return obj != null ? obj.toString() : "";
  26. }
  27. @SuppressWarnings("unchecked")
  28. static NullToEmptyMapWrapper wrapFormFields(HttpServletRequest req) {
  29. Map<String, String> formFieldsMap = new HashMap<String, String>();
  30. for (Enumeration<String> e = req.getParameterNames(); e.hasMoreElements();) {
  31. String fieldName = e.nextElement();
  32. String[] fieldValues = req.getParameterValues(fieldName);
  33. String oneValue = null; // holds the parameter as a concatenated string.
  34. if (fieldValues.length > 0) {
  35. oneValue = fieldValues[0];
  36. }
  37. for (int i = 1; i < fieldValues.length; i++) {
  38. oneValue += " " + fieldValues[i];
  39. }
  40. formFieldsMap.put(fieldName, oneValue);
  41. }
  42. return new NullToEmptyMapWrapper(formFieldsMap);
  43. }
  44. }