1
2
3
4
5
6
7 package org.thema.scriptware.controller;
8
9 import java.io.*;
10 import java.util.ArrayList;
11 import java.util.HashMap;
12 import java.util.Iterator;
13
14 import javax.servlet.*;
15 import javax.servlet.http.*;
16 import org.thema.scriptware.digester.Param;
17 import org.thema.scriptware.digester.Plugin;
18 import org.thema.scriptware.digester.Script;
19
20 /***
21 *
22 * @author Eduardo M . Sasso
23 * @version
24 */
25 public class ParamsServlet extends HttpServlet {
26
27 /*** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
28 * @param request servlet request
29 * @param response servlet response
30 */
31 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
32 throws ServletException, IOException {
33 HttpSession session = request.getSession();
34 String pluginID = request.getParameter("id");
35
36 HashMap plugins = (HashMap)session.getAttribute("pluginsMap");
37 Plugin plugin = (Plugin)plugins.get(pluginID);
38 ArrayList arrayList = plugin.getScripts();
39
40 Script script=null;
41
42 Iterator iterator = arrayList.iterator();
43
44 RequestDispatcher dispatcher = null;
45
46
47
48
49
50 if (request.getRequestURI().endsWith("/params")){
51 int cont=0;
52 while (iterator.hasNext()){
53 script = (Script) iterator.next();
54 if (script.getParams().size() >0) {
55 ++cont;
56 break;
57 }
58 }
59
60 if (cont == 0) {
61 dispatcher = request.getRequestDispatcher("plugin");
62 } else if (cont >0) {
63 request.setAttribute("scripts", arrayList);
64 request.setAttribute("id", pluginID);
65 dispatcher = request.getRequestDispatcher("params.jsp");
66 }
67 dispatcher.forward(request,response);
68 } else if (request.getRequestURI().endsWith("/prepareSQL")){
69
70
71
72
73 String sql;
74 Iterator it = null;
75 ArrayList params = null;
76 Param param = null;
77 String reqParam;
78 String replace;
79 while (iterator.hasNext()){
80 script = (Script) iterator.next();
81 sql = script.getSql();
82 params = script.getParams();
83 it = params.iterator();
84
85 while (it.hasNext()){
86 param = (Param) it.next();
87
88
89
90
91 reqParam = script.getName() + '.' + param.getName();
92 if (request.getParameter(reqParam) != null ) {
93 reqParam = (String)request.getParameter(reqParam);
94 replace = ":" + param.getName();
95 sql = sql.replaceAll(replace, reqParam);
96 }
97 }
98 script.setSqlParams(sql);
99 }
100 request.setAttribute("id", pluginID);
101 dispatcher = request.getRequestDispatcher("/pluginParams");
102 dispatcher.forward(request,response);
103 }
104 }
105
106
107
108 /*** Handles the HTTP <code>GET</code> method.
109 * @param request servlet request
110 * @param response servlet response
111 */
112 protected void doGet(HttpServletRequest request, HttpServletResponse response)
113 throws ServletException, IOException {
114 processRequest(request, response);
115 }
116
117 /*** Handles the HTTP <code>POST</code> method.
118 * @param request servlet request
119 * @param response servlet response
120 */
121 protected void doPost(HttpServletRequest request, HttpServletResponse response)
122 throws ServletException, IOException {
123 processRequest(request, response);
124 }
125
126 /*** Returns a short description of the servlet.
127 */
128 public String getServletInfo() {
129 return "Short description";
130 }
131
132 }