annotate servlet3/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
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
66 protected DocuImage image; // internal DocuImage instance for this request
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
67
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
68 protected HttpServletRequest servletRequest; // internal ServletRequest
903
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
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
81 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
82 * set up parameters.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
83 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
84 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
85 protected void initParams() {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
86 /*
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
87 * Definition of parameters and default values. Parameter of type 's'
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
88 * are for the servlet.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
89 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
90
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
91 // url of the page/document (second part)
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
92 newParameter("fn", "", null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
93 // page number
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
94 newParameter("pn", new Integer(1), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
95 // width of client in pixels
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
96 newParameter("dw", new Integer(0), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
97 // height of client in pixels
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
98 newParameter("dh", new Integer(0), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
99 // left edge of image (float from 0 to 1)
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
100 newParameter("wx", new Float(0), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
101 // top edge in image (float from 0 to 1)
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
102 newParameter("wy", new Float(0), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
103 // width of image (float from 0 to 1)
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
104 newParameter("ww", new Float(1), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
105 // height of image (float from 0 to 1)
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
106 newParameter("wh", new Float(1), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
107 // scale factor
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
108 newParameter("ws", new Float(1), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
109 // special options like 'fit' for gifs
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
110 newParameter("mo", this.options, null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
111 // rotation angle (degree)
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
112 newParameter("rot", new Float(0), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
113 // contrast enhancement factor
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
114 newParameter("cont", new Float(0), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
115 // brightness enhancement factor
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
116 newParameter("brgt", new Float(0), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
117 // color multiplicative factors
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
118 newParameter("rgbm", "0/0/0", null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
119 // color additive factors
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
120 newParameter("rgba", "0/0/0", null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
121 // display dpi resolution (total)
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
122 newParameter("ddpi", new Float(0), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
123 // display dpi X resolution
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
124 newParameter("ddpix", new Float(0), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
125 // display dpi Y resolution
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
126 newParameter("ddpiy", new Float(0), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
127 // scale factor for mo=ascale
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
128 newParameter("scale", new Float(1), null, 's');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
129 // color conversion operation
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
130 newParameter("colop", "", null, 's');
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
131
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
132 /*
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
133 * Parameters of type 'i' are not exchanged between client and server,
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
134 * but are for the servlets or JSPs internal use.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
135 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
136
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
137 // url of the page/document (first part, may be empty)
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
138 newParameter("request.path", "", null, 'i');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
139 // base URL (from http:// to below /servlet)
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
140 newParameter("base.url", null, null, 'i');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
141 // DocuImage instance for this request
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
142 newParameter("docu.image", image, null, 'i');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
143 image = null;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
144 // HttpServletRequest for this request
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
145 newParameter("servlet.request", servletRequest, null, 'i');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
146 servletRequest = null;
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
147
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
148 /*
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
149 * Parameters of type 'c' are for the clients use
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
150 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
151
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
152 // "real" filename
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
153 newParameter("img.fn", "", null, 'c');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
154 // image dpi x
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
155 newParameter("img.dpix", new Integer(0), null, 'c');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
156 // image dpi y
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
157 newParameter("img.dpiy", new Integer(0), null, 'c');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
158 // hires image size x
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
159 newParameter("img.pix_x", new Integer(0), null, 'c');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
160 // hires image size y
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
161 newParameter("img.pix_y", new Integer(0), null, 'c');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
162 // total number of pages
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
163 newParameter("pt", new Integer(0), null, 'c');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
164 // marks
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
165 newParameter("mk", "", null, 'c');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
166 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
167
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
168 /*
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
169 * (non-Javadoc)
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
170 *
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
171 * @see digilib.servlet.ParameterMap#initOptions()
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
172 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
173 @Override
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
174 protected void initOptions() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
175 options = (OptionsSet) getValue("mo");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
176 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
177
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
178 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
179 * Populate the request object with data from a ServletRequest.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
180 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
181 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
182 * @param request
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
183 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
184 public void setWithRequest(HttpServletRequest request) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
185 servletRequest = request;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
186 // decide if it's old-style or new-style
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
187 String qs = ((HttpServletRequest) request).getQueryString();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
188 if (qs != null) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
189 if (qs.indexOf("&amp;") > -1) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
190 // &amp; separator
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
191 setWithParamString(qs, "&amp;");
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
192 } else if (qs.indexOf(";") > -1) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
193 // ; separator
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
194 setWithParamString(qs, ";");
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
195 } else if (request.getParameter("fn") != null || request.getParameter("dw") != null
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
196 || request.getParameter("dh") != null) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
197 // standard '&' parameters
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
198 setWithParamRequest(request);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
199 } else {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
200 setWithOldString(qs);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
201 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
202 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
203 setValue("servlet.request", request);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
204 // add path from request
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
205 setValue("request.path", ((HttpServletRequest) request).getPathInfo());
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
206 // set the baseURL
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
207 setBaseURL((HttpServletRequest) request);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
208 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
209
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
210 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
211 * Populate a request from a string in the old "++++" parameter form.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
212 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
213 * @param queryString
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
214 * String with paramters in the old "+++" form.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
215 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
216 public void setWithOldString(String queryString) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
217 if (queryString == null) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
218 return;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
219 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
220 // enable the passing of delimiter to get empty parameters
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
221 StringTokenizer query = new StringTokenizer(queryString, "+", true);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
222 String token;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
223 // first parameter FN
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
224 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
225 token = query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
226 if (!token.equals("+")) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
227 setValueFromString("fn", token);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
228 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
229 query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
230 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
231 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
232 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
233 // second parameter PN
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
234 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
235 token = query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
236 if (!token.equals("+")) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
237 setValueFromString("pn", token);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
238 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
239 query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
240 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
241 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
242 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
243 // third parameter WS
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
244 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
245 token = query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
246 if (!token.equals("+")) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
247 setValueFromString("ws", token);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
248 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
249 query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
250 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
251 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
252 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
253 // fourth parameter MO
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
254 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
255 token = query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
256 if (!token.equals("+")) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
257 setValueFromString("mo", token);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
258 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
259 query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
260 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
261 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
262 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
263 // fifth parameter MK
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
264 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
265 token = query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
266 if (!token.equals("+")) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
267 setValueFromString("mk", token);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
268 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
269 query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
270 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
271 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
272 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
273 // sixth parameter WX
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
274 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
275 token = query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
276 if (!token.equals("+")) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
277 setValueFromString("wx", token);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
278 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
279 query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
280 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
281 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
282 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
283 // seventh parameter WY
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
284 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
285 token = query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
286 if (!token.equals("+")) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
287 setValueFromString("wy", token);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
288 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
289 query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
290 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
291 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
292 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
293 // eigth parameter WW
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
294 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
295 token = query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
296 if (!token.equals("+")) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
297 setValueFromString("ww", token);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
298 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
299 query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
300 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
301 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
302 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
303 // ninth parameter WH
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
304 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
305 token = query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
306 if (!token.equals("+")) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
307 setValueFromString("wh", token);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
308 if (query.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
309 query.nextToken();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
310 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
311 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
312 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
313 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
314
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
315 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
316 * Return the request parameters as a String in the parameter form
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
317 * 'fn=/icons&amp;pn=1'. Empty (undefined) fields are not included.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
318 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
319 * @return String of request parameters in parameter form.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
320 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
321 public String getAsString() {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
322 return getAsString(0);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
323 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
324
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
325 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
326 * Return the request parameters of a given type type as a String in the
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
327 * parameter form 'fn=/icons&amp;pn=1'. Empty (undefined) fields are not
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
328 * included.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
329 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
330 * @return String of request parameters in parameter form.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
331 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
332 public String getAsString(int type) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
333 StringBuffer s = new StringBuffer(50);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
334 // go through all values
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
335 for (Parameter p : params.values()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
336 if ((type > 0) && (p.getType() != type)) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
337 // skip the wrong types
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
338 continue;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
339 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
340 String name = p.getName();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
341 /*
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
342 * handling special cases
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
343 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
344 // request_path adds to fn
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
345 if (name.equals("fn")) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
346 s.append("&fn=" + getAsString("request.path") + getAsString("fn"));
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
347 continue;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
348 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
349 /*
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
350 * the rest is sent with its name
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
351 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
352 // parameters that are not set or internal are not sent
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
353 if ((!p.hasValue()) || (p.getType() == 'i')) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
354 continue;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
355 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
356 s.append("&" + name + "=" + p.getAsString());
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
357 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
358 // kill first "&"
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
359 s.deleteCharAt(0);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
360 return s.toString();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
361 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
362
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
363 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
364 * Returns request parameters in old '++++' form.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
365 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
366 * @return String with parameters in old '++++' form.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
367 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
368 public String getAsOldString() {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
369 StringBuffer s = new StringBuffer(50);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
370 s.append(getAsString("request.path"));
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
371 s.append(getAsString("fn"));
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
372 s.append("+" + getAsString("pn"));
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
373 s.append("+" + getAsString("ws"));
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
374 s.append("+" + getAsString("mo"));
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
375 s.append("+" + getAsString("mk"));
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
376 s.append("+" + getAsString("wx"));
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
377 s.append("+" + getAsString("wy"));
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
378 s.append("+" + getAsString("ww"));
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
379 s.append("+" + getAsString("wh"));
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
380 return s.toString();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
381 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
382
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
383 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
384 * Set request parameters from javax.servlet.ServletRequest. Uses the
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
385 * Requests getParameter methods for 'fn=foo' style parameters.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
386 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
387 * @param request
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
388 * ServletRequest to get parameters from.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
389 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
390 // @SuppressWarnings("unchecked") // ServletRequest.getParameterNames()
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
391 // returns naked Enumeration
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
392 public void setWithParamRequest(ServletRequest request) {
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
393 setValue("servlet.request", request);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
394 // go through all request parameters
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
395 for (Enumeration<String> i = request.getParameterNames(); i.hasMoreElements();) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
396 String name = (String) i.nextElement();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
397 // is this a known parameter?
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
398 if (params.containsKey(name)) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
399 Parameter p = (Parameter) this.get(name);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
400 // internal parameters are not set
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
401 if (p.getType() == 'i') {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
402 continue;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
403 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
404 p.setValueFromString(request.getParameter(name));
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
405 continue;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
406 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
407 // unknown parameters are just added with type 'r'
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
408 newParameter(name, null, request.getParameter(name), 'r');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
409 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
410 // add path from request
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
411 setValue("request.path", ((HttpServletRequest) request).getPathInfo());
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
412 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
413
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
414 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
415 * Set request parameters from query string. Uses the separator string qs to
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
416 * get 'fn=foo' style parameters.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
417 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
418 * @param qs
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
419 * query string
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
420 * @param sep
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
421 * parameter-separator string
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
422 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
423 public void setWithParamString(String qs, String sep) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
424 // go through all request parameters
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
425 String[] qa = qs.split(sep);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
426 for (int i = 0; i < qa.length; i++) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
427 // split names and values on "="
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
428 String[] nv = qa[i].split("=");
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
429 try {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
430 String name = URLDecoder.decode(nv[0], "UTF-8");
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
431 String val = URLDecoder.decode(nv[1], "UTF-8");
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
432 // is this a known parameter?
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
433 if (params.containsKey(name)) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
434 Parameter p = (Parameter) this.get(name);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
435 // internal parameters are not set
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
436 if (p.getType() == 'i') {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
437 continue;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
438 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
439 p.setValueFromString(val);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
440 continue;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
441 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
442 // unknown parameters are just added with type 'r'
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
443 newParameter(name, null, val, 'r');
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
444 } catch (UnsupportedEncodingException e) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
445 // this shouldn't happen anyway
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
446 e.printStackTrace();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
447 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
448 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
449 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
450
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
451 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
452 * Test if option string <code>opt</code> is set. Checks if the substring
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
453 * <code>opt</code> is contained in the options string <code>param</code>.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
454 * Deprecated! use hasOption(String opt) for "mo"-options.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
455 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
456 * @param opt
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
457 * Option string to be tested.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
458 * @return boolean
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
459 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
460 public boolean hasOption(String param, String opt) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
461 String s = getAsString(param);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
462 if (s != null) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
463 StringTokenizer i = new StringTokenizer(s, ",");
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
464 while (i.hasMoreTokens()) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
465 if (i.nextToken().equals(opt)) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
466 return true;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
467 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
468 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
469 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
470 return false;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
471 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
472
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
473 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
474 * The image file path to be accessed.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
475 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
476 * The mage file path is assembled from the servlets RequestPath and
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
477 * Parameter fn and normalized.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
478 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
479 * @return String the effective filepath.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
480 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
481 public String getFilePath() {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
482 String s = getAsString("request.path");
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
483 s += getAsString("fn");
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
484 return FileOps.normalName(s);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
485 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
486
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
487 /* Property getter and setter */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
488
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
489 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
490 * Set the requests base URL parameter from a
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
491 * javax.sevlet.http.HttpServletRequest.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
492 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
493 * @param request
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
494 * HttpServletRequest to set the base URL.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
495 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
496 public void setBaseURL(javax.servlet.http.HttpServletRequest request) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
497 String baseURL = null;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
498 // calculate base URL string from request (minus last part)
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
499 String s = request.getRequestURL().toString();
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
500 int eop = s.lastIndexOf("/");
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
501 if (eop > 0) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
502 baseURL = s.substring(0, eop);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
503 } else {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
504 // fall back
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
505 baseURL = "http://" + request.getServerName() + "/docuserver/digitallibrary";
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
506 }
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
507 setValue("base.url", baseURL);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
508 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
509
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
510 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
511 * Returns the image.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
512 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
513 * @return DocuImage
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
514 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
515 public DocuImage getImage() {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
516 return image;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
517 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
518
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
519 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
520 * Sets the image.
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
521 *
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
522 * @param image
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
523 * The image to set
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
524 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
525 public void setImage(DocuImage image) {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
526 this.image = image;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
527 setValue("docu.image", image);
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
528 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
529
1157
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
530 /**
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
531 * @return
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
532 */
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
533 public HttpServletRequest getServletRequest() {
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
534 return servletRequest;
7a4f27ee087f fix bug when calling Scaler without fn-parameter.
robcast
parents: 903
diff changeset
535 }
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
536
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
537 }