001: /*
002: * (C) Copyright Simulacra Media Ltd, 2004. All rights reserved.
003: *
004: * The program is provided "AS IS" without any warranty express or
005: * implied, including the warranty of non-infringement and the implied
006: * warranties of merchantibility and fitness for a particular purpose.
007: * Simulacra Media Ltd will not be liable for any damages suffered by you as a result
008: * of using the Program. In no event will Simulacra Media Ltd be liable for any
009: * special, indirect or consequential damages or lost profits even if
010: * Simulacra Media Ltd has been advised of the possibility of their occurrence.
011: * Simulacra Media Ltd will not be liable for any third party claims against you.
012: *
013: */
014: package com.ibm.webdav.impl;
015:
016: import java.util.List;
017:
018: import com.ibm.webdav.WebDAVException;
019:
020: /**
021: * VersionedNamespaceManager implements all WebDAV namespace methods which deal with
022: * versioned resources that are dependent on a specific repository manager interface.
023: * This manager is used by ResourceImpl and its subclasses to interface with a particular
024: * repository manager for accessing and controlling versions of resources.
025: *
026: * @author Michael Bell
027: * @version $Revision: 1.1 $
028: * @since November 17, 2003
029: */
030: public interface VersionedNamespaceManager extends NamespaceManager {
031:
032: /**
033: * Checks resource in and returns the verion URI for the checked in version
034: *
035: * @return
036: * @throws WebDAVException
037: */
038: public String checkin() throws WebDAVException;
039:
040: /**
041: * Checks out the current resource
042: *
043: * @throws WebDAVException
044: */
045: public void checkout() throws WebDAVException;
046:
047: /**
048: * Returns a <code>List</code> of versions of this resource
049: *
050: * @return
051: * @throws WebDAVException
052: */
053: public List getVersions() throws WebDAVException;
054:
055: /**
056: * Uncheckouts trhe current resource
057: *
058: * @throws WebDAVException
059: */
060: public void uncheckout() throws WebDAVException;
061:
062: /**
063: * Adds this resource to version control
064: */
065: public void versionControl() throws WebDAVException;
066:
067: /**
068: * Returns <code>true</code> if resource has a version history
069: *
070: * @return
071: * @throws WebDAVException
072: */
073: public boolean isVersioned() throws WebDAVException;
074:
075: /**
076: * Returns <code>true</code> if resource is checked in
077: *
078: * @return
079: * @throws WebDAVException
080: */
081: public boolean isCheckedInVersion() throws WebDAVException;
082:
083: /**
084: * Returns <code>true</code> if resource is checked out
085: *
086: * @return
087: * @throws WebDAVException
088: */
089: public boolean isCheckedOutVersion() throws WebDAVException;
090:
091: /**
092: * Returns <code>true</code> if the given url is a verion url
093: *
094: * @param parentURL
095: * @return
096: */
097: public boolean isVersionURL(String url);
098:
099: /**
100: * Returns the resource URL for the resource, used if the url used to obtain
101: * the resource was a version url
102: *
103: * @return
104: */
105: public String getResourceURL() throws WebDAVException;
106:
107: }
|