blob: 58e8d9c968e26bdc08b9da82cea911e24b815a21 [file] [log] [blame]
/*
* Copyright 2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jackrabbit.webdav;
/**
* <code>DavLocatorFactory</code>...
*/
public interface DavLocatorFactory {
/**
* Create a new <code>DavResourceLocator</code>.
*
* @param prefix String consisting of [scheme:][//authority][path] where
* path defines the (imaginary) path to the {@link DavResourceLocator#isRootLocation root location}.
* @param href of the resource to be created. The given string may start with
* the 'prefix'. Please note, that in contrast to
* {@link DavLocatorFactory#createResourceLocator(String, String, String)} the
* href is expected to be URL encoded.
* @return
*/
public DavResourceLocator createResourceLocator(String prefix, String href);
/**
* Create a new <code>DavResourceLocator</code>. This methods corresponds to
* {@link DavLocatorFactory#createResourceLocator(String, String, String, boolean)}
* with the flag set to true.
*
* @param prefix String consisting of [scheme:][//authority][path] where
* path defines the path to the {@link DavResourceLocator#isRootLocation root location}.
* @param workspacePath the first segment of the URIs path indicating the
* workspace. The implementation may allow a empty String if workspaces
* are not supported.
* @param resourcePath the URL decoded resource path
* @return
*/
public DavResourceLocator createResourceLocator(String prefix, String workspacePath, String resourcePath);
/**
*
* @param prefix
* @param workspacePath
* @param path
* @param isResourcePath If true this method returns the same as
* {@link DavLocatorFactory#createResourceLocator(String, String, String)},
* otherwise the given path is treated as {@link javax.jcr.Item#getPath JCR path}.
* The implementation may choose to modify the given item path if it contains
* escaped characters due to incompatibility of the JCR path with the URI
* definition. I.e. it would undo the modification that was applied when
* calling {@link DavResourceLocator#getJcrPath()}.
* @return
* @see DavResourceLocator#getJcrPath()
*/
public DavResourceLocator createResourceLocator(String prefix, String workspacePath, String path, boolean isResourcePath);
}