Class LockInfo

java.lang.Object
org.apache.jackrabbit.webdav.lock.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 Details

    • 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 Details

    • 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: