annotate servlet2/src/main/java/digilib/servlet/DigilibServletRequest.java @ 1158:2ee261676828 default tip

better out-of-the box experience: * digilib works without config files using sensible defaults * new sample images folder used by default * config files moved to templates
author robcast
date Tue, 19 Feb 2013 17:32:25 +0100
parents 7a4f27ee087f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
1 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
2 * DigilibRequest.java
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
3 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
4 * lightweight class carrying all parameters for a request to digilib
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
5 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
6
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
7 Digital Image Library servlet components
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
8
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
9 Copyright (C) 2001, 2002 Robert Casties (robcast@mail.berlios.de),
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
10 Christian Luginbuehl
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
11
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
12 This program is free software; you can redistribute it and/or modify it
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
13 under the terms of the GNU General Public License as published by the
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
14 Free Software Foundation; either version 2 of the License, or (at your
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
15 option) any later version.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
16
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
17 Please read license.txt for the full details. A copy of the GPL
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
18 may be found at http://www.gnu.org/copyleft/lgpl.html
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
19
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
20 You should have received a copy of the GNU General Public License
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
21 along with this program; if not, write to the Free Software
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
22 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
23
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
24 * Created on 27. August 2002, 19:43
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
25 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
26
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
27 package digilib.servlet;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
28
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
29 import java.io.UnsupportedEncodingException;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
30 import java.net.URLDecoder;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
31 import java.util.Enumeration;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
32 import java.util.StringTokenizer;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
33
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
34 import javax.servlet.ServletRequest;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
35 import javax.servlet.http.HttpServletRequest;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
36
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
37 import digilib.image.DocuImage;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
38 import digilib.io.FileOps;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
39 import digilib.util.OptionsSet;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
40 import digilib.util.Parameter;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
41
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
42 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
43 * Class holding the parameters of a digilib user request. The parameters are
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
44 * mostly named like the servlet parameters: <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
45 * request_path: url of the page/document. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
46 * fn: url of the page/document. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
47 * pn: page number. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
48 * dw: width of result window in pixels. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
49 * dh: height of result window in pixels. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
50 * wx: left edge of image area (float from 0 to 1). <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
51 * wy: top edge of image area (float from 0 to 1). <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
52 * ww: width of image area(float from 0 to 1). <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
53 * wh: height of image area(float from 0 to 1). <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
54 * ws: scale factor. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
55 * mo: special options like 'fit' for gifs. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
56 * mk: list of marks. <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
57 * pt: total number of pages (generated by sevlet). <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
58 * baseURL: base URL (from http:// to below /servlet). <br>
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
59 * ...et alii
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
60 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
61 * @author casties
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
62 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
63 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
64 public class DigilibServletRequest extends DigilibRequest {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
65
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
66 protected DocuImage image; // internal DocuImage instance for this request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
67
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
68 protected HttpServletRequest servletRequest; // internal ServletRequest
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
69
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
70 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
71 * Creates a new instance of DigilibRequest with parameters from a
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
72 * ServletRequest. All undefined parameters are set to default values.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
73 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
74 * @param request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
75 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
76 public DigilibServletRequest(HttpServletRequest request) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
77 setWithRequest(request);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
78 initOptions();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
79 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
80
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
81 /** set up parameters.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
82 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
83 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
84 protected void initParams() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
85 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
86 * Definition of parameters and default values. Parameter of type 's'
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
87 * are for the servlet.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
88 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
89
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
90 // url of the page/document (second part)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
91 newParameter("fn", "", null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
92 // page number
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
93 newParameter("pn", new Integer(1), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
94 // width of client in pixels
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
95 newParameter("dw", new Integer(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
96 // height of client in pixels
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
97 newParameter("dh", new Integer(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
98 // left edge of image (float from 0 to 1)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
99 newParameter("wx", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
100 // top edge in image (float from 0 to 1)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
101 newParameter("wy", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
102 // width of image (float from 0 to 1)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
103 newParameter("ww", new Float(1), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
104 // height of image (float from 0 to 1)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
105 newParameter("wh", new Float(1), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
106 // scale factor
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
107 newParameter("ws", new Float(1), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
108 // special options like 'fit' for gifs
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
109 newParameter("mo", this.options, null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
110 // rotation angle (degree)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
111 newParameter("rot", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
112 // contrast enhancement factor
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
113 newParameter("cont", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
114 // brightness enhancement factor
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
115 newParameter("brgt", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
116 // color multiplicative factors
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
117 newParameter("rgbm", "0/0/0", null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
118 // color additive factors
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
119 newParameter("rgba", "0/0/0", null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
120 // display dpi resolution (total)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
121 newParameter("ddpi", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
122 // display dpi X resolution
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
123 newParameter("ddpix", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
124 // display dpi Y resolution
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
125 newParameter("ddpiy", new Float(0), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
126 // scale factor for mo=ascale
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
127 newParameter("scale", new Float(1), null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
128 // color conversion operation
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
129 newParameter("colop", "", null, 's');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
130
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
131 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
132 * Parameters of type 'i' are not exchanged between client and server,
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
133 * but are for the servlets or JSPs internal use.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
134 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
135
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
136 // url of the page/document (first part, may be empty)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
137 newParameter("request.path", "", null, 'i');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
138 // base URL (from http:// to below /servlet)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
139 newParameter("base.url", null, null, 'i');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
140 // DocuImage instance for this request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
141 newParameter("docu.image", image, null, 'i');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
142 image = null;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
143 // HttpServletRequest for this request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
144 newParameter("servlet.request", servletRequest, null, 'i');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
145 servletRequest = null;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
146
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
147 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
148 * Parameters of type 'c' are for the clients use
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
149 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
150
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
151 // "real" filename
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
152 newParameter("img.fn", "", null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
153 // image dpi x
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
154 newParameter("img.dpix", new Integer(0), null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
155 // image dpi y
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
156 newParameter("img.dpiy", new Integer(0), null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
157 // hires image size x
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
158 newParameter("img.pix_x", new Integer(0), null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
159 // hires image size y
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
160 newParameter("img.pix_y", new Integer(0), null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
161 // total number of pages
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
162 newParameter("pt", new Integer(0), null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
163 // marks
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
164 newParameter("mk", "", null, 'c');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
165 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
166
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
167 /* (non-Javadoc)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
168 * @see digilib.servlet.ParameterMap#initOptions()
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
169 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
170 @Override
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
171 protected void initOptions() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
172 options = (OptionsSet) getValue("mo");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
173 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
174
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
175 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
176 * Populate the request object with data from a ServletRequest.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
177 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
178 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
179 * @param request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
180 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
181 public void setWithRequest(HttpServletRequest request) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
182 servletRequest = request;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
183 // decide if it's old-style or new-style
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
184 String qs = ((HttpServletRequest) request).getQueryString();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
185 if (qs != null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
186 if (qs.indexOf("&amp;") > -1) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
187 // &amp; separator
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
188 setWithParamString(qs, "&amp;");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
189 } else if (qs.indexOf(";") > -1) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
190 // ; separator
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
191 setWithParamString(qs, ";");
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
192 } else if (request.getParameter("fn") != null ||
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
193 request.getParameter("dw") != null || request.getParameter("dh") != null) {
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
194 // standard '&' parameters
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
195 setWithParamRequest(request);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
196 } else {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
197 setWithOldString(qs);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
198 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
199 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
200 setValue("servlet.request", request);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
201 // add path from request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
202 setValue("request.path", ((HttpServletRequest) request).getPathInfo());
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
203 // set the baseURL
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
204 setBaseURL((HttpServletRequest) request);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
205 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
206
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
207 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
208 * Populate a request from a string in the old "++++" parameter form.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
209 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
210 * @param queryString
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
211 * String with paramters in the old "+++" form.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
212 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
213 public void setWithOldString(String queryString) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
214 if (queryString == null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
215 return;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
216 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
217 // enable the passing of delimiter to get empty parameters
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
218 StringTokenizer query = new StringTokenizer(queryString, "+", true);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
219 String token;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
220 // first parameter FN
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
221 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
222 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
223 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
224 setValueFromString("fn", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
225 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
226 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
227 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
228 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
229 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
230 // second parameter PN
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
231 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
232 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
233 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
234 setValueFromString("pn", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
235 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
236 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
237 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
238 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
239 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
240 // third parameter WS
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
241 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
242 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
243 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
244 setValueFromString("ws", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
245 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
246 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
247 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
248 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
249 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
250 // fourth parameter MO
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
251 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
252 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
253 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
254 setValueFromString("mo", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
255 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
256 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
257 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
258 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
259 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
260 // fifth parameter MK
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
261 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
262 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
263 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
264 setValueFromString("mk", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
265 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
266 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
267 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
268 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
269 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
270 // sixth parameter WX
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
271 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
272 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
273 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
274 setValueFromString("wx", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
275 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
276 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
277 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
278 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
279 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
280 // seventh parameter WY
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
281 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
282 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
283 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
284 setValueFromString("wy", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
285 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
286 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
287 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
288 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
289 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
290 // eigth parameter WW
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
291 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
292 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
293 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
294 setValueFromString("ww", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
295 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
296 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
297 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
298 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
299 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
300 // ninth parameter WH
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
301 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
302 token = query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
303 if (!token.equals("+")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
304 setValueFromString("wh", token);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
305 if (query.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
306 query.nextToken();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
307 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
308 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
309 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
310 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
311
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
312 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
313 * Return the request parameters as a String in the parameter form
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
314 * 'fn=/icons&amp;pn=1'. Empty (undefined) fields are not included.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
315 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
316 * @return String of request parameters in parameter form.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
317 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
318 public String getAsString() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
319 return getAsString(0);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
320 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
321
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
322 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
323 * Return the request parameters of a given type type as a String in the
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
324 * parameter form 'fn=/icons&amp;pn=1'. Empty (undefined) fields are not
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
325 * included.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
326 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
327 * @return String of request parameters in parameter form.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
328 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
329 public String getAsString(int type) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
330 StringBuffer s = new StringBuffer(50);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
331 // go through all values
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
332 for (Parameter p: params.values()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
333 if ((type > 0) && (p.getType() != type)) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
334 // skip the wrong types
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
335 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
336 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
337 String name = p.getName();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
338 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
339 * handling special cases
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
340 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
341 // request_path adds to fn
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
342 if (name.equals("fn")) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
343 s.append("&fn=" + getAsString("request.path")
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
344 + getAsString("fn"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
345 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
346 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
347 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
348 * the rest is sent with its name
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
349 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
350 // parameters that are not set or internal are not sent
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
351 if ((!p.hasValue()) || (p.getType() == 'i')) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
352 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
353 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
354 s.append("&" + name + "=" + p.getAsString());
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
355 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
356 // kill first "&"
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
357 s.deleteCharAt(0);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
358 return s.toString();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
359 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
360
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
361 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
362 * Returns request parameters in old '++++' form.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
363 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
364 * @return String with parameters in old '++++' form.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
365 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
366 public String getAsOldString() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
367 StringBuffer s = new StringBuffer(50);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
368 s.append(getAsString("request.path"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
369 s.append(getAsString("fn"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
370 s.append("+" + getAsString("pn"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
371 s.append("+" + getAsString("ws"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
372 s.append("+" + getAsString("mo"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
373 s.append("+" + getAsString("mk"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
374 s.append("+" + getAsString("wx"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
375 s.append("+" + getAsString("wy"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
376 s.append("+" + getAsString("ww"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
377 s.append("+" + getAsString("wh"));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
378 return s.toString();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
379 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
380
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
381 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
382 * Set request parameters from javax.servlet.ServletRequest. Uses the
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
383 * Requests getParameter methods for 'fn=foo' style parameters.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
384 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
385 * @param request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
386 * ServletRequest to get parameters from.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
387 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
388 //@SuppressWarnings("unchecked") // ServletRequest.getParameterNames() returns naked Enumeration
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
389 public void setWithParamRequest(ServletRequest request) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
390 setValue("servlet.request", request);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
391 // go through all request parameters
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
392 for (Enumeration<String> i = request.getParameterNames(); i.hasMoreElements();) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
393 String name = (String) i.nextElement();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
394 // is this a known parameter?
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
395 if (params.containsKey(name)) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
396 Parameter p = (Parameter) this.get(name);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
397 // internal parameters are not set
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
398 if (p.getType() == 'i') {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
399 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
400 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
401 p.setValueFromString(request.getParameter(name));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
402 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
403 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
404 // unknown parameters are just added with type 'r'
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
405 newParameter(name, null, request.getParameter(name), 'r');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
406 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
407 // add path from request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
408 setValue("request.path", ((HttpServletRequest) request).getPathInfo());
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
409 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
410
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
411 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
412 * Set request parameters from query string. Uses the separator string qs to
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
413 * get 'fn=foo' style parameters.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
414 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
415 * @param qs
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
416 * query string
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
417 * @param sep
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
418 * parameter-separator string
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
419 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
420 public void setWithParamString(String qs, String sep) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
421 // go through all request parameters
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
422 String[] qa = qs.split(sep);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
423 for (int i = 0; i < qa.length; i++) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
424 // split names and values on "="
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
425 String[] nv = qa[i].split("=");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
426 try {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
427 String name = URLDecoder.decode(nv[0], "UTF-8");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
428 String val = URLDecoder.decode(nv[1], "UTF-8");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
429 // is this a known parameter?
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
430 if (params.containsKey(name)) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
431 Parameter p = (Parameter) this.get(name);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
432 // internal parameters are not set
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
433 if (p.getType() == 'i') {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
434 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
435 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
436 p.setValueFromString(val);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
437 continue;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
438 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
439 // unknown parameters are just added with type 'r'
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
440 newParameter(name, null, val, 'r');
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
441 } catch (UnsupportedEncodingException e) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
442 // this shouldn't happen anyway
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
443 e.printStackTrace();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
444 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
445 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
446 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
447
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
448 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
449 * Test if option string <code>opt</code> is set. Checks if the substring
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
450 * <code>opt</code> is contained in the options string <code>param</code>.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
451 * Deprecated! use hasOption(String opt) for "mo"-options.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
452 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
453 * @param opt
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
454 * Option string to be tested.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
455 * @return boolean
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
456 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
457 public boolean hasOption(String param, String opt) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
458 String s = getAsString(param);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
459 if (s != null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
460 StringTokenizer i = new StringTokenizer(s, ",");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
461 while (i.hasMoreTokens()) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
462 if (i.nextToken().equals(opt)) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
463 return true;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
464 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
465 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
466 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
467 return false;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
468 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
469
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
470 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
471 * The image file path to be accessed.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
472 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
473 * The mage file path is assembled from the servlets RequestPath and
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
474 * Parameter fn and normalized.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
475 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
476 * @return String the effective filepath.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
477 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
478 public String getFilePath() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
479 String s = getAsString("request.path");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
480 s += getAsString("fn");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
481 return FileOps.normalName(s);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
482 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
483
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
484 /* Property getter and setter */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
485
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
486 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
487 * Set the requests base URL parameter from a
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
488 * javax.sevlet.http.HttpServletRequest.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
489 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
490 * @param request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
491 * HttpServletRequest to set the base URL.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
492 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
493 public void setBaseURL(javax.servlet.http.HttpServletRequest request) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
494 String baseURL = null;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
495 // calculate base URL string from request (minus last part)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
496 String s = request.getRequestURL().toString();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
497 int eop = s.lastIndexOf("/");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
498 if (eop > 0) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
499 baseURL = s.substring(0, eop);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
500 } else {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
501 // fall back
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
502 baseURL = "http://" + request.getServerName()
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
503 + "/docuserver/digitallibrary";
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
504 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
505 setValue("base.url", baseURL);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
506 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
507
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
508 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
509 * Returns the image.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
510 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
511 * @return DocuImage
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
512 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
513 public DocuImage getImage() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
514 return image;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
515 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
516
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
517 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
518 * Sets the image.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
519 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
520 * @param image
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
521 * The image to set
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
522 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
523 public void setImage(DocuImage image) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
524 this.image = image;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
525 setValue("docu.image", image);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
526 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
527
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
528 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
529 * @return
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
530 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
531 public HttpServletRequest getServletRequest() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
532 return servletRequest;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
533 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
534
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
535 }