Package org.apache.jackrabbit.webdav
Class AbstractLocatorFactory
java.lang.Object
org.apache.jackrabbit.webdav.AbstractLocatorFactory
- All Implemented Interfaces:
DavLocatorFactory
AbstractLocatorFactory
is an implementation of the DavLocatorFactory
interface that defines how a given URI is split to workspace path and
resource path and how it's implementation of DavResourceLocator
builds the href. In contrast, the conversion from repository path to
resource path and vice versa is left to subclasses.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateResourceLocator
(String prefix, String href) Create a newDavResourceLocator
.createResourceLocator
(String prefix, String href, boolean forDestination) LikecreateResourceLocator(String, String)
, but by settingforDestination
totrue
any special processing of URI suffixes can be disabled.createResourceLocator
(String prefix, String workspacePath, String resourcePath) Create a newDavResourceLocator
from the specified prefix, workspace path and resource path, without modifying the specified Strings.createResourceLocator
(String prefix, String workspacePath, String path, boolean isResourcePath) Create a newDavResourceLocator
from the specified prefix, workspace path and resource path.protected abstract String
getRepositoryPath
(String resourcePath, String wspPath) Subclasses must defined how the repository path is built from the given resource and workspace path.protected abstract String
getResourcePath
(String repositoryPath, String wspPath) Subclasses must defined how the resource path is built from the given repository and workspace path.
-
Constructor Details
-
AbstractLocatorFactory
Create a new factory- Parameters:
pathPrefix
- Prefix, that needs to be removed in order to retrieve the path of the repository item from a givenDavResourceLocator
.
-
-
Method Details
-
createResourceLocator
Create a newDavResourceLocator
. Any leading prefix and path-prefix (as defined with the constructor) are removed from the given request handle. The same applies for trailing '/'. The remaining String is called the 'resource handle' and it's first segment is treated as workspace name. If resource handle (and therefore workspace name) are missing, both values are set tonull
.Examples:
http://www.foo.bar/ (path prefix missing) -> workspace path = null -> resource path = null -> href = http://www.foo.bar/pathPrefix/ http://www.foo.bar/pathPrefix/ -> workspace path = null -> resource path = null -> href = http://www.foo.bar/pathPrefix/ http://www.foo.bar/pathPrefix/wspName -> workspace path = /wspName -> resource path = /wspName -> href = http://www.foo.bar/pathPrefix/wspName http://www.foo.bar/pathPrefix/wspName/anypath -> workspace path = /wspName -> resource path = /wspName/anypath -> href = http://www.foo.bar/pathPrefix/wspName/anypath
NOTE: If the given href is an absolute URI it must start with the specified prefix.- Specified by:
createResourceLocator
in interfaceDavLocatorFactory
- Parameters:
prefix
-href
-- Returns:
- a new
DavResourceLocator
- Throws:
IllegalArgumentException
- if the given href isnull
-
createResourceLocator
LikecreateResourceLocator(String, String)
, but by settingforDestination
totrue
any special processing of URI suffixes can be disabled. -
createResourceLocator
public DavResourceLocator createResourceLocator(String prefix, String workspacePath, String resourcePath) Create a newDavResourceLocator
from the specified prefix, workspace path and resource path, without modifying the specified Strings. Note, that it is expected that the resource path starts with the given workspace path unless both values arenull
.- Specified by:
createResourceLocator
in interfaceDavLocatorFactory
- Parameters:
prefix
-workspacePath
- path or the workspace containing this resource ornull
.resourcePath
- Path of the resource ornull
. Any non null value must start with the specified workspace path.- Returns:
- a new
DavResourceLocator
- See Also:
-
createResourceLocator
public DavResourceLocator createResourceLocator(String prefix, String workspacePath, String path, boolean isResourcePath) Create a newDavResourceLocator
from the specified prefix, workspace path and resource path. IfisResourcePath
is set tofalse
, the given 'resourcePath' is converted by callinggetResourcePath(String, String)
. Otherwise the same restriction applies as forcreateResourceLocator(String, String, String)
.- Specified by:
createResourceLocator
in interfaceDavLocatorFactory
- Parameters:
prefix
-workspacePath
-path
-isResourcePath
-- Returns:
- See Also:
-
getRepositoryPath
Subclasses must defined how the repository path is built from the given resource and workspace path.- Parameters:
resourcePath
-wspPath
-- Returns:
-
getResourcePath
Subclasses must defined how the resource path is built from the given repository and workspace path.- Parameters:
repositoryPath
-wspPath
-- Returns:
-