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 an
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 and Description |
---|
AbstractLocatorFactory(String pathPrefix)
Create a new factory
|
Modifier and Type | Method and Description |
---|---|
DavResourceLocator |
createResourceLocator(String prefix,
String href)
Create a new
DavResourceLocator . |
DavResourceLocator |
createResourceLocator(String prefix,
String href,
boolean forDestination)
Like
createResourceLocator(String, String) , but by setting
forDestination to true any special processing of URI
suffixes can be disabled. |
DavResourceLocator |
createResourceLocator(String prefix,
String workspacePath,
String resourcePath)
Create a new
DavResourceLocator 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 new
DavResourceLocator 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.
|
public AbstractLocatorFactory(String pathPrefix)
pathPrefix
- Prefix, that needs to be removed in order to retrieve
the path of the repository item from a given DavResourceLocator
.public DavResourceLocator createResourceLocator(String prefix, String href)
DavResourceLocator
. 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 to null
.
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/anypathNOTE: If the given href is an absolute uri it must start with the specified prefix.
createResourceLocator
in interface DavLocatorFactory
prefix
- href
- DavResourceLocator
IllegalArgumentException
- if the given href is null
public DavResourceLocator createResourceLocator(String prefix, String href, boolean forDestination)
createResourceLocator(String, String)
, but by setting
forDestination
to true
any special processing of URI
suffixes can be disabled.public DavResourceLocator createResourceLocator(String prefix, String workspacePath, String resourcePath)
DavResourceLocator
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 are null
.createResourceLocator
in interface DavLocatorFactory
prefix
- workspacePath
- path or the workspace containing this resource or
null
.resourcePath
- Path of the resource or null
. Any non
null value must start with the specified workspace path.DavResourceLocator
DavLocatorFactory.createResourceLocator(String, String, String)
public DavResourceLocator createResourceLocator(String prefix, String workspacePath, String path, boolean isResourcePath)
DavResourceLocator
from the specified prefix,
workspace path and resource path. If isResourcePath
is set
to false
, the given 'resourcePath' is converted by calling
getResourcePath(String, String)
. Otherwise the same restriction
applies as for createResourceLocator(String, String, String)
.createResourceLocator
in interface DavLocatorFactory
prefix
- workspacePath
- path
- isResourcePath
- DavLocatorFactory.createResourceLocator(String, String, String, boolean)
protected abstract String getRepositoryPath(String resourcePath, String wspPath)
resourcePath
- wspPath
- Copyright © 2004-2020 The Apache Software Foundation. All Rights Reserved.