luetzkendorf    2005/02/25 08:57:28

  Modified:    src/webdav/server/org/apache/slide/webdav/event
                        WebdavAdapter.java WebdavEvent.java
                        WebdavListener.java
  Added:       src/webdav/server/org/apache/slide/webdav/event
                        DetailedWebdavEvent.java
                        DetailedWebdavListener.java
  Log:
  Intorduction of some more detailed Events triggered by the WebDAV layer.
  E.g. now you will be informed if a single resource is copied, moved or deleted
  while MOVE, COPY or DELETE.
  
  Revision  Changes    Path
  1.6       +43 -5     
jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/WebdavAdapter.java
  
  Index: WebdavAdapter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/WebdavAdapter.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- WebdavAdapter.java        28 Jul 2004 09:32:51 -0000      1.5
  +++ WebdavAdapter.java        25 Feb 2005 16:57:28 -0000      1.6
  @@ -30,7 +30,7 @@
    *
    * @version $Revision$
    */
  -public class WebdavAdapter implements WebdavListener {
  +public class WebdavAdapter implements WebdavListener, DetailedWebdavListener 
{
       public void get(WebdavEvent event) throws VetoException {
       }
   
  @@ -111,4 +111,42 @@
   
       public void poll(WebdavEvent event) throws VetoException {
       }
  +    
  +    
  +    public void moveAfterCopy(DetailedWebdavEvent event) throws 
VetoException {
  +    }
  +    public void moveAfterDelete(DetailedWebdavEvent event) throws 
VetoException {
  +    }
  +    public void moveBeforeCopy(DetailedWebdavEvent event) throws 
VetoException {
  +    }
  +    public void moveBeforeDelete(DetailedWebdavEvent event)
  +            throws VetoException {
  +    }
  +    
  +    
  +    public void deleteAfterDelete(DetailedWebdavEvent event)
  +            throws VetoException {
  +    }
  +    public void deleteBeforeDelete(DetailedWebdavEvent event)
  +            throws VetoException {
  +    }
  +    
  +    
  +    public void versionControlAfter(DetailedWebdavEvent event)
  +            throws VetoException {
  +    }
  +    public void versionControlBefore(DetailedWebdavEvent event)
  +            throws VetoException {
  +    }
  +    
  +    
  +    public void copyAfterCopy(DetailedWebdavEvent event) throws 
VetoException {
  +    }
  +    public void copyAfterDelete(DetailedWebdavEvent event) throws 
VetoException {
  +    }
  +    public void copyBeforeCopy(DetailedWebdavEvent event) throws 
VetoException {
  +    }
  +    public void copyBeforeDelete(DetailedWebdavEvent event)
  +            throws VetoException {
  +    }
   }
  \ No newline at end of file
  
  
  
  1.7       +9 -8      
jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/WebdavEvent.java
  
  Index: WebdavEvent.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/WebdavEvent.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- WebdavEvent.java  5 Aug 2004 14:43:30 -0000       1.6
  +++ WebdavEvent.java  25 Feb 2005 16:57:28 -0000      1.7
  @@ -65,10 +65,11 @@
       public static Poll POLL = new Poll();
   
       public final static String GROUP = "webdav";
  -    public final static AbstractEventMethod[] methods = new 
AbstractEventMethod[] { GET, PUT, PROPFIND, PROPPATCH, BIND,
  -                                                                             
       UNBIND, REBIND, MKCOL, COPY, MOVE, DELETE, LOCK, UNLOCK, ACL,
  -                                                                             
       REPORT, SEARCH, VERSION_CONTROL, OPTIONS, CHECKIN, CHECKOUT, UNCHECKOUT,
  -                                                                             
       UPDATE, LABEL, MKWORKSPACE, SUBSCRIBE, UNSUBSCRIBE, POLL };
  +    public final static AbstractEventMethod[] methods = new 
AbstractEventMethod[] {
  +            GET, PUT, PROPFIND, PROPPATCH, BIND, UNBIND, REBIND, MKCOL, COPY,
  +            MOVE, DELETE, LOCK, UNLOCK, ACL, REPORT, SEARCH, VERSION_CONTROL,
  +            OPTIONS, CHECKIN, CHECKOUT, UNCHECKOUT, UPDATE, LABEL, 
MKWORKSPACE,
  +            SUBSCRIBE, UNSUBSCRIBE, POLL };
   
       public WebdavEvent(Object source) {
           super(source);
  
  
  
  1.7       +9 -6      
jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/WebdavListener.java
  
  Index: WebdavListener.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/WebdavListener.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- WebdavListener.java       28 Jul 2004 09:32:51 -0000      1.6
  +++ WebdavListener.java       25 Feb 2005 16:57:28 -0000      1.7
  @@ -28,9 +28,12 @@
   import org.apache.slide.event.VetoException;
   
   /**
  - * Webdav listener interface
  - *
  - * @version $Revision$
  + * Event listener that listens for WebDAV requests. There is an event for 
each
  + * WebDAV method supported by Slide. The events are called before the actual
  + * work is started. The Event source is the corresponding WebDAV-method 
object
  + * (e.g. [EMAIL PROTECTED] org.apache.slide.webdav.method.CopyMethod}for a 
COPY request).
  + * There you can retrieve more infos about the current request, the
  + * NamespaceAccessToken, the SlideToken etc.
    */
   public interface WebdavListener extends EventListener {
       void get(WebdavEvent event) throws VetoException;
  
  
  
  1.1                  
jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/DetailedWebdavEvent.java
  
  Index: DetailedWebdavEvent.java
  ===================================================================
  /*
   * $Header: 
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/DetailedWebdavEvent.java,v
 1.1 2005/02/25 16:57:28 luetzkendorf Exp $
   * $Revision: 1.1 $
   * $Date: 2005/02/25 16:57:28 $
   *
   * ====================================================================
   *
   * Copyright 2004 The Apache Software Foundation
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   *
   */
  package org.apache.slide.webdav.event;
  
  import java.util.EventListener;
  import java.util.EventObject;
  
  import org.apache.slide.event.AbstractEventMethod;
  import org.apache.slide.event.VetoException;
  import org.apache.slide.event.VetoableEventMethod;
  
  /**
   * Detailed WebDAV events.
   */
  public class DetailedWebdavEvent extends EventObject {
  
      public final static String GROUP = "webdav-detailed";
  
      public static final MoveBeforeCopy MOVE_BEFORE_COPY = new 
MoveBeforeCopy();
  
      public static final MoveAfterCopy MOVE_AFTER_COPY = new MoveAfterCopy();
  
      public static final MoveBeforeDelete MOVE_BEFORE_DELETE = new 
MoveBeforeDelete();
  
      public static final MoveAfterDelete MOVE_AFTER_DELETE = new 
MoveAfterDelete();
      
      public static final CopyBeforeCopy COPY_BEFORE_COPY = new 
CopyBeforeCopy();
      
      public static final CopyAfterCopy COPY_AFTER_COPY = new CopyAfterCopy();
      
      public static final CopyBeforeDelete COPY_BEFORE_DELETE = new 
CopyBeforeDelete();
      
      public static final CopyAfterDelete COPY_AFTER_DELETE = new 
CopyAfterDelete();
      
      public static final DeleteBeforeDelete DELETE_BEFORE_DELETE = new 
DeleteBeforeDelete();
      
      public static final DeleteAfterDelete DELETE_AFTER_DELETE = new 
DeleteAfterDelete();
      
      public static final VersionControlBefore VERSION_CONTROL_BEFORE = new 
VersionControlBefore();
      
      public static final VersionControlAfter VERSION_CONTROL_AFTER = new 
VersionControlAfter();
  
      public final static AbstractEventMethod[] methods = new 
AbstractEventMethod[] {
              MOVE_BEFORE_COPY, MOVE_AFTER_COPY, MOVE_BEFORE_DELETE,
              MOVE_AFTER_DELETE, DELETE_BEFORE_DELETE, DELETE_AFTER_DELETE,
              VERSION_CONTROL_BEFORE, VERSION_CONTROL_AFTER, COPY_BEFORE_COPY,
              COPY_AFTER_COPY, COPY_BEFORE_DELETE, COPY_AFTER_DELETE};
  
      private String sourceUri;
  
      private String destinationUri;
  
      /**
       *  
       */
      public DetailedWebdavEvent(Object source, String destinationUri) {
          super(source);
          this.destinationUri = destinationUri;
          this.sourceUri = null;
      }
  
      public DetailedWebdavEvent(Object source, String destinationUri,
              String sourceUri) {
          super(source);
          this.destinationUri = destinationUri;
          this.sourceUri = sourceUri;
      }
  
      public String getDestinationUri() {
          return destinationUri;
      }
  
      public String getSourceUri() {
          return sourceUri;
      }
  
      public final static class MoveBeforeCopy extends VetoableEventMethod {
          public MoveBeforeCopy() {
              super(GROUP, "move-before-copy");
          }
  
          public void fireVetaoableEvent(EventListener listener, EventObject 
event)
                  throws VetoException {
              if (listener instanceof DetailedWebdavListener) {
                  ((DetailedWebdavListener) 
listener).moveBeforeCopy((DetailedWebdavEvent) event);
              }
          }
      }
  
      public final static class MoveAfterCopy extends VetoableEventMethod {
          public MoveAfterCopy() {
              super(GROUP, "move-after-copy");
          }
  
          public void fireVetaoableEvent(EventListener listener, EventObject 
event)
                  throws VetoException {
              if (listener instanceof DetailedWebdavListener) {
                  ((DetailedWebdavListener) 
listener).moveAfterCopy((DetailedWebdavEvent) event);
              }
          }
      }
  
      public final static class MoveBeforeDelete extends VetoableEventMethod {
          public MoveBeforeDelete() {
              super(GROUP, "move-before-delete");
          }
  
          public void fireVetaoableEvent(EventListener listener, EventObject 
event)
                  throws VetoException {
              if (listener instanceof DetailedWebdavListener) {
                  ((DetailedWebdavListener) 
listener).moveBeforeDelete((DetailedWebdavEvent) event);
              }
          }
      }
  
      public final static class MoveAfterDelete extends VetoableEventMethod {
          public MoveAfterDelete() {
              super(GROUP, "move-after-delete");
          }
  
          public void fireVetaoableEvent(EventListener listener, EventObject 
event)
                  throws VetoException {
              if (listener instanceof DetailedWebdavListener) {
                  ((DetailedWebdavListener) 
listener).moveAfterDelete((DetailedWebdavEvent) event);
              }
          }
      }
      
      public final static class CopyBeforeCopy extends VetoableEventMethod {
          public CopyBeforeCopy() {
              super(GROUP, "copy-before-copy");
          }
          
          public void fireVetaoableEvent(EventListener listener, EventObject 
event)
                  throws VetoException {
              if (listener instanceof DetailedWebdavListener) {
                  ((DetailedWebdavListener) 
listener).copyBeforeCopy((DetailedWebdavEvent) event);
              }
          }
      }
  
      public final static class CopyAfterCopy extends VetoableEventMethod {
          public CopyAfterCopy() {
              super(GROUP, "copy-after-copy");
          }
          
          public void fireVetaoableEvent(EventListener listener, EventObject 
event)
                  throws VetoException {
              if (listener instanceof DetailedWebdavListener) {
                  ((DetailedWebdavListener) 
listener).copyAfterCopy((DetailedWebdavEvent) event);
              }
          }
      }
      
      public final static class CopyBeforeDelete extends VetoableEventMethod {
          public CopyBeforeDelete() {
              super(GROUP, "copy-before-delete");
          }
          
          public void fireVetaoableEvent(EventListener listener, EventObject 
event)
                  throws VetoException {
              if (listener instanceof DetailedWebdavListener) {
                  ((DetailedWebdavListener) 
listener).copyBeforeDelete((DetailedWebdavEvent) event);
              }
          }
      }
      
      public final static class CopyAfterDelete extends VetoableEventMethod {
          public CopyAfterDelete() {
              super(GROUP, "copy-after-delete");
          }
          
          public void fireVetaoableEvent(EventListener listener, EventObject 
event)
                  throws VetoException {
              if (listener instanceof DetailedWebdavListener) {
                  ((DetailedWebdavListener) 
listener).copyAfterDelete((DetailedWebdavEvent) event);
              }
          }
      }
      
      public static final class DeleteBeforeDelete extends VetoableEventMethod {
          public DeleteBeforeDelete() {
              super(GROUP, "delete-before-delete");
          }
  
          public void fireVetaoableEvent(EventListener listener, EventObject 
event)
                  throws VetoException {
              if (listener instanceof DetailedWebdavListener) {
                  ((DetailedWebdavListener) 
listener).deleteBeforeDelete((DetailedWebdavEvent) event);
              }
          }
      }
      
      public static final class DeleteAfterDelete extends VetoableEventMethod {
          public DeleteAfterDelete() {
              super(GROUP, "delete-after-delete");
          }
  
          public void fireVetaoableEvent(EventListener listener, EventObject 
event)
                  throws VetoException {
              if (listener instanceof DetailedWebdavListener) {
                  ((DetailedWebdavListener) 
listener).deleteAfterDelete((DetailedWebdavEvent) event);
              }
          }
      }
      
      public static final class VersionControlBefore extends 
VetoableEventMethod {
          public VersionControlBefore() {
              super(GROUP, "version-control-before");
          }
  
          public void fireVetaoableEvent(EventListener listener, EventObject 
event)
                  throws VetoException {
              if (listener instanceof DetailedWebdavListener) {
                  ((DetailedWebdavListener) 
listener).versionControlBefore((DetailedWebdavEvent) event);
              }
          }
      }
      
      public static final class VersionControlAfter extends VetoableEventMethod 
{
          public VersionControlAfter() {
              super(GROUP, "version-control-after");
          }
  
          public void fireVetaoableEvent(EventListener listener, EventObject 
event)
                  throws VetoException {
              if (listener instanceof DetailedWebdavListener) {
                  ((DetailedWebdavListener) 
listener).versionControlAfter((DetailedWebdavEvent) event);
              }
          }
      }
  }
  
  
  1.1                  
jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/DetailedWebdavListener.java
  
  Index: DetailedWebdavListener.java
  ===================================================================
  /*
   * $Header: 
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/DetailedWebdavListener.java,v
 1.1 2005/02/25 16:57:28 luetzkendorf Exp $
   * $Revision: 1.1 $
   * $Date: 2005/02/25 16:57:28 $
   *
   * ====================================================================
   *
   * Copyright 2004 The Apache Software Foundation
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   *
   */
  package org.apache.slide.webdav.event;
  
  import java.util.EventListener;
  
  import org.apache.slide.event.VetoException;
  
  /**
   * WebDAV event listener that listens to some detailed events.
   */
  public interface DetailedWebdavListener extends EventListener {
  
      /**
       * Called before a single resoure is copied while a WebDAV MOVE request.
       * 
       * <li>event source: the [EMAIL PROTECTED] 
org.apache.slide.webdav.method.MoveMethod}
       * <li>event sourceUri: the old resource URI
       * <li>event destinationUri: the new resource URI
       */
      public void moveBeforeCopy(DetailedWebdavEvent event) throws 
VetoException;
  
      /**
       * Called after a single resoure is copied while a WebDAV MOVE request.
       * 
       * <li>event source: the [EMAIL PROTECTED] 
org.apache.slide.webdav.method.MoveMethod}
       * <li>event sourceUri: the old resource URI
       * <li>event destinationUri: the new resource URI
       */
      public void moveAfterCopy(DetailedWebdavEvent event) throws VetoException;
  
      /**
       * Called before a single resource is deleted while a WebDAV MOVE request.
       * 
       * <li>event source: the [EMAIL PROTECTED] 
org.apache.slide.webdav.method.MoveMethod}
       * <li>event sourceUri: <code>null</code>
       * <li>event destinationUri: the new resource URI
       */
      public void moveBeforeDelete(DetailedWebdavEvent event)
              throws VetoException;
  
      /**
       * Called after a single resource is deleted while a WebDAV MOVE request.
       * 
       * <li>event source: the [EMAIL PROTECTED] 
org.apache.slide.webdav.method.MoveMethod}
       * <li>event sourceUri: <code>null</code>
       * <li>event destinationUri: the new resource URI
       */
      public void moveAfterDelete(DetailedWebdavEvent event) throws 
VetoException;
  
      /**
       * Called before a single resource is copied while a WebDAV COPY request.
       * 
       * <li>event source: the [EMAIL PROTECTED] 
org.apache.slide.webdav.method.CopyMethod}
       * <li>event sourceUri: the old resource URI
       * <li>event destinationUri: the new resource URI
       */
      public void copyBeforeCopy(DetailedWebdavEvent event) throws 
VetoException;
  
      /**
       * Called after a single resource is copied while a WebDAV COPY request.
       * 
       * <li>event source: the [EMAIL PROTECTED] 
org.apache.slide.webdav.method.CopyMethod}
       * <li>event sourceUri: the old resource URI
       * <li>event destinationUri: the new resource URI
       */
      public void copyAfterCopy(DetailedWebdavEvent event) throws VetoException;
  
      /**
       * Called before a single resource is deleted while a WebDAV COPY request.
       * 
       * <li>event source: the [EMAIL PROTECTED] 
org.apache.slide.webdav.method.CopyMethod}
       * <li>event sourceUri: <code>null</code>
       * <li>event destinationUri: the new resource URI
       */
      public void copyBeforeDelete(DetailedWebdavEvent event)
              throws VetoException;
  
      /**
       * Called after a single resource is deleted while a WebDAV COPY request.
       * 
       * <li>event source: the [EMAIL PROTECTED] 
org.apache.slide.webdav.method.CopyMethod}
       * <li>event sourceUri: <code>null</code>
       * <li>event destinationUri: the new resource URI
       */
      public void copyAfterDelete(DetailedWebdavEvent event) throws 
VetoException;
  
      /**
       * Called before a single resource is deleted while a WebDAV DELETE 
request.
       * 
       * <li>event source: the [EMAIL PROTECTED] 
org.apache.slide.webdav.method.DeleteMethod}
       * <li>event sourceUri: <code>null</code>
       * <li>event destinationUri: the new resource URI
       */
      public void deleteBeforeDelete(DetailedWebdavEvent event)
              throws VetoException;
  
      /**
       * Called after a single resource is deleted while a WebDAV DELETE 
request.
       * 
       * <li>event source: the [EMAIL PROTECTED] 
org.apache.slide.webdav.method.DeleteMethod}
       * <li>event sourceUri: <code>null</code>
       * <li>event destinationUri: the new resource URI
       */
      public void deleteAfterDelete(DetailedWebdavEvent event)
              throws VetoException;
  
      /**
       * Called before a resource is put under version control within a WebDAV 
       * request. This may happen while VERSION-CONTROL, PUT, COPY. 
       *
       * <li>event source: the corresponding method object.
       * <li>event sourceUri: <code>null</code> or the URI of an existing 
version
       * <li>event destinationUri: the new resource URI
       */
      public void versionControlBefore(DetailedWebdavEvent event)
              throws VetoException;
  
      /**
       * Called after a resource is put under version control within a WebDAV 
       * request. This can happen while e.g. VERSION-CONTROL, PUT, COPY. 
       *
       * <li>event source: the corresponding method object.
       * <li>event sourceUri: <code>null</code> or the URI of an existing 
version
       * <li>event destinationUri: the new resource URI
       */
      public void versionControlAfter(DetailedWebdavEvent event)
              throws VetoException;
  
  }
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to