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.
-
-
Field Summary
-
Fields inherited from interface org.apache.jackrabbit.webdav.DavConstants
creationDateFormat, DEPTH_0, DEPTH_1, DEPTH_INFINITY, DEPTH_INFINITY_S, HEADER_AUTHORIZATION, HEADER_CONTENT_LANGUAGE, HEADER_CONTENT_LENGTH, HEADER_CONTENT_TYPE, HEADER_DAV, HEADER_DEPTH, HEADER_DESTINATION, HEADER_ETAG, HEADER_IF, HEADER_LAST_MODIFIED, HEADER_LOCK_TOKEN, HEADER_OVERWRITE, HEADER_TIMEOUT, INFINITE_TIMEOUT, modificationDateFormat, NAMESPACE, OPAQUE_LOCK_TOKEN_PREFIX, PROPERTY_CREATIONDATE, PROPERTY_DISPLAYNAME, PROPERTY_GETCONTENTLANGUAGE, PROPERTY_GETCONTENTLENGTH, PROPERTY_GETCONTENTTYPE, PROPERTY_GETETAG, PROPERTY_GETLASTMODIFIED, PROPERTY_LOCKDISCOVERY, PROPERTY_RESOURCETYPE, PROPERTY_SOURCE, PROPERTY_SUPPORTEDLOCK, PROPFIND_ALL_PROP, PROPFIND_ALL_PROP_INCLUDE, PROPFIND_BY_PROPERTY, PROPFIND_PROPERTY_NAMES, TIMEOUT_INFINITE, UNDEFINED_TIME, UNDEFINED_TIMEOUT, XML_ACTIVELOCK, XML_ALLPROP, XML_COLLECTION, XML_DEPTH, XML_DST, XML_EXCLUSIVE, XML_HREF, XML_INCLUDE, XML_KEEPALIVE, XML_LINK, XML_LOCKENTRY, XML_LOCKINFO, XML_LOCKROOT, XML_LOCKSCOPE, XML_LOCKTOKEN, XML_LOCKTYPE, XML_MULTISTATUS, XML_OMIT, XML_OWNER, XML_PROP, XML_PROPERTYBEHAVIOR, XML_PROPERTYUPDATE, XML_PROPFIND, XML_PROPNAME, XML_PROPSTAT, XML_REMOVE, XML_RESPONSE, XML_RESPONSEDESCRIPTION, XML_SET, XML_SHARED, XML_SOURCE, XML_STATUS, XML_TIMEOUT, XML_WRITE
-
-
Constructor Summary
Constructors Constructor Description LockInfo(long timeout)
Create a newLockInfo
used for refreshing an existing lock.LockInfo(Scope scope, Type type, String owner, long timeout, boolean isDeep)
Create a newLockInfo
LockInfo(Element liElement, long timeout, boolean isDeep)
Create a newLockInfo
object from the given information.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getOwner()
Return the owner indicated by the corresponding child element from the 'lockinfo' element ornull
if no 'lockinfo' element was passed to the constructor or did not contain an 'owner' element.Scope
getScope()
Return the lock scope ornull
if no 'lockinfo' element was passed to the constructor or did not contain an 'scope' element and the scope has not been set otherwise.long
getTimeout()
Returns the time until the lock is requested to expire.Type
getType()
Returns the lock type ornull
if no 'lockinfo' element was passed to the constructor or did not contain an 'type' element and the type has not been set otherwise.boolean
isDeep()
Returns true if the lock must be applied with depth infinity.boolean
isRefreshLock()
Returns true if thisLockInfo
was created for a LOCK request intended to refresh an existing lock rather than creating a new one.void
setScope(Scope scope)
Set the lock scope.void
setType(Type type)
Set the lock type.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.
-
-
-
Constructor Detail
-
LockInfo
public LockInfo(long timeout)
Create a newLockInfo
used for refreshing an existing lock.- Parameters:
timeout
-
-
LockInfo
public LockInfo(Scope scope, Type type, String owner, long timeout, boolean isDeep)
Create a newLockInfo
- Parameters:
scope
-type
-owner
-timeout
-isDeep
-
-
LockInfo
public LockInfo(Element liElement, long timeout, boolean isDeep) throws DavException
Create a newLockInfo
object from the given information. IfliElement
isnull
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 ornull
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 theliElement
is notnull
but does not start with an 'lockinfo' element.
-
-
Method Detail
-
getType
public Type getType()
Returns the lock type ornull
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 ornull
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 ornull
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 thisLockInfo
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 interfaceXmlSerializable
- Parameters:
document
-- Returns:
- xml representation of this lock info.
- See Also:
XmlSerializable.toXml(Document)
-
-