stephan 2002/08/19 01:01:50
Modified: src/scratchpad/src/org/apache/cocoon/acting
SourceMultiAction.java
Log:
Complete the doDeleteSource methods.
Add new doCreateCollection method.
Revision Changes Path
1.8 +52 -6
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/acting/SourceMultiAction.java
Index: SourceMultiAction.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/acting/SourceMultiAction.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SourceMultiAction.java 16 Aug 2002 12:42:56 -0000 1.7
+++ SourceMultiAction.java 19 Aug 2002 08:01:50 -0000 1.8
@@ -63,6 +63,7 @@
import org.apache.cocoon.acting.AbstractAction;
import org.apache.cocoon.components.request.multipart.FilePartFile;
import org.apache.cocoon.components.source.InspectableSource;
+import org.apache.cocoon.components.source.ModifiableTraversableSource;
import org.apache.cocoon.components.source.RestrictableSource;
import org.apache.cocoon.components.source.WriteableSource;
import org.apache.cocoon.components.source.helpers.GroupSourcePermission;
@@ -105,7 +106,7 @@
public final static String PRINCIPAL = "cocoon-principal";
public final static String PASSWORD = "cocoon-password";
public final static String UPLOAD_FILE = "cocoon-upload-file";
- public final static String SOURCE_FILENAME = "cocoon-source-filename";
+ public final static String SOURCE_NAME = "cocoon-source-name";
File uploadDir = null;
@@ -125,7 +126,7 @@
Request request = ObjectModelHelper.getRequest(objectModel);
String uri = parameters.getParameter(SOURCE_URI,
request.getParameter(SOURCE_URI));
- String filename = parameters.getParameter(SOURCE_FILENAME,
request.getParameter(SOURCE_FILENAME));
+ String filename = parameters.getParameter(SOURCE_NAME,
request.getParameter(SOURCE_NAME));
String principal = parameters.getParameter(PRINCIPAL,
request.getParameter(PRINCIPAL));
String password = parameters.getParameter(PASSWORD,
@@ -180,6 +181,46 @@
return EMPTY_MAP;
}
+ public Map doCreateCollection(Redirector redirector,
+ SourceResolver resolver,
+ Map objectModel,
+ String src,
+ Parameters parameters) throws Exception {
+
+ getLogger().debug("create collection called");
+
+ Request request = ObjectModelHelper.getRequest(objectModel);
+
+ String uri = parameters.getParameter(SOURCE_URI,
request.getParameter(SOURCE_URI));
+ String collectionname = parameters.getParameter(SOURCE_NAME,
request.getParameter(SOURCE_NAME));
+ String principal = parameters.getParameter(PRINCIPAL,
+ request.getParameter(PRINCIPAL));
+ String password = parameters.getParameter(PASSWORD,
+ request.getParameter(PASSWORD));
+
+ try {
+ Source source = resolver.resolveURI(uri);
+
+ if (source instanceof RestrictableSource)
+ ((RestrictableSource)source).setSourceCredential(new
SourceCredential(principal, password));
+
+ if (source instanceof ModifiableTraversableSource) {
+ ModifiableTraversableSource modifiabletraversablesource =
(ModifiableTraversableSource)source;
+
+ modifiabletraversablesource.createCollection(collectionname);
+
+ } else
+ throw new ProcessingException("Source isn't writeable");
+
+ } catch (SourceException se) {
+ if (getLogger().isDebugEnabled())
+ getLogger().debug("Exception occurs while creation of a
collection", se);
+ throw new ProcessingException("Exception occurs while creation of a
collection", se);
+ }
+
+ return EMPTY_MAP;
+ }
+
public Map doDeleteSource(Redirector redirector,
SourceResolver resolver,
Map objectModel,
@@ -191,16 +232,21 @@
Request request = ObjectModelHelper.getRequest(objectModel);
String uri = parameters.getParameter(SOURCE_URI,
request.getParameter(SOURCE_URI));
- //String filename = parameters.getParameter("filename",
request.getParameter("filename"));
+ String principal = parameters.getParameter(PRINCIPAL,
+ request.getParameter(PRINCIPAL));
+ String password = parameters.getParameter(PASSWORD,
+ request.getParameter(PASSWORD));
try {
Source source = resolver.resolveURI(uri);
+ if (source instanceof RestrictableSource)
+ ((RestrictableSource)source).setSourceCredential(new
SourceCredential(principal, password));
+
if (source instanceof WriteableSource) {
WriteableSource writeablesource = (WriteableSource)source;
- //FIXME : evaluate a interface for a delete method
- //writeablesource.delete();
+ writeablesource.delete();
} else
throw new ProcessingException("Source isn't writeable");
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]