org.apache.jackrabbit.webdav
Class AbstractLocatorFactory

java.lang.Object
  extended by 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 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 Summary
AbstractLocatorFactory(String pathPrefix)
          Create a new factory
 
Method Summary
 DavResourceLocator createResourceLocator(String prefix, String href)
          Create a new DavResourceLocator.
 DavResourceLocator createResourceLocator(String prefix, String workspacePath, String resourcePath)
          Create a new DavResourceLocator from the specified prefix, workspace path and resource path, whithout 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 given DavResourceLocator.
Method Detail

createResourceLocator

public DavResourceLocator createResourceLocator(String prefix,
                                                String href)
Create a new 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/anypath
 
NOTE: If the given href is an absolute uri it must start with the specified prefix.

Specified by:
createResourceLocator in interface DavLocatorFactory
Parameters:
prefix -
href -
Returns:
a new DavResourceLocator
Throws:
IllegalArgumentException - if the given href is null

createResourceLocator

public DavResourceLocator createResourceLocator(String prefix,
                                                String workspacePath,
                                                String resourcePath)
Create a new DavResourceLocator from the specified prefix, workspace path and resource path, whithout modifying the specified Strings. Note, that it is expected that the resource path starts with the given workspace path unless both values are null.

Specified by:
createResourceLocator in interface DavLocatorFactory
Parameters:
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.
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 new 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).

Specified by:
createResourceLocator in interface DavLocatorFactory
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:

getResourcePath

protected abstract String getResourcePath(String repositoryPath,
                                          String wspPath)
Subclasses must defined how the resource path is built from the given repository and workspace path.

Parameters:
repositoryPath -
wspPath -
Returns:


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.