public class InvoiceServlet extends ReflexServlet {

 

       // MODELPackage名を指定

       private static final String MODEL_PACKAGE = "jp.reflexworks.invoice.model";

 

       public void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException {

 

              boolean toXml = true;

              if (req.getParameter("xml") != null) {

                     toXml = false; // toJSON

              }

 

              try {

                     // パラメータからの値を取得

                     Invoice param = new Invoice();

                     (new RequestMapper()).setValue(req, param);

 

                     // delete

                     JdoUtils jdoUtils = new JdoUtils();

 

                     // 削除対象が存在しない場合

                     if (jdoUtils.getInvoiceByKey(param) == null) {

                            Status status = new Status();

                            status.code = HttpStatus.SC_NO_CONTENT;

                            status.message = "No content.";

                            doResponse(resp, status, toXml, MODEL_PACKAGE);

                     } else {

                            jdoUtils.delete(param);

                            Status status = new Status();

                            status.code = HttpStatus.SC_OK;

                            status.message = "Deleted.";

                            doResponse(resp, status, toXml, MODEL_PACKAGE);

                     }

 

              // エラー発生時

              } catch (Exception e) {

                     e.printStackTrace();

                     Status status = new Status();

                     status.code = HttpStatus.SC_INTERNAL_SERVER_ERROR;

                     status.message = e.getMessage() + "\n";

                     try {

                            doResponse(resp, status, toXml, MODEL_PACKAGE);

                     } catch (Exception ee) {

                            ee.printStackTrace();

                     }

              }

       }

}