package ch.heigvd.cld.lab; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.appengine.api.datastore.DatastoreService; import com.google.appengine.api.datastore.DatastoreServiceFactory; import com.google.appengine.api.datastore.Entity; @SuppressWarnings("serial") public class DatastoreWriteServlet extends HttpServlet{ private static Logger LOG = Logger.getLogger(DatastoreWriteServlet.class.getSimpleName()); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Map params = req.getParameterMap(); Map values = new HashMap<>(); String kind = null; String key = null; for (Map.Entry entry : params.entrySet()) { String name = entry.getKey(); String value = entry.getValue()[0]; switch(name) { case "_kind": kind = value; break; case "_key": key = value; break; default: values.put(name, value); break; } } resp.setContentType("text/plain"); PrintWriter pw = resp.getWriter(); if (kind == null) { pw.println("Requires '_kind' parameter"); return; } else { pw.println("Writing entity to datastore."); } DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); Entity book = null; if (key != null) { book = new Entity(kind, key); } else { book = new Entity(kind); } for (Map.Entry pair : values.entrySet()) { book.setProperty(pair.getKey(), pair.getValue()); } datastore.put(book); } }