Package org.apache.jackrabbit.webdav
Interface DavResource
-
- All Known Subinterfaces:
AclResource
,ActivityResource
,BaselineResource
,DeltaVResource
,ObservationResource
,OrderingResource
,TransactionResource
,VersionableResource
,VersionControlledResource
,VersionHistoryResource
,VersionResource
,WorkspaceResource
public interface DavResource
DavResource
provides standard WebDAV functionality as specified by RFC 2518.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
METHODS
String constant representing the WebDAV 1 and 2 method set.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addLockManager(LockManager lockmgr)
Add an externalLockManager
to this resource.void
addMember(DavResource resource, InputContext inputContext)
Add the given resource as an internal member to this resource.MultiStatusResponse
alterProperties(java.util.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 resourceboolean
exists()
Returns true if this webdav resource represents an existing repository item.DavResource
getCollection()
Retrieve the resource this resource is internal member of.java.lang.String
getComplianceClass()
Returns a comma separated list of all compliance classes the given resource is fulfilling.java.lang.String
getDisplayName()
Returns the display name of this resource.DavResourceFactory
getFactory()
Return theDavResourceFactory
that created this resource.java.lang.String
getHref()
Returns the absolute href of this resource as returned in the multistatus response body.DavResourceLocator
getLocator()
Returns thelocator
object for this webdav resource, which encapsulates the information for building the complete 'href'.ActiveLock
getLock(Type type, Scope scope)
Return the lock present on this webdav resource ornull
if the resource is either not locked or not lockable at all.ActiveLock[]
getLocks()
Returns an array of all locks applied to the given resource.DavResourceIterator
getMembers()
Returns an iterator over all internal members.long
getModificationTime()
Return the time of the last modification or -1 if the modification time could not be retrieved.DavPropertySet
getProperties()
Returns all webdav properties present on this resource that will be return upon aDavConstants.PROPFIND_ALL_PROP
request.DavProperty<?>
getProperty(DavPropertyName name)
Return the webdav property with the specified name.DavPropertyName[]
getPropertyNames()
Returns an array of allproperty names
available on this resource.java.lang.String
getResourcePath()
Returns the path of the hierarchy element defined by thisDavResource
.DavSession
getSession()
Retrieve theDavSession
associated with this resource.java.lang.String
getSupportedMethods()
Returns a comma separated list of all METHODS supported by the given resource.boolean
hasLock(Type type, Scope scope)
Returns true if a lock applies to this resource.boolean
isCollection()
Returns true if this webdav resource has the resourcetype 'collection'.boolean
isLockable(Type type, Scope scope)
Returns true, if the this resource allows locking.ActiveLock
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 resourceActiveLock
refreshLock(LockInfo reqLockInfo, java.lang.String lockToken)
Refresh an existing lock by resetting the timeout.void
removeMember(DavResource member)
Removes the specified member from this resource.void
removeProperty(DavPropertyName propertyName)
Remove the specified property from this resource.void
setProperty(DavProperty<?> property)
Add/Set the specified property on this resource.void
spool(OutputContext outputContext)
Spools the resource properties and ev.void
unlock(java.lang.String lockToken)
Remove the lock identified by the included lock token from this resource.
-
-
-
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.
-
getLocator
DavResourceLocator getLocator()
Returns thelocator
object for this webdav resource, which encapsulates the information for building the complete 'href'.- Returns:
- the locator for this resource.
- See Also:
getResourcePath()
,getHref()
-
getResourcePath
java.lang.String getResourcePath()
Returns the path of the hierarchy element defined by thisDavResource
. This method is a shortcut forDavResource.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 allproperty 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 ornull
if the property does not exist.
-
getProperties
DavPropertySet getProperties()
Returns all webdav properties present on this resource that will be return upon aDavConstants.PROPFIND_ALL_PROP
request. The implementation may in addition expose other (protected or calculated) properties which should be marked accordingly (see alsoDavProperty.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 containingDavPropertyName
objects (for properties to be removed) andDavProperty
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
-
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(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 ornull
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 informationnull
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 externalLockManager
to this resource. This method may throwUnsupportedOperationException
if the resource does handle locking itself.- Parameters:
lockmgr
-- See Also:
LockManager
-
getFactory
DavResourceFactory getFactory()
Return theDavResourceFactory
that created this resource.- Returns:
- the factory that created this resource.
-
getSession
DavSession getSession()
Retrieve theDavSession
associated with this resource.- Returns:
- session object associated with this resource.
-
-