Class LockInfo

  • All Implemented Interfaces:
    DavConstants, XmlSerializable

    public class LockInfo
    extends Object
    implements DavConstants, XmlSerializable
    LockInfo is a simple utility class encapsulating the information passed with a LOCK request. It combines both the request body (which if present is required to by a 'lockinfo' Xml element) and the lock relevant request headers 'Timeout' and 'Depth'.
    Note that is class is not intended to perform any validation of the information given, since this left to those objects responsible for the lock creation on the requested resource.
    • Constructor Detail

      • LockInfo

        public LockInfo​(long timeout)
        Create a new LockInfo used for refreshing an existing lock.
        Parameters:
        timeout -
      • LockInfo

        public LockInfo​(Scope scope,
                        Type type,
                        String owner,
                        long timeout,
                        boolean isDeep)
        Create a new LockInfo
        Parameters:
        scope -
        type -
        owner -
        timeout -
        isDeep -
      • LockInfo

        public LockInfo​(Element liElement,
                        long timeout,
                        boolean isDeep)
                 throws DavException
        Create a new LockInfo object from the given information. If liElement is null this lockinfo is assumed to be issued from a 'Refresh Lock' request.
        Parameters:
        liElement - 'lockinfo' element present in the request body of a LOCK request or null if the request was intended to refresh an existing lock.
        timeout - Requested timespan until the lock should expire. A LOCK request MUST contain a 'Timeout' according to RFC 2518.
        isDeep - boolean value indicating whether the lock should be applied with depth infinity or only to the requested resource.
        Throws:
        DavException - if the liElement is not null but does not start with an 'lockinfo' element.
    • Method Detail

      • getType

        public Type getType()
        Returns the lock type or null if no 'lockinfo' element was passed to the constructor or did not contain an 'type' element and the type has not been set otherwise.
        Returns:
        type or null
      • setType

        public void setType​(Type type)
        Set the lock type.
        Parameters:
        type -
      • getScope

        public Scope getScope()
        Return the lock scope or null if no 'lockinfo' element was passed to the constructor or did not contain an 'scope' element and the scope has not been set otherwise.
        Returns:
        scope or null
      • setScope

        public void setScope​(Scope scope)
        Set the lock scope.
        Parameters:
        scope -
      • getOwner

        public String getOwner()
        Return the owner indicated by the corresponding child element from the 'lockinfo' element or null if no 'lockinfo' element was passed to the constructor or did not contain an 'owner' element.
        Returns:
        owner or null
      • isDeep

        public boolean isDeep()
        Returns true if the lock must be applied with depth infinity.
        Returns:
        true if a deep lock must be created.
      • getTimeout

        public long getTimeout()
        Returns the time until the lock is requested to expire.
        Returns:
        time until the lock should expire.
      • isRefreshLock

        public boolean isRefreshLock()
        Returns true if this LockInfo was created for a LOCK request intended to refresh an existing lock rather than creating a new one.
        Returns:
        true if the corresponding LOCK request was intended to refresh an existing lock.
      • toXml

        public Element toXml​(Document document)
        Returns the xml representation of this lock info.
        NOTE however, that the depth and the timeout are not included in the xml. They will be passed to the server using the corresponding request headers.
        Specified by:
        toXml in interface XmlSerializable
        Parameters:
        document -
        Returns:
        xml representation of this lock info.
        See Also:
        XmlSerializable.toXml(Document)