Package org.apache.jackrabbit.webdav
Class AbstractLocatorFactory
- java.lang.Object
-
- org.apache.jackrabbit.webdav.AbstractLocatorFactory
-
- All Implemented Interfaces:
DavLocatorFactory
- Direct Known Subclasses:
DavLocatorFactoryImpl
,LocatorFactoryImplEx
public abstract class AbstractLocatorFactory extends Object implements 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 ofDavResourceLocator
builds the href. In contrast, the conversion from repository path to resource path and vice versa is left to subclasses.
-
-
Constructor Summary
Constructors Constructor Description AbstractLocatorFactory(String pathPrefix)
Create a new factory
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description DavResourceLocator
createResourceLocator(String prefix, String href)
Create a newDavResourceLocator
.DavResourceLocator
createResourceLocator(String prefix, String href, boolean forDestination)
LikecreateResourceLocator(String, String)
, but by settingforDestination
totrue
any special processing of URI suffixes can be disabled.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.DavResourceLocator
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 Detail
-
AbstractLocatorFactory
public AbstractLocatorFactory(String pathPrefix)
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 Detail
-
createResourceLocator
public DavResourceLocator createResourceLocator(String prefix, String href)
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
public DavResourceLocator createResourceLocator(String prefix, String href, boolean forDestination)
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:
DavLocatorFactory.createResourceLocator(String, String, String)
-
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:
DavLocatorFactory.createResourceLocator(String, String, String, boolean)
-
getRepositoryPath
protected abstract String getRepositoryPath(String resourcePath, String wspPath)
Subclasses must defined how the repository path is built from the given resource and workspace path.- Parameters:
resourcePath
-wspPath
-- Returns:
-
-