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]

Reply via email to