extensions/net.sf.basedb.meludi/trunk/src/net/sf/basedb/meludi/servlet/SubtypeServlet.java

Code
Comments
Other
Rev Date Author Line
2933 14 Nov 14 olle 1 package net.sf.basedb.meludi.servlet;
2933 14 Nov 14 olle 2
2933 14 Nov 14 olle 3 import java.io.IOException;
2933 14 Nov 14 olle 4
2933 14 Nov 14 olle 5 import javax.servlet.ServletException;
2933 14 Nov 14 olle 6 import javax.servlet.http.HttpServlet;
2933 14 Nov 14 olle 7 import javax.servlet.http.HttpServletRequest;
2933 14 Nov 14 olle 8 import javax.servlet.http.HttpServletResponse;
2933 14 Nov 14 olle 9
2933 14 Nov 14 olle 10 import org.json.simple.JSONObject;
2933 14 Nov 14 olle 11
2933 14 Nov 14 olle 12 import net.sf.basedb.core.Application;
2933 14 Nov 14 olle 13 import net.sf.basedb.core.DbControl;
2933 14 Nov 14 olle 14 import net.sf.basedb.core.ItemNotFoundException;
2933 14 Nov 14 olle 15 import net.sf.basedb.core.SessionControl;
2933 14 Nov 14 olle 16 import net.sf.basedb.meludi.JsonUtil;
2933 14 Nov 14 olle 17 import net.sf.basedb.meludi.dao.Subtype;
2933 14 Nov 14 olle 18 import net.sf.basedb.util.error.ThrowableUtil;
2933 14 Nov 14 olle 19
2933 14 Nov 14 olle 20 /**
2933 14 Nov 14 olle 21   Get information about subtypes.
2933 14 Nov 14 olle 22   
2933 14 Nov 14 olle 23   @author nicklas
2933 14 Nov 14 olle 24    @since 2.4
2933 14 Nov 14 olle 25 */
2933 14 Nov 14 olle 26 public class SubtypeServlet 
2933 14 Nov 14 olle 27   extends HttpServlet 
2933 14 Nov 14 olle 28 {
2933 14 Nov 14 olle 29
2933 14 Nov 14 olle 30
2933 14 Nov 14 olle 31   private static final long serialVersionUID = -4113396134373808508L;
2933 14 Nov 14 olle 32
2933 14 Nov 14 olle 33   public SubtypeServlet()
2933 14 Nov 14 olle 34   {}
2933 14 Nov 14 olle 35
2933 14 Nov 14 olle 36   @SuppressWarnings("unchecked")
2933 14 Nov 14 olle 37   @Override
2933 14 Nov 14 olle 38   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
2933 14 Nov 14 olle 39     throws ServletException, IOException 
2933 14 Nov 14 olle 40   {
2933 14 Nov 14 olle 41
2933 14 Nov 14 olle 42     String ID = req.getParameter("ID");
2933 14 Nov 14 olle 43     String cmd = req.getParameter("cmd");
2933 14 Nov 14 olle 44     JsonUtil.setJsonResponseHeaders(resp);
2933 14 Nov 14 olle 45     
2933 14 Nov 14 olle 46     JSONObject json = new JSONObject();
2933 14 Nov 14 olle 47     json.put("status", "ok");
2933 14 Nov 14 olle 48   
5468 04 Jun 19 olle 49     //final SessionControl sc = Application.getSessionControl(ID, req.getRemoteAddr());
5744 20 Nov 19 olle 50     //final SessionControl sc  = Application.getSessionControl(ID, "", req.getRemoteAddr(), true);
5744 20 Nov 19 olle 51     final SessionControl sc  = Application.getSessionControl(ID, null, req.getRemoteAddr(), true);
2933 14 Nov 14 olle 52     DbControl dc = null;
2933 14 Nov 14 olle 53     try
2933 14 Nov 14 olle 54     {
2933 14 Nov 14 olle 55       if ("GetSubtypeInfo".equals(cmd))
2933 14 Nov 14 olle 56       {
2933 14 Nov 14 olle 57         /*
2933 14 Nov 14 olle 58           Get information about the requested subtype.
2933 14 Nov 14 olle 59         */
2933 14 Nov 14 olle 60         String name = req.getParameter("name");
2933 14 Nov 14 olle 61         Subtype subtype = Subtype.getByCName(name);
2933 14 Nov 14 olle 62         if (subtype == null)
2933 14 Nov 14 olle 63         {
2933 14 Nov 14 olle 64           throw new ItemNotFoundException("Subtype." + name);
2933 14 Nov 14 olle 65         }
2933 14 Nov 14 olle 66         
2933 14 Nov 14 olle 67         dc = sc.newDbControl();
2933 14 Nov 14 olle 68         json.put("subtype", subtype.asJSONObject(dc));
2933 14 Nov 14 olle 69       }
2933 14 Nov 14 olle 70       
2933 14 Nov 14 olle 71     }
2933 14 Nov 14 olle 72     catch (Throwable t)
2933 14 Nov 14 olle 73     {
2933 14 Nov 14 olle 74       t.printStackTrace();
2933 14 Nov 14 olle 75       json.clear();
2933 14 Nov 14 olle 76       json.put("status", "error");
2933 14 Nov 14 olle 77       json.put("message", t.getMessage());
2933 14 Nov 14 olle 78       json.put("stacktrace", ThrowableUtil.stackTraceToString(t));
2933 14 Nov 14 olle 79     }
2933 14 Nov 14 olle 80     finally
2933 14 Nov 14 olle 81     {
2933 14 Nov 14 olle 82       if (dc != null) dc.close();
2933 14 Nov 14 olle 83       json.writeJSONString(resp.getWriter());
2933 14 Nov 14 olle 84     }
2933 14 Nov 14 olle 85     
2933 14 Nov 14 olle 86   }
2933 14 Nov 14 olle 87
2933 14 Nov 14 olle 88   
2933 14 Nov 14 olle 89 }