/demos/helloorm/src/com/google/appengine/demos/helloorm/UpdateFlight.java

http://datanucleus-appengine.googlecode.com/ · Java · 66 lines · 53 code · 9 blank · 4 comment · 9 complexity · 8dda36d88136d0ba3214c08c07f0ffa8 MD5 · raw file

  1. // Copyright 2008 Google Inc. All Rights Reserved.
  2. package com.google.appengine.demos.helloorm;
  3. import java.io.IOException;
  4. import javax.jdo.PersistenceManager;
  5. import javax.persistence.EntityManager;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. /**
  10. * @author Max Ross <maxr@google.com>
  11. */
  12. public class UpdateFlight extends HttpServlet {
  13. @Override
  14. public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
  15. String key = req.getParameter("key");
  16. String orig = req.getParameter("orig");
  17. String dest = req.getParameter("dest");
  18. if (key == null) {
  19. resp.getWriter().println("No key provided.");
  20. return;
  21. }
  22. if (orig == null) {
  23. resp.getWriter().println("No origin provided.");
  24. return;
  25. }
  26. if (dest == null) {
  27. resp.getWriter().println("No destination provided.");
  28. return;
  29. }
  30. if (PersistenceStandard.get() == PersistenceStandard.JPA) {
  31. doPostJPA(Long.valueOf(key), orig, dest);
  32. } else {
  33. doPostJDO(Long.valueOf(key), orig, dest);
  34. }
  35. resp.sendRedirect("/");
  36. }
  37. private void doPostJDO(long key, String orig, String dest) {
  38. PersistenceManager pm = PMF.get().getPersistenceManager();
  39. try {
  40. Flight f = pm.getObjectById(Flight.class, key);
  41. f.setOrig(orig);
  42. f.setDest(dest);
  43. } finally {
  44. pm.close();
  45. }
  46. }
  47. private void doPostJPA(long key, String orig, String dest) {
  48. EntityManager em = EMF.get().createEntityManager();
  49. try {
  50. Flight f = em.find(Flight.class, key);
  51. f.setOrig(orig);
  52. f.setDest(dest);
  53. } finally {
  54. em.close();
  55. }
  56. }
  57. }