Interface DavResource


public interface DavResource
DavResource provides standard WebDAV functionality as specified by RFC 2518.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    String constant representing the WebDAV 1 and 2 method set.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addLockManager(org.apache.jackrabbit.webdav.lock.LockManager lockmgr)
    Add an external LockManager to this resource.
    void
    addMember(DavResource resource, org.apache.jackrabbit.webdav.io.InputContext inputContext)
    Add the given resource as an internal member to this resource.
    alterProperties(List<? extends PropEntry> changeList)
    Set/add and remove the specified properties from this resource.
    void
    copy(DavResource destination, boolean shallow)
    Copy this DavResource to the given destination resource
    boolean
    Returns true if this webdav resource represents an existing repository item.
    Retrieve the resource this resource is internal member of.
    Returns a comma separated list of all compliance classes the given resource is fulfilling.
    Returns the display name of this resource.
    Return the DavResourceFactory that created this resource.
    Returns the absolute href of this resource as returned in the multistatus response body.
    Returns the locator object for this webdav resource, which encapsulates the information for building the complete 'href'.
    org.apache.jackrabbit.webdav.lock.ActiveLock
    getLock(org.apache.jackrabbit.webdav.lock.Type type, org.apache.jackrabbit.webdav.lock.Scope scope)
    Return the lock present on this webdav resource or null if the resource is either not locked or not lockable at all.
    org.apache.jackrabbit.webdav.lock.ActiveLock[]
    Returns an array of all locks applied to the given resource.
    Returns an iterator over all internal members.
    long
    Return the time of the last modification or -1 if the modification time could not be retrieved.
    Returns all webdav properties present on this resource that will be return upon a DavConstants.PROPFIND_ALL_PROP request.
    Return the webdav property with the specified name.
    Returns an array of all property names available on this resource.
    Returns the path of the hierarchy element defined by this DavResource.
    Retrieve the DavSession associated with this resource.
    Returns a comma separated list of all METHODS supported by the given resource.
    boolean
    hasLock(org.apache.jackrabbit.webdav.lock.Type type, org.apache.jackrabbit.webdav.lock.Scope scope)
    Returns true if a lock applies to this resource.
    boolean
    Returns true if this webdav resource has the resourcetype 'collection'.
    boolean
    isLockable(org.apache.jackrabbit.webdav.lock.Type type, org.apache.jackrabbit.webdav.lock.Scope scope)
    Returns true, if the this resource allows locking.
    org.apache.jackrabbit.webdav.lock.ActiveLock
    lock(org.apache.jackrabbit.webdav.lock.LockInfo reqLockInfo)
    Lock this webdav resource with the information retrieve from the request and return the resulting lockdiscovery object.
    void
    move(DavResource destination)
    Move this DavResource to the given destination resource
    org.apache.jackrabbit.webdav.lock.ActiveLock
    refreshLock(org.apache.jackrabbit.webdav.lock.LockInfo reqLockInfo, String lockToken)
    Refresh an existing lock by resetting the timeout.
    void
    Removes the specified member from this resource.
    void
    Remove the specified property from this resource.
    void
    setProperty(DavProperty<?> property)
    Add/Set the specified property on this resource.
    void
    spool(org.apache.jackrabbit.webdav.io.OutputContext outputContext)
    Spools the resource properties and ev. content to the specified context (e.g. to respond to a 'GET' or 'HEAD' request).
    void
    unlock(String lockToken)
    Remove the lock identified by the included lock token from this resource.
  • Field Details

  • Method Details

    • getComplianceClass

      String getComplianceClass()
      Returns a comma separated list of all compliance classes the given resource is fulfilling.
      Returns:
      compliance classes
    • getSupportedMethods

      String getSupportedMethods()
      Returns a comma separated list of all METHODS supported by the given resource.
      Returns:
      METHODS supported by this resource.
    • exists

      boolean exists()
      Returns true if this webdav resource represents an existing repository item.
      Returns:
      true, if the resource represents an existing repository item.
    • isCollection

      boolean isCollection()
      Returns true if this webdav resource has the resourcetype 'collection'.
      Returns:
      true if the resource represents a collection resource.
    • getDisplayName

      String getDisplayName()
      Returns the display name of this resource.
      Returns:
      display name.
    • getLocator

      DavResourceLocator getLocator()
      Returns the locator object for this webdav resource, which encapsulates the information for building the complete 'href'.
      Returns:
      the locator for this resource.
      See Also:
    • getResourcePath

      String getResourcePath()
      Returns the path of the hierarchy element defined by this DavResource. This method is a shortcut for DavResource.getLocator().getResourcePath().
      Returns:
      path of the element defined by this DavResource.
    • getHref

      String getHref()
      Returns the absolute href of this resource as returned in the multistatus response body.
      Returns:
      href
    • getModificationTime

      long getModificationTime()
      Return the time of the last modification or -1 if the modification time could not be retrieved.
      Returns:
      time of last modification or -1.
    • spool

      void spool(org.apache.jackrabbit.webdav.io.OutputContext outputContext) throws IOException
      Spools the resource properties and ev. content to the specified context (e.g. to respond to a 'GET' or 'HEAD' request). The context could e.g. wrap the servlet response.
      Parameters:
      outputContext - The output context.
      Throws:
      IOException - If an error occurs.
    • getPropertyNames

      DavPropertyName[] getPropertyNames()
      Returns an array of all property names available on this resource.
      Returns:
      an array of property names.
    • getProperty

      DavProperty<?> getProperty(DavPropertyName name)
      Return the webdav property with the specified name.
      Parameters:
      name - name of the webdav property
      Returns:
      the DavProperty with the given name or null if the property does not exist.
    • getProperties

      DavPropertySet getProperties()
      Returns all webdav properties present on this resource that will be return upon a DavConstants.PROPFIND_ALL_PROP request. The implementation may in addition expose other (protected or calculated) properties which should be marked accordingly (see also DavProperty.isInvisibleInAllprop().
      Returns:
      a DavPropertySet containing at least all properties of this resource that are exposed in 'allprop' PROPFIND request.
    • setProperty

      void setProperty(DavProperty<?> property) throws DavException
      Add/Set the specified property on this resource.
      Parameters:
      property -
      Throws:
      DavException - if an error occurs
    • removeProperty

      void removeProperty(DavPropertyName propertyName) throws DavException
      Remove the specified property from this resource.
      Parameters:
      propertyName -
      Throws:
      DavException - if an error occurs
    • alterProperties

      MultiStatusResponse alterProperties(List<? extends PropEntry> changeList) throws DavException
      Set/add and remove the specified properties from this resource.
      Parameters:
      changeList - list containing DavPropertyName objects (for properties to be removed) and DavProperty objects (for properties to be added/set).
      Returns:
      multistatus response listing the status resulting from setting and/or removing the specified properties, in order to allow a detailed multistatus response.
      Throws:
      DavException - if an error occurred. This may be the case if the general state of the resource prevents any properties to be set or removed (e.g. due to a lock).
    • getCollection

      DavResource getCollection()
      Retrieve the resource this resource is internal member of.
      Returns:
      resource this resource is an internal member of. In case this resource is the root null is returned.
    • addMember

      void addMember(DavResource resource, org.apache.jackrabbit.webdav.io.InputContext inputContext) throws DavException
      Add the given resource as an internal member to this resource.
      Parameters:
      resource - DavResource to be added as internal member.
      inputContext - Context providing the properties and content for the internal member to be created or replaced.
      Throws:
      DavException
    • getMembers

      DavResourceIterator getMembers()
      Returns an iterator over all internal members.
      Returns:
      a DavResourceIterator over all internal members.
    • removeMember

      void removeMember(DavResource member) throws DavException
      Removes the specified member from this resource.
      Throws:
      DavException
    • move

      void move(DavResource destination) throws DavException
      Move this DavResource to the given destination resource
      Parameters:
      destination -
      Throws:
      DavException
    • copy

      void copy(DavResource destination, boolean shallow) throws DavException
      Copy this DavResource to the given destination resource
      Parameters:
      destination -
      shallow -
      Throws:
      DavException
    • isLockable

      boolean isLockable(org.apache.jackrabbit.webdav.lock.Type type, org.apache.jackrabbit.webdav.lock.Scope scope)
      Returns true, if the this resource allows locking. NOTE, that this method does not define, whether a lock/unlock can be successfully executed.
      Parameters:
      type -
      scope -
      Returns:
      true, if this resource supports any locking.
    • hasLock

      boolean hasLock(org.apache.jackrabbit.webdav.lock.Type type, org.apache.jackrabbit.webdav.lock.Scope scope)
      Returns true if a lock applies to this resource. This may be either a lock on this resource itself or a deep lock inherited from a collection above this resource.
      Note, that true is returned whenever a lock applies to that resource even if the lock is expired or not effective due to the fact that the request provides the proper lock token.
      Parameters:
      type -
      Returns:
      true if a lock applies to this resource.
    • getLock

      org.apache.jackrabbit.webdav.lock.ActiveLock getLock(org.apache.jackrabbit.webdav.lock.Type type, org.apache.jackrabbit.webdav.lock.Scope scope)
      Return the lock present on this webdav resource or null if the resource is either not locked or not lockable at all. Note, that a resource may have a lock that is inherited by a deep lock enforced on one of its 'parent' resources.
      Parameters:
      type -
      Returns:
      lock information of this resource or null if this resource has no lock applying it. If an error occurs while retrieving the lock information null is returned as well.
    • getLocks

      org.apache.jackrabbit.webdav.lock.ActiveLock[] getLocks()
      Returns an array of all locks applied to the given resource.
      Returns:
      array of locks. The array is empty if there are no locks applied to this resource.
    • lock

      org.apache.jackrabbit.webdav.lock.ActiveLock lock(org.apache.jackrabbit.webdav.lock.LockInfo reqLockInfo) throws DavException
      Lock this webdav resource with the information retrieve from the request and return the resulting lockdiscovery object.
      Parameters:
      reqLockInfo - lock info as retrieved from the request.
      Returns:
      lockdiscovery object to be returned in the response. If the lock could not be obtained a DavException is thrown.
      Throws:
      DavException - if the lock could not be obtained.
    • refreshLock

      org.apache.jackrabbit.webdav.lock.ActiveLock refreshLock(org.apache.jackrabbit.webdav.lock.LockInfo reqLockInfo, String lockToken) throws DavException
      Refresh an existing lock by resetting the timeout.
      Parameters:
      reqLockInfo - lock info as retrieved from the request.
      lockToken - identifying the lock to be refreshed.
      Returns:
      lockdiscovery object to be returned in the response body. If the lock could not be refreshed a DavException is thrown.
      Throws:
      DavException - if the lock could not be refreshed.
    • unlock

      void unlock(String lockToken) throws DavException
      Remove the lock identified by the included lock token from this resource. This method will return false if the unlocking did not succeed.
      Parameters:
      lockToken - identifying the lock to be removed.
      Throws:
      DavException - if the lock could not be removed.
    • addLockManager

      void addLockManager(org.apache.jackrabbit.webdav.lock.LockManager lockmgr)
      Add an external LockManager to this resource. This method may throw UnsupportedOperationException if the resource does handle locking itself.
      Parameters:
      lockmgr -
      See Also:
      • LockManager
    • getFactory

      DavResourceFactory getFactory()
      Return the DavResourceFactory that created this resource.
      Returns:
      the factory that created this resource.
    • getSession

      DavSession getSession()
      Retrieve the DavSession associated with this resource.
      Returns:
      session object associated with this resource.