Class AbstractLocatorFactory

  • All Implemented Interfaces:
    DavLocatorFactory

    public abstract class AbstractLocatorFactory
    extends java.lang.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 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 
      Constructor Description
      AbstractLocatorFactory​(java.lang.String pathPrefix)
      Create a new factory
    • Constructor Detail

      • AbstractLocatorFactory

        public AbstractLocatorFactory​(java.lang.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​(java.lang.String prefix,
                                                        java.lang.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:
        java.lang.IllegalArgumentException - if the given href is null
      • createResourceLocator

        public DavResourceLocator createResourceLocator​(java.lang.String prefix,
                                                        java.lang.String href,
                                                        boolean forDestination)
        Like createResourceLocator(String, String), but by setting forDestination to true any special processing of URI suffixes can be disabled.
      • createResourceLocator

        public DavResourceLocator createResourceLocator​(java.lang.String prefix,
                                                        java.lang.String workspacePath,
                                                        java.lang.String resourcePath)
        Create a new 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.
        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)