annotate servlet3/src/main/java/digilib/servlet/DocumentBean.java @ 903:7779b37d1d05

refactored into maven modules per servlet type. can build servlet-api 2.3 and 3.0 via profile now!
author robcast
date Tue, 26 Apr 2011 20:24:31 +0200
parents servlet/src/main/java/digilib/servlet/DocumentBean.java@ba1eb2d821a2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
1 /*
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
2 * DocumentBean -- Access control bean for JSP
338
d50fefb90edb Improved the RDF-Handling in the rdf2hash-method.
slarti
parents: 297
diff changeset
3 *
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
4 * Digital Image Library servlet components
338
d50fefb90edb Improved the RDF-Handling in the rdf2hash-method.
slarti
parents: 297
diff changeset
5 *
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
6 * Copyright (C) 2001, 2002, 2003 Robert Casties (robcast@mail.berlios.de)
338
d50fefb90edb Improved the RDF-Handling in the rdf2hash-method.
slarti
parents: 297
diff changeset
7 *
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
8 * This program is free software; you can redistribute it and/or modify it under
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
9 * the terms of the GNU General Public License as published by the Free Software
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
10 * Foundation; either version 2 of the License, or (at your option) any later
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
11 * version.
338
d50fefb90edb Improved the RDF-Handling in the rdf2hash-method.
slarti
parents: 297
diff changeset
12 *
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
13 * Please read license.txt for the full details. A copy of the GPL may be found
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
14 * at http://www.gnu.org/copyleft/lgpl.html
338
d50fefb90edb Improved the RDF-Handling in the rdf2hash-method.
slarti
parents: 297
diff changeset
15 *
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
16 * You should have received a copy of the GNU General Public License along with
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
17 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
18 * Place, Suite 330, Boston, MA 02111-1307 USA
338
d50fefb90edb Improved the RDF-Handling in the rdf2hash-method.
slarti
parents: 297
diff changeset
19 *
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
20 */
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
21
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
22 package digilib.servlet;
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
23
347
a87e80bfbd47 Servlet version 1.5.7b
robcast
parents: 338
diff changeset
24 import java.util.List;
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
25
153
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
26 import javax.servlet.ServletConfig;
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
27 import javax.servlet.ServletContext;
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
28 import javax.servlet.ServletException;
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
29 import javax.servlet.http.HttpServletRequest;
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
30 import javax.servlet.http.HttpServletResponse;
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
31
181
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
32 import org.apache.log4j.Logger;
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
33
153
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
34 import digilib.auth.AuthOpException;
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
35 import digilib.auth.AuthOps;
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
36 import digilib.io.DocuDirCache;
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
37 import digilib.io.DocuDirectory;
563
686086d6e6d6 more refactoring and rearranging
robcast
parents: 547
diff changeset
38 import digilib.io.FileOps.FileClass;
576
dad720e9b12b try: DocuDirent as interface, ImageFile inherits from ImageInput and implements DocuDirent
robcast
parents: 574
diff changeset
39 import digilib.io.ImageInput;
574
790cbfb58b52 ripping apart ImageFileSet
robcast
parents: 564
diff changeset
40 import digilib.io.ImageSet;
596
2b58d2783ef0 small cleanup
robcast
parents: 585
diff changeset
41 import digilib.util.ImageSize;
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
42
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
43 public class DocumentBean {
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
44
181
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
45 // general logger
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents: 252
diff changeset
46 private static Logger logger = Logger.getLogger("digilib.docubean");
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
47
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
48 // AuthOps object to check authorization
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
49 private AuthOps authOp;
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
50
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
51 // use authorization database
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
52 private boolean useAuthentication = true;
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
53
153
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
54 // path to add for authenticated access
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
55 private String authURLPath = "";
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
56
86
997ba69afb81 New version 1.8b1.
robcast
parents: 79
diff changeset
57 // DocuDirCache
997ba69afb81 New version 1.8b1.
robcast
parents: 79
diff changeset
58 private DocuDirCache dirCache = null;
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
59
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
60 // DigilibConfiguration object
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
61 private DigilibServletConfiguration dlConfig;
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
62
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
63 // DigilibRequest object
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
64 private DigilibServletRequest dlRequest = null;
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
65
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
66 /**
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
67 * Constructor for DocumentBean.
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
68 */
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
69 public DocumentBean() {
338
d50fefb90edb Improved the RDF-Handling in the rdf2hash-method.
slarti
parents: 297
diff changeset
70 logger.debug("new DocumentBean");
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
71 }
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
72
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
73 public DocumentBean(ServletConfig conf) {
338
d50fefb90edb Improved the RDF-Handling in the rdf2hash-method.
slarti
parents: 297
diff changeset
74 logger.debug("new DocumentBean");
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
75 try {
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
76 setConfig(conf);
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
77 } catch (Exception e) {
181
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
78 logger.fatal("ERROR: Unable to read config: ", e);
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
79 }
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
80 }
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
81
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
82 public void setConfig(ServletConfig conf) throws ServletException {
181
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
83 logger.debug("setConfig");
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
84 // get our ServletContext
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
85 ServletContext context = conf.getServletContext();
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
86 // see if there is a Configuration instance
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
87 dlConfig = (DigilibServletConfiguration) context
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
88 .getAttribute("digilib.servlet.configuration");
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
89 if (dlConfig == null) {
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
90 // create new Configuration
297
b74c914b48a9 Servlet version 1.5.0b -- the beginning of the next generation :-)
robcast
parents: 252
diff changeset
91 throw new ServletException("ERROR: No configuration!");
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
92 }
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
93
86
997ba69afb81 New version 1.8b1.
robcast
parents: 79
diff changeset
94 // get cache
153
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
95 dirCache = (DocuDirCache) dlConfig.getValue("servlet.dir.cache");
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
96
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
97 /*
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
98 * authentication
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
99 */
153
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
100 useAuthentication = dlConfig.getAsBoolean("use-authorization");
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
101 authOp = (AuthOps) dlConfig.getValue("servlet.auth.op");
4980c969be4c Servlet version 1.16a1
robcast
parents: 100
diff changeset
102 authURLPath = dlConfig.getAsString("auth-url-path");
196
8125a068af80 Servlet version 1.18b5
robcast
parents: 181
diff changeset
103 if (useAuthentication && (authOp == null)) {
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
104 throw new ServletException(
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
105 "ERROR: use-authorization configured but no AuthOp!");
196
8125a068af80 Servlet version 1.18b5
robcast
parents: 181
diff changeset
106 }
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
107 }
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
108
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
109 /**
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
110 * check if the request must be authorized to access filepath
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
111 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
112 public boolean isAuthRequired(DigilibServletRequest request)
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
113 throws AuthOpException {
181
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
114 logger.debug("isAuthRequired");
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
115 return useAuthentication ? authOp.isAuthRequired(request) : false;
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
116 }
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
117
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
118 /**
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
119 * check if the request is allowed to access filepath
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
120 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
121 public boolean isAuthorized(DigilibServletRequest request) throws AuthOpException {
181
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
122 logger.debug("isAuthorized");
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
123 return useAuthentication ? authOp.isAuthorized(request) : true;
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
124 }
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
125
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
126 /**
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
127 * return a list of authorization roles needed for request to access the
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
128 * specified path
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
129 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
130 public List<String> rolesForPath(DigilibServletRequest request) throws AuthOpException {
181
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
131 logger.debug("rolesForPath");
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
132 return useAuthentication ? authOp.rolesForPath(request) : null;
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
133 }
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
134
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
135 /**
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
136 * check request authorization against a list of roles
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
137 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
138 public boolean isRoleAuthorized(List<String> roles, DigilibServletRequest request) {
181
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
139 logger.debug("isRoleAuthorized");
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
140 return useAuthentication ? authOp.isRoleAuthorized(roles, request)
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
141 : true;
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
142 }
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
143
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
144 /**
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
145 * check for authenticated access and redirect if necessary
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
146 */
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
147 public boolean doAuthentication(HttpServletResponse response)
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
148 throws Exception {
338
d50fefb90edb Improved the RDF-Handling in the rdf2hash-method.
slarti
parents: 297
diff changeset
149 logger.debug("doAuthenication-Method");
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
150 return doAuthentication(dlRequest, response);
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
151 }
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
152
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
153 /**
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
154 * check for authenticated access and redirect if necessary
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
155 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
156 public boolean doAuthentication(DigilibServletRequest request,
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
157 HttpServletResponse response) throws Exception {
181
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
158 logger.debug("doAuthentication");
86
997ba69afb81 New version 1.8b1.
robcast
parents: 79
diff changeset
159 if (!useAuthentication) {
79
63c8186455c1 Servlet version 1.6b. Further cleanup and new functionality:
robcast
parents: 73
diff changeset
160 // shortcut if no authentication
63c8186455c1 Servlet version 1.6b. Further cleanup and new functionality:
robcast
parents: 73
diff changeset
161 return true;
63c8186455c1 Servlet version 1.6b. Further cleanup and new functionality:
robcast
parents: 73
diff changeset
162 }
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
163 // check if we are already authenticated
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
164 if (((HttpServletRequest) request.getServletRequest()).getRemoteUser() == null) {
181
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
165 logger.debug("unauthenticated so far");
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
166 // if not maybe we must?
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
167 if (isAuthRequired(request)) {
181
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
168 logger.debug("auth required, redirect");
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
169 // we are not yet authenticated -> redirect
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
170 response.sendRedirect(authURLPath
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
171 + ((HttpServletRequest) request.getServletRequest())
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
172 .getServletPath()
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
173 + "?"
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
174 + ((HttpServletRequest) request.getServletRequest())
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
175 .getQueryString());
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
176 }
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
177 }
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
178 return true;
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
179 }
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
180
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
181 /**
252
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
182 * Sets the current DigilibRequest. Also completes information in the request.
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
183 *
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
184 * @param dlRequest
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
185 * The dlRequest to set.
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
186 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
187 public void setRequest(DigilibServletRequest dlRequest) throws Exception {
252
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
188 this.dlRequest = dlRequest;
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
189 if (dirCache == null) {
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
190 return;
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
191 }
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
192 String fn = dlRequest.getFilePath();
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
193 // get information about the file
574
790cbfb58b52 ripping apart ImageFileSet
robcast
parents: 564
diff changeset
194 ImageSet fileset = (ImageSet) dirCache.getFile(fn, dlRequest
563
686086d6e6d6 more refactoring and rearranging
robcast
parents: 547
diff changeset
195 .getAsInt("pn"), FileClass.IMAGE);
252
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
196 if (fileset == null) {
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
197 return;
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
198 }
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
199 // add file name
576
dad720e9b12b try: DocuDirent as interface, ImageFile inherits from ImageInput and implements DocuDirent
robcast
parents: 574
diff changeset
200 dlRequest.setValue("img.fn", fileset);
252
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
201 // add dpi
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
202 dlRequest.setValue("img.dpix", new Double(fileset.getResX()));
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
203 dlRequest.setValue("img.dpiy", new Double(fileset.getResY()));
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
204 // get number of pages in directory
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
205 DocuDirectory dd = dirCache.getDirectory(fn);
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
206 if (dd != null) {
347
a87e80bfbd47 Servlet version 1.5.7b
robcast
parents: 338
diff changeset
207 // add pt
252
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
208 dlRequest.setValue("pt", dd.size());
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
209 }
347
a87e80bfbd47 Servlet version 1.5.7b
robcast
parents: 338
diff changeset
210 // get original pixel size
576
dad720e9b12b try: DocuDirent as interface, ImageFile inherits from ImageInput and implements DocuDirent
robcast
parents: 574
diff changeset
211 ImageInput origfile = fileset.getBiggest();
585
95417c4615b8 more cleanup for ImageFileSet
robcast
parents: 576
diff changeset
212 // check image for size (TODO: just if mo=hires?)
347
a87e80bfbd47 Servlet version 1.5.7b
robcast
parents: 338
diff changeset
213 ImageSize pixsize = origfile.getSize();
a87e80bfbd47 Servlet version 1.5.7b
robcast
parents: 338
diff changeset
214 if (pixsize != null) {
a87e80bfbd47 Servlet version 1.5.7b
robcast
parents: 338
diff changeset
215 // add pixel size
a87e80bfbd47 Servlet version 1.5.7b
robcast
parents: 338
diff changeset
216 dlRequest.setValue("img.pix_x", new Integer(pixsize.getWidth()));
a87e80bfbd47 Servlet version 1.5.7b
robcast
parents: 338
diff changeset
217 dlRequest.setValue("img.pix_y", new Integer(pixsize.getHeight()));
a87e80bfbd47 Servlet version 1.5.7b
robcast
parents: 338
diff changeset
218 }
252
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
219 }
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
220
59250ea2ad55 servlet version 1.19b5
robcast
parents: 246
diff changeset
221 /**
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
222 * get the first page number in the directory (not yet functional)
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
223 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
224 public int getFirstPage(DigilibServletRequest request) {
181
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
225 logger.debug("getFirstPage");
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
226 return 1;
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
227 }
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
228
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
229 /**
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
230 * get the number of pages/files in the directory
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
231 */
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
232 public int getNumPages() throws Exception {
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
233 return getNumPages(dlRequest);
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
234 }
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
235
563
686086d6e6d6 more refactoring and rearranging
robcast
parents: 547
diff changeset
236 /**
686086d6e6d6 more refactoring and rearranging
robcast
parents: 547
diff changeset
237 * get the number of image pages/files in the directory
686086d6e6d6 more refactoring and rearranging
robcast
parents: 547
diff changeset
238 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
239 public int getNumPages(DigilibServletRequest request) throws Exception {
563
686086d6e6d6 more refactoring and rearranging
robcast
parents: 547
diff changeset
240 return getNumPages(request, FileClass.IMAGE);
686086d6e6d6 more refactoring and rearranging
robcast
parents: 547
diff changeset
241 }
686086d6e6d6 more refactoring and rearranging
robcast
parents: 547
diff changeset
242
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
243 /**
563
686086d6e6d6 more refactoring and rearranging
robcast
parents: 547
diff changeset
244 * get the number of pages/files of type fc in the directory
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
245 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
246 public int getNumPages(DigilibServletRequest request, FileClass fc) throws Exception {
181
afe7ff98bb71 Servlet version 1.18b1
robcast
parents: 153
diff changeset
247 logger.debug("getNumPages");
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
248 DocuDirectory dd = (dirCache != null) ? dirCache.getDirectory(request
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
249 .getFilePath()) : null;
86
997ba69afb81 New version 1.8b1.
robcast
parents: 79
diff changeset
250 if (dd != null) {
563
686086d6e6d6 more refactoring and rearranging
robcast
parents: 547
diff changeset
251 return dd.size(fc);
86
997ba69afb81 New version 1.8b1.
robcast
parents: 79
diff changeset
252 }
997ba69afb81 New version 1.8b1.
robcast
parents: 79
diff changeset
253 return 0;
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
254 }
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
255
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
256 /**
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
257 * Returns the dlConfig.
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
258 *
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
259 * @return DigilibConfiguration
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
260 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
261 public DigilibServletConfiguration getDlConfig() {
73
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
262 return dlConfig;
3b8797fc3e90 New servlet version 1.5b.
robcast
parents: 62
diff changeset
263 }
1
0ff3ede32060 Initial revision
robcast
parents:
diff changeset
264
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
265 /**
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
266 * returns if the zoom area in the request can be moved
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
267 *
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
268 * @return
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
269 */
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
270 public boolean canMoveRight() {
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
271 float ww = dlRequest.getAsFloat("ww");
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
272 float wx = dlRequest.getAsFloat("wx");
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
273 return (ww + wx < 1.0);
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
274 }
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
275
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
276 /**
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
277 * returns if the zoom area in the request can be moved
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
278 *
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
279 * @return
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
280 */
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
281 public boolean canMoveLeft() {
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
282 float ww = dlRequest.getAsFloat("ww");
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
283 float wx = dlRequest.getAsFloat("wx");
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
284 return ((ww < 1.0) && (wx > 0));
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
285 }
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
286
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
287 /**
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
288 * returns if the zoom area in the request can be moved
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
289 *
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
290 * @return
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
291 */
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
292 public boolean canMoveUp() {
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
293 float wh = dlRequest.getAsFloat("wh");
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
294 float wy = dlRequest.getAsFloat("wy");
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
295 return ((wh < 1.0) && (wy > 0));
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
296 }
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
297
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
298 /**
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
299 * returns if the zoom area in the request can be moved
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
300 *
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
301 * @return
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
302 */
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
303 public boolean canMoveDown() {
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
304 float wh = dlRequest.getAsFloat("wh");
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
305 float wy = dlRequest.getAsFloat("wy");
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
306 return (wh + wy < 1.0);
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
307 }
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
308
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
309 /**
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
310 * @return Returns the dlRequest.
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
311 */
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents: 892
diff changeset
312 public DigilibServletRequest getRequest() {
246
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
313 return dlRequest;
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
314 }
aaf6eace011d Servlet version 1.19b4
robcast
parents: 196
diff changeset
315
338
d50fefb90edb Improved the RDF-Handling in the rdf2hash-method.
slarti
parents: 297
diff changeset
316 }