001: /*
002: * Copyright (c) 2000, Jacob Smullyan.
003: *
004: * This is part of SkunkDAV, a WebDAV client. See http://skunkdav.sourceforge.net/
005: * for the latest version.
006: *
007: * SkunkDAV is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU General Public License as published
009: * by the Free Software Foundation; either version 2, or (at your option)
010: * any later version.
011: *
012: * SkunkDAV is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * General Public License for more details.
016: *
017: * You should have received a copy of the GNU General Public License
018: * along with SkunkDAV; see the file COPYING. If not, write to the Free
019: * Software Foundation, 59 Temple Place - Suite 330, Boston, MA
020: * 02111-1307, USA.
021: */
022:
023: package org.skunk.dav.client;
024:
025: import java.util.Map;
026: import org.skunk.minixml.MalformedXMLException;
027:
028: public interface DAVMethod {
029: /**
030: * a hook for processing the request headers
031: */
032: void processRequestHeaders();
033:
034: /**
035: * a hook for processing the request body.
036: */
037: void processRequestBody();
038:
039: /**
040: * a hook for processing the response headers.
041: */
042: void processResponseHeaders();
043:
044: /**
045: * a hook into processing the body of the response.
046: * @throws MalformedXMLException if an XML response is expected
047: * and it is not well-formed.
048: */
049: void processResponseBody() throws MalformedXMLException;
050:
051: /**
052: * @return the DAVFile corresponding to the resourceURL.
053: */
054: DAVFile getDAVFile();
055:
056: /**
057: * @return the headers of the response
058: */
059: Map getResponseHeaders();
060:
061: /**
062: * used to populate the headers of the response
063: * @param headers a mapping of headers names to values
064: */
065: void setResponseHeaders(Map m);
066:
067: /**
068: * returns the body of the response
069: * @return the body of the response
070: */
071: byte[] getResponseBody();
072:
073: /**
074: * sets the body of the request.
075: * @param b the new request body
076: */
077: void setResponseBody(byte[] body);
078:
079: /**
080: * @return the status of the response
081: */
082: int getStatus();
083:
084: /**
085: * used to the populate the status of the response
086: * @param status the status
087: */
088: void setStatus(int status);
089:
090: /**
091: * gets the headers of the request
092: * @return the request headers
093: */
094: Map getRequestHeaders();
095:
096: /**
097: * sets the headers of the request
098: * @param m a map of header names and values
099: */
100: void setRequestHeaders(Map headers);
101:
102: /**
103: * returns the method name
104: * @return the DAVMethodName of the method
105: */
106: DAVMethodName getRequestMethodName();
107:
108: /**
109: * returns the path requested
110: * @return the path requested.
111: */
112: String getRequestURL();
113:
114: /**
115: * returns the body of the request
116: * @return the body of the request, if any, or null
117: */
118: byte[] getRequestBody();
119:
120: /**
121: * sets the body of the request.
122: * @param body the new request body
123: */
124: void setRequestBody(byte[] body);
125:
126: /**
127: * sets the hostname
128: * @param host the hostname
129: */
130: void setHost(String host);
131:
132: /**
133: * sets the port
134: * @param port the port
135: */
136: void setPort(int port);
137:
138: /**
139: * sets the protocol
140: * @param protocol the protocol
141: */
142: void setProtocol(String protocol);
143: }
144:
145: /* $Log: DAVMethod.java,v $
146: /* Revision 1.11 2001/01/03 22:51:53 smulloni
147: /* added documentation
148: /*
149: /* Revision 1.10 2001/01/03 20:11:31 smulloni
150: /* the DAVFileChooser now replaces JFileChooser for remote file access.
151: /* DAVMethod now has a protocol property.
152: /*
153: /* Revision 1.9 2000/12/19 22:06:15 smulloni
154: /* adding documentation.
155: /*
156: /* Revision 1.8 2000/12/03 23:53:25 smulloni
157: /* added license and copyright preamble to java files.
158: /*
159: /* Revision 1.7 2000/11/09 23:34:51 smullyan
160: /* log added to every Java file, with the help of python. Lock stealing
161: /* implemented, and treatment of locks made more robust.
162: /* */
|