Interface DavResource

    • Field Detail

      • METHODS

        static final java.lang.String METHODS
        String constant representing the WebDAV 1 and 2 method set.
        See Also:
        Constant Field Values
    • Method Detail

      • getComplianceClass

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

        java.lang.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

        java.lang.String getDisplayName()
        Returns the display name of this resource.
        Returns:
        display name.
      • getResourcePath

        java.lang.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

        java.lang.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​(OutputContext outputContext)
            throws java.io.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:
        java.io.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​(java.util.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,
                       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
      • 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​(Type type,
                           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​(Type type,
                        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

        ActiveLock getLock​(Type type,
                           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

        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

        ActiveLock 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

        ActiveLock refreshLock​(LockInfo reqLockInfo,
                               java.lang.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​(java.lang.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​(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.