01: /***************************************************************
02: * This file is part of the [fleXive](R) project.
03: *
04: * Copyright (c) 1999-2007
05: * UCS - unique computing solutions gmbh (http://www.ucs.at)
06: * All rights reserved
07: *
08: * The [fleXive](R) project is free software; you can redistribute
09: * it and/or modify it under the terms of the GNU General Public
10: * License as published by the Free Software Foundation;
11: * either version 2 of the License, or (at your option) any
12: * later version.
13: *
14: * The GNU General Public License can be found at
15: * http://www.gnu.org/copyleft/gpl.html.
16: * A copy is found in the textfile GPL.txt and important notices to the
17: * license from the author are found in LICENSE.txt distributed with
18: * these libraries.
19: *
20: * This library is distributed in the hope that it will be useful,
21: * but WITHOUT ANY WARRANTY; without even the implied warranty of
22: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23: * GNU General Public License for more details.
24: *
25: * For further information about UCS - unique computing solutions gmbh,
26: * please see the company website: http://www.ucs.at
27: *
28: * For further information about [fleXive](R), please see the
29: * project website: http://www.flexive.org
30: *
31: *
32: * This copyright notice MUST APPEAR in all copies of the file!
33: ***************************************************************/package com.flexive.war.webdav;
34:
35: import javax.servlet.http.HttpServletRequest;
36: import javax.servlet.http.HttpServletResponse;
37: import java.io.IOException;
38:
39: abstract class Operation {
40:
41: protected static final String DEFAULT_NAMESPACE = "DAV:";
42: protected static boolean debug = false;
43:
44: protected HttpServletRequest request;
45: protected HttpServletResponse response;
46: protected String path;
47: protected boolean readonly;
48: private String dest = null;
49:
50: /**
51: * Constructor.
52: *
53: * @param req the request
54: * @param resp the response
55: */
56: public Operation(HttpServletRequest req, HttpServletResponse resp,
57: boolean readonly) {
58: this .request = req;
59: this .response = resp;
60: this .readonly = readonly;
61:
62: // Build the path we want to handle
63: this .path = FxWebDavUtils.getDavPath(req);
64: if (path.startsWith("/")) {
65: path = path.substring(1);
66: }
67: if (path.endsWith("/")) {
68: path = path.substring(0, path.length() - 1);
69: }
70:
71: dest = request.getHeader("Destination");
72: }
73:
74: public String getDestination() {
75: return dest;
76: }
77:
78: /**
79: * Writes the response to the webdav client.
80: *
81: * @throws IOException if the operation fails
82: */
83: abstract void writeResponse() throws IOException;
84:
85: }
|