Brought javadocs up to date with current api behavior in AVMService.

Got rid of a redundant and mostly unused method, the createSnapshot()
that takes a List of names.  Adjusted to fit.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4453 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Britt Park
2006-11-29 03:04:53 +00:00
parent 99e428afaa
commit 23a1a5657d
6 changed files with 189 additions and 227 deletions

View File

@@ -33,10 +33,12 @@ import org.alfresco.util.Pair;
/**
* This is the service interface for the [Alfresco|Addled|Advanced|Aleatoric|Apotheosed|Awful]
* Versioning Model. It specifies methods that are close in functionality to the underlying
* implementation, and is intended as both a first class Alfresco service and an
* aid in creating new implementations of existing services.
* Paths are of the form storename:/foo/bar/baz.
* Versioning Model. Paths are of the form storename:/foo/bar/baz. Since the AVM is
* a versioning repository all references to AVM nodes are via a version id (implied for write
* operations) an a path. The special version id -1 refers to the latest read write version of
* a store. All positive versions refer to read only snapshots of a store created
* explicitly by a call to createSnapshot() or implicitly by certain other calls
* in this interface or the AVMSyncService interface.
* @author britt
*/
public interface AVMService
@@ -46,18 +48,16 @@ public interface AVMService
* @param version The version id to look in.
* @param path The simple absolute path to the file node.
* @return An InputStream for the designated file.
* @throws AVMNotFoundException If <code>path</code> is not found.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* component that is not a Directory of if it does not point at a file.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public InputStream getFileInputStream(int version, String path);
/**
* Get an output stream to a file node. The file must already exist.
* @param path The simple absolute path to the file node.
* @throws AVMNotFoundException If <code>path</code> is not found.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* component that is not a directory, or if it is not pointing to a file.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public OutputStream getFileOutputStream(String path);
@@ -66,6 +66,8 @@ public interface AVMService
* @param version The version of the file.
* @param path The path to the file.
* @return A ContentReader.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public ContentReader getContentReader(int version, String path);
@@ -73,6 +75,8 @@ public interface AVMService
* Get a ContentWriter to a file node.
* @param path The path to the file.
* @return A ContentWriter.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public ContentWriter createContentWriter(String path);
@@ -81,10 +85,8 @@ public interface AVMService
* @param version The version id to look in.
* @param path The simple absolute path to the file node.
* @return A Map of names to descriptors.
* @throws AVMNotFoundException If <code>path</code> is not found.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* component that is not a directory, or if <code>path</code> is not pointing
* at a directory.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public SortedMap<String, AVMNodeDescriptor> getDirectoryListing(int version, String path);
@@ -95,10 +97,8 @@ public interface AVMService
* @param path The simple absolute path to the file node.
* @param includeDeleted Whether to see Deleted Nodes.
* @return A Map of names to descriptors.
* @throws AVMNotFoundException If <code>path</code> is not found.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* component that is not a directory, or if <code>path</code> is not pointing
* at a directory.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public SortedMap<String, AVMNodeDescriptor> getDirectoryListing(int version, String path,
boolean includeDeleted);
@@ -110,9 +110,8 @@ public interface AVMService
* @param version The version to look up.
* @param path The full path to get listing for.
* @return A Map of names to descriptors.
* @throws AVMNotFoundException If <code>path</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> contains any non-directory
* elements.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public SortedMap<String, AVMNodeDescriptor>
getDirectoryListingDirect(int version, String path);
@@ -126,9 +125,8 @@ public interface AVMService
* @param path The full path to get listing for.
* @param includeDeleted Whether to see Deleted Nodes.
* @return A Map of names to descriptors.
* @throws AVMNotFoundException If <code>path</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> contains any non-directory
* elements.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public SortedMap<String, AVMNodeDescriptor>
getDirectoryListingDirect(int version, String path, boolean includeDeleted);
@@ -139,15 +137,19 @@ public interface AVMService
* @param path The path to the directory to be listed.
* @param includeDeleted Whether to include ghosts.
* @return An array of AVMNodeDescriptors.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public AVMNodeDescriptor [] getDirectoryListingArray(int version, String path,
boolean includeDeleted);
boolean includeDeleted);
/**
* Get a listing of all the directly contained children of a directory.
* @param dir The directory descriptor.
* @param includeDeleted Whether to include deleted children.
* @return A Map of Strings to descriptors.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public SortedMap<String, AVMNodeDescriptor>
getDirectoryListingDirect(AVMNodeDescriptor dir, boolean includeDeleted);
@@ -156,9 +158,8 @@ public interface AVMService
* Get a directory listing from a node descriptor.
* @param dir The directory node descriptor.
* @return A Map of names to node descriptors.
* @throws AVMNotFoundException If the descriptor is stale.
* @throws AVMWrongTypeException If the descriptor does not point at
* a directory.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public SortedMap<String, AVMNodeDescriptor> getDirectoryListing(AVMNodeDescriptor dir);
@@ -179,6 +180,8 @@ public interface AVMService
* @param dir The descriptor pointing at the directory to list.
* @param includeDeleted Whether to show ghosts.
* @return An array of AVMNodeDescriptors.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public AVMNodeDescriptor [] getDirectoryListingArray(AVMNodeDescriptor dir,
boolean includeDeleted);
@@ -188,9 +191,8 @@ public interface AVMService
* @param version The version to look under.
* @param path The path of the directory.
* @return A List of names.
* @throws AVMNotFoundException If <code>path</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> contains any elements
* that are not directories.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public List<String> getDeleted(int version, String path);
@@ -198,10 +200,9 @@ public interface AVMService
* Create a new File. Fails if the file already exists.
* @param path The simple absolute path to the parent.
* @param name The name to give the file.
* @throws AVMNotFound If <code>path</code> is non existent.
* @throws AVMExists If <code>name</code> already exists.
* @throws AVMWrongType If some component of <code>path</code> is not
* a directory.
* @throws AVMNotFound
* @throws AVMExists
* @throws AVMWrongType
*/
public OutputStream createFile(String path, String name);
@@ -211,22 +212,22 @@ public interface AVMService
* @param path The path to the parent directory.
* @param name The name for the new file.
* @param in An input stream with data for the file.
* @throws AVMNotFound If <code>path</code> is non existent.
* @throws AVMExists If <code>name</code> already exists.
* @throws AVMWrongType If some component of <code>path</code> is not
* a directory.
* @throws AVMNotFound
* @throws AVMExists
* @throws AVMWrongType
*/
public void createFile(String path, String name, InputStream in);
/**
* Create a new directory.
* Create a new directory. The new directory will be a plain
* directory if it is created outside of a layer, it will be a
* layered directory if created within a layer.
* @param path The simple absolute path to the parent.
* @param name The name to give the folder.
* @throws AVMNotFound If <code>path</code> is non existent.
* @throws AVMExists If <code>name</code> already exists.
* @throws AVMWrongType If some component of <code>path</code> is not
* a directory.
*/
* @throws AVMNotFound
* @throws AVMExists
* @throws AVMWrongType
*/
public void createDirectory(String path, String name);
/**
@@ -234,33 +235,31 @@ public interface AVMService
* @param targetPath The simple absolute path that the new file will point at.
* @param parent The simple absolute path to the parent.
* @param name The name to give the new file.
* @throws AVMNotFound If <code>parent</code> is non existent.
* @throws AVMExists If <code>name</code> already exists.
* @throws AVMWrongType If some component of <code>parent</code> is not
* a directory.
* @throws AVMNotFound
* @throws AVMExists
* @throws AVMWrongType
*/
public void createLayeredFile(String targetPath, String parent, String name);
/**
* Create a new layered directory.
* Create a new layered directory. In whatever context this is created, this
* will be a layered directory that has a primary indirection.
* @param targetPath The simple absolute path that the new folder will point at.
* @param parent The simple absolute path to the parent.
* @param name The name to give the new folder.
* @throws AVMNotFound If <code>parent</code> is non existent.
* @throws AVMExists If <code>name</code> already exists.
* @throws AVMWrongType If some component of <code>parent</code> is not
* a directory.
* @throws AVMNotFound
* @throws AVMExists
* @throws AVMWrongType
*/
public void createLayeredDirectory(String targetPath, String parent, String name);
/**
* Retarget a layered directory.
* Retarget a layered directory. Change the path that a layered directory points
* to. This has the side effect of making the layered directory a primary indirection.
* @param path Path to the layered directory.
* @param target The new target to aim at.
* @throws AVMNotFoundException If <code>path</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* component that is not a directory or if it does not point at a retargetable
* directory.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public void retargetLayeredDirectory(String path, String target);
@@ -268,54 +267,59 @@ public interface AVMService
* Create a new AVMStore. All AVMStores are top level in a hierarchical
* sense.
* @param name The name to give the AVMStore.
* @throws AVMExistsException If <code>name</code> is an already existing store.
* @throws AVMExistsException
*/
public void createAVMStore(String name);
/**
* Create a branch from a given version and path.
* Create a branch from a given version and path. As a side effect
* the store that contains the node that is being branched from is
* automatically snapshotted.
* @param version The version number from which to make the branch.
* @param srcPath The path to the node to branch from.
* @param dstPath The path to the directory to contain the
* new branch.
* @param name The name to give the new branch.
* @throws AVMNotFoundException If either <code>srcPath</code> or
* <code>dstPath</code> does not exist.
* @throws AVMExistsException If <code>name</code> already exists.
* @throws AVMWrongTypeException If <code>srcPath</code> or <code>dstPath</code>
* contains a non-terminal element that is not a directory.
* @throws AVMNotFoundException
* @throws AVMExistsException
* @throws AVMWrongTypeException
*/
public void createBranch(int version, String srcPath, String dstPath, String name);
/**
* Remove a child from its parent.
* Remove a child from its parent. Caution this removes directories even
* if they are not empty.
* @param parent The simple absolute path to the parent directory.
* @param name The name of the child to remove.
* @throws AVMNotFoundException If <code>parent</code> or <code>name</code>
* does not exist.
* @throws AVMWrongTypeException If <code>parent</code> contains a non-terminal
* element that is not a directory.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public void removeNode(String parent, String name);
/**
* Remove a node from by its full path.
* Remove a node by its full path. Sugar coating on removeNode(parent, name).
* @param path The full path to the node to remove.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public void removeNode(String path);
/**
* Rename a node.
* Rename a node. There are a number of things to note about the
* interaction of rename and layering. If you rename a layered directory
* into a non layered context, the layered directory continues to point
* to the same place it did before it was renamed and automatically becomes
* a primary indirection node. If a plain directory is renamed into a layered
* context it remains a plain, thus acting as an opaque node in its new
* layered home. Renaming a layered node into a layered node leaves the renamed
* node pointing to the same place it did before the rename and makes it automatically
* a primary indirection node.
* @param srcParent The simple absolute path to the parent folder.
* @param srcName The name of the node in the src Folder.
* @param dstParent The simple absolute path to the destination folder.
* @param dstName The name that the node will have in the destination folder.
* @throws AVMNotFoundException If <code>srcParent</code>,
* <code>srcName</code>, or <code>dstParent</code> do not exist.
* @throws AVMExistsException If <code>dstName</code> already exists.
* @throws AVMWrongTypeException If <code>srcParent</code> or
* <code>dstParent</code> contain non-terminal elements that are not directories
* or if either do not point at directories.
* @throws AVMNotFoundException
* @throws AVMExistsException
*/
public void rename(String srcParent, String srcName, String dstParent, String dstName);
@@ -325,9 +329,8 @@ public interface AVMService
* name from the deleted list.
* @param dirPath The path to the layered directory.
* @param name The name to uncover.
* @throws AVMNotFoundException If <code>dirPath</code> does not exist.
* @throws AVMWrongTypeExceptiont If <code>dirPath</code> contains a non-terminal
* element that is not a directory.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public void uncover(String dirPath, String name);
@@ -336,22 +339,25 @@ public interface AVMService
* removes the offending node from its layered directory parent's direct ownership.
* @param dirPath The path to the layered directory.
* @param name The name of the item to flatten.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public void flatten(String dirPath, String name);
/**
* Get the latest version id of the AVMStore.
* Gets the id that the next snapshotted version of a store
* will have.
* @param storeName The name of the AVMStore.
* @return The latest version id of the AVMStore.
* @throws AVMNotFoundException If <code>storeName</code> does not exist.
* @return The next version id of the AVMStore.
* @throws AVMNotFoundException
*/
public int getLatestVersionID(String storeName);
public int getNextVersionID(String storeName);
/**
* Get the latest snapshot id of a store.
* @param storeName The store name.
* @return The id of the latest extant version of the store.
* @throws AVMNotFoundException If <code>storeName</code> does not exist.
* @throws AVMNotFoundException
*/
public int getLatestSnapshotID(String storeName);
@@ -364,33 +370,37 @@ public interface AVMService
* @return A List of the version ids of the newly created snapshots.
* @throws AVMNotFoundException If any of the stores do not exist.
*/
public List<Integer> createSnapshot(List<String> stores);
// public List<Integer> createSnapshot(List<String> stores);
/**
* Snapshot the given AVMStore.
* @param store The name of the AVMStore to snapshot.
* @param tag The short description.
* @param description The thick description.
* @throws AVMNotFoundException If <code>store</code> does not exist.
* @throws AVMNotFoundException
*/
public int createSnapshot(String store, String tag, String description);
/**
* Get the set of versions in an AVMStore
* Get the set of versions in an AVMStore. Since the number of version
* that a store can contain can become large this call can be a resource
* pig to the point of causing Out of Memory exceptions.
* @param name The name of the AVMStore.
* @return A Set of version IDs
* @throws AVMNotFoundException If <code>name</code> does not exist.
* @return A Set of version descriptors.
* @throws AVMNotFoundException
*/
public List<VersionDescriptor> getAVMStoreVersions(String name);
/**
* Get AVMStore version descriptors by creation date. Either from or
* to can be null but not both.
* to can be null but not both. If from is null then all versions before
* to will be returned. If to is null then all versions later than from
* will be returned.
* @param name The name of the AVMStore.
* @param from Earliest date of version to include.
* @param to Latest date of version to include.
* @return The Set of version IDs that match.
* @throws AVMNotFoundException If <code>name</code> does not exist.
* @return The Set of version descriptors that match.
* @throws AVMNotFoundException
*/
public List<VersionDescriptor> getAVMStoreVersions(String name, Date from, Date to);
@@ -402,7 +412,8 @@ public interface AVMService
/**
* Get (and create if necessary) the system store. This store houses things
* like workflow packages.
* like workflow packages. The system store is intended to be a scratch store.
* It isn't used internally at this time but may be in the future.
* @return The descriptor.
*/
public AVMStoreDescriptor getAVMSystemStore();
@@ -410,8 +421,7 @@ public interface AVMService
/**
* Get a descriptor for an AVMStore.
* @param name The AVMStore's name.
* @return A Descriptor.
* @throws AVMNotFoundException If <code>name</code> does not exist.
* @return A Descriptor, or null if not foun.
*/
public AVMStoreDescriptor getAVMStore(String name);
@@ -420,8 +430,7 @@ public interface AVMService
* @param version The version to look up.
* @param name The name of the AVMStore.
* @return A descriptor for the specified root.
* @throws AVMNotFoundException If <code>name</code> does not exist or
* if <code>version</code> does not exist.
* @throws AVMNotFoundException
*/
public AVMNodeDescriptor getAVMStoreRoot(int version, String name);
@@ -429,11 +438,7 @@ public interface AVMService
* Lookup a node by version ids and path.
* @param version The version id to look under.
* @param path The simple absolute path to the parent directory.
* @return An AVMNodeDescriptor.
* @throws AVMNotFoundException If <code>path</code> does not exist or
* if <code>version</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* element that is not a directory.
* @return An AVMNodeDescriptor, or null if the node does not exist.
*/
public AVMNodeDescriptor lookup(int version, String path);
@@ -443,9 +448,7 @@ public interface AVMService
* @param version The version id to look under.
* @param path The simple absolute path to the parent directory.
* @param includeDeleted Whether to see Deleted Nodes.
* @return An AVMNodeDescriptor.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* element that is not a directory.
* @return An AVMNodeDescriptor, or null if the version does not exist.
*/
public AVMNodeDescriptor lookup(int version, String path, boolean includeDeleted);
@@ -464,30 +467,37 @@ public interface AVMService
* @param dir The descriptor for the directory node.
* @param name The name to lookup.
* @param includeDeleted Whether to see Deleted Nodes.
* @return The descriptor for the child.
* @throws AVMWrongTypeException If <code>dir</code> does not refer to a directory.
* @return The descriptor for the child, null if the child doesn't exist.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public AVMNodeDescriptor lookup(AVMNodeDescriptor dir, String name, boolean includeDeleted);
/**
* Get a list of all paths that a given node has.
* Get a list of all paths that a given node has. This can be an expensive
* operation.
* @param desc The node descriptor to get paths for.
* @return A List of version, path Pairs.
* @throws AVMNotFoundException
*/
public List<Pair<Integer, String>> getPaths(AVMNodeDescriptor desc);
/**
* Get all paths that a given node has that are in the head version.
* This can be an expensive operation but less so than getPaths().
* @param desc The node descriptor to get paths for.
* @return A List of version, path Pairs.
* @throws AVMNotFoundException
*/
public List<Pair<Integer, String>> getHeadPaths(AVMNodeDescriptor desc);
/**
* Get all paths to a node starting at the HEAD version of a store.
* This can be an expensive operation but less so than getHeadPaths().
* @param desc The node descriptor.
* @param store The store.
* @return A List of all paths meeting the criteria.
* @throws AVMNotFoundException
*/
public List<Pair<Integer, String>> getPathsInStoreHead(AVMNodeDescriptor desc, String store);
@@ -496,18 +506,15 @@ public interface AVMService
* @param version The version number to get.
* @param path The path to the node of interest.
* @return The indirection path, or null if the path is not in a layered context.
* @throws AVMNotFoundException If <code>path</code> does not exist or
* if <code>version</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* element that is not a directory or if it does not refer to a layered
* node.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public String getIndirectionPath(int version, String path);
/**
* Purge an AVMStore. This is a complete wipe of an AVMStore.
* @param name The name of the AVMStore.
* @throws AVMNotFoundException If <code>name</code> does not exist.
* @throws AVMNotFoundException
*/
public void purgeAVMStore(String name);
@@ -524,19 +531,17 @@ public interface AVMService
/**
* Make a directory into a primary indirection node.
* @param path The full path.
* @throws AVMNotFoundException If <code>path</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* element that is not a directory or if it refers to a node that can't be made
* primary.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public void makePrimary(String path);
/**
* Get a list of all the ancestor versions of a node.
* @param desc The version of a node to find ancestors for.
* Get a list of up to count nodes in the history chain of a node.
* @param desc The descriptor for a node to find ancestors for.
* @param count How many. -1 means all.
* @return A List of ancestors starting with the most recent.
* @throws AVMNotFoundException If <code>desc</code> is dangling.
* @throws AVMNotFoundException
*/
public List<AVMNodeDescriptor> getHistory(AVMNodeDescriptor desc, int count);
@@ -544,10 +549,8 @@ public interface AVMService
* Set the opacity of a layered directory. An opaque layered directory
* hides the contents of its indirection.
* @param path The path to the layered directory.
* @throws AVMNotFoundException If <code>path</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* element that is not a directory or if it refers to a node that cannot have
* its opacity set.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public void setOpacity(String path, boolean opacity);
@@ -560,8 +563,7 @@ public interface AVMService
* an ancestor of right. Right returned means that right is strictly an
* ancestor of left. Any other non null return is the common ancestor and
* indicates that left and right are in conflict.
* @throws AVMNotFoundException If <code>left</code> or <code>right</code>
* do not exist.
* @throws AVMNotFoundException
*/
public AVMNodeDescriptor getCommonAncestor(AVMNodeDescriptor left,
AVMNodeDescriptor right);
@@ -571,10 +573,8 @@ public interface AVMService
* @param version The version to look under.
* @param path The full AVM path.
* @return A LayeringDescriptor.
* @throws AVMNotFoundException If <code>path</code> or <code>version</code>
* do not exist.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* element that is not a directory.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public LayeringDescriptor getLayeringInfo(int version, String path);
@@ -583,9 +583,8 @@ public interface AVMService
* @param path The path to the node to set the property on.
* @param name The QName of the property.
* @param value The property to set.
* @throws AVMNotFoundException If <code>path</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* element that is not a directory.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public void setNodeProperty(String path, QName name, PropertyValue value);
@@ -593,9 +592,8 @@ public interface AVMService
* Set a collection of properties on a node.
* @param path The path to the node.
* @param properties The Map of properties to set.
* @throws AVMNotFoundException If <code>path</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* element that is not a directory.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public void setNodeProperties(String path, Map<QName, PropertyValue> properties);
@@ -605,10 +603,8 @@ public interface AVMService
* @param path The path to the node.
* @param name The QName.
* @return The PropertyValue or null if it doesn't exist.
* @throws AVMNotFoundException If <code>path</code> or <code>version</code>
* do not exist.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* element that is not a directory.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public PropertyValue getNodeProperty(int version, String path, QName name);
@@ -617,10 +613,7 @@ public interface AVMService
* @param version The version to look under.
* @param path The path to the node.
* @return A Map of QNames to PropertyValues.
* @throws AVMNotFoundException If <code>path</code> or <code>version</code>
* do not exist.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* element that is not a directory.
* @throws AVMNotFoundException
*/
public Map<QName, PropertyValue> getNodeProperties(int version, String path);
@@ -628,15 +621,14 @@ public interface AVMService
* Delete a property.
* @param path The path to the node.
* @param name The QName of the property to delete.
* @throws AVMNotFoundException If <code>path</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> contains a non-terminal
* element that is not a directory.
* @throws AVMNotFoundException
*/
public void deleteNodeProperty(String path, QName name);
/**
* Delete all the properties attached to an AVM node.
* @param path The path to the node.
* @throws AVMNotFoundException
*/
public void deleteNodeProperties(String path);
@@ -645,8 +637,7 @@ public interface AVMService
* @param store The store to set the property on.
* @param name The name of the property.
* @param value The value of the property.
* @throws AVMNotFoundException If <code>store</code>
* does not exist.
* @throws AVMNotFoundException
*/
public void setStoreProperty(String store, QName name, PropertyValue value);
@@ -654,8 +645,7 @@ public interface AVMService
* Set a group of properties on a store. Existing properties will be overwritten.
* @param store The name of the store.
* @param props A Map of the properties to set.
* @throws AVMNotFoundException If <code>store</code>
* does not exist.
* @throws AVMNotFoundException
*/
public void setStoreProperties(String store, Map<QName, PropertyValue> props);
@@ -664,8 +654,7 @@ public interface AVMService
* @param store The name of the store.
* @param name The name of the property.
* @return A PropertyValue or null if non-existent.
* @throws AVMNotFoundException If <code>store</code>
* does not exist.
* @throws AVMNotFoundException
*/
public PropertyValue getStoreProperty(String store, QName name);
@@ -673,8 +662,7 @@ public interface AVMService
* Get all the properties associated with a store.
* @param store The name of the store.
* @return A Map of the stores properties.
* @throws AVMNotFoundException If <code>store</code>
* does not exist.
* @throws AVMNotFoundException
*/
public Map<QName, PropertyValue> getStoreProperties(String store);
@@ -699,29 +687,26 @@ public interface AVMService
* Delete a property on a store by name.
* @param store The name of the store.
* @param name The name of the property to delete.
* @throws AVMNotFoundException If <code>store</code>
* does not exist.
* @throws AVMNotFoundException
*/
public void deleteStoreProperty(String store, QName name);
/**
* Get the ContentData for a node. Only applies to a file.
* Get the ContentData for a node in a read context. Only applies to a file.
* @param version The version to look under.
* @param path The path to the node.
* @return The ContentData object.
* @throws AVMNotFoundException If <code>path</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> does not
* point to a file.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public ContentData getContentDataForRead(int version, String path);
/**
* Get the ContentData for a node.
* Get the ContentData for a node in a write context.
* @param path The path to the node.
* @return The ContentData object.
* @throws AVMNotFoundException If <code>path</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> does not point
* to a file.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public ContentData getContentDataForWrite(String path);
@@ -729,9 +714,8 @@ public interface AVMService
* Set the content data on a file.
* @param path The path to the file.
* @param data The ContentData to set.
* @throws AVMNotFoundException If <code>path</code> does not exist.
* @throws AVMWrongTypeException If <code>path</code> does not point
* to a file.
* @throws AVMNotFoundException
* @throws AVMWrongTypeException
*/
public void setContentData(String path, ContentData data);
@@ -739,6 +723,7 @@ public interface AVMService
* Set all metadata on a node from another node. Aspects, properties, ACLs.
* @param path The path to the node to set.
* @param from The descriptor for the node to get metadata from.
* @throws AVMNotFoundException
*/
public void setMetaDataFrom(String path, AVMNodeDescriptor from);
@@ -746,8 +731,8 @@ public interface AVMService
* Add an aspect to an AVM node.
* @param path The path to the node.
* @param aspectName The QName of the aspect.
* @throws AVMNotFoundException If <code>path</code> does not exist.
* @throws AVMExistsException If the aspect already exists.
* @throws AVMNotFoundException
* @throws AVMExistsException
*/
public void addAspect(String path, QName aspectName);
@@ -756,6 +741,7 @@ public interface AVMService
* @param version The version to look under.
* @param path The path to the node.
* @return A List of the QNames of the aspects.
* @throws AVMNotFoundException
*/
public List<QName> getAspects(int version, String path);
@@ -763,6 +749,7 @@ public interface AVMService
* Remove an aspect and its properties from a node.
* @param path The path to the node.
* @param aspectName The name of the aspect.
* @throws AVMNotFoundException
*/
public void removeAspect(String path, QName aspectName);
@@ -772,30 +759,39 @@ public interface AVMService
* @param path The path to the node.
* @param aspectName The aspect name to check.
* @return Whether the given node has the given aspect.
* @throws AVMNotFoundException
*/
public boolean hasAspect(int version, String path, QName aspectName);
/**
* This inserts a node into a parent directly.
* This inserts a node into a parent directly. This is not something
* one generally wants to do as the results are often not what you think.
* Used internally by the AVMSyncService.update() method. This may disappear
* from the public interface.
* @param parentPath The path to the parent directory.
* @param name The name to give the node.
* @param toLink A descriptor for the node to insert.
* @throws AVMNotFoundException
*/
public void link(String parentPath, String name, AVMNodeDescriptor toLink);
/**
* Force copy on write of a path.
* Force copy on write of a path. Forces a copy on write event
* on the given node. Not usually needed, and may disappear from the
* public interface.
* @param path The path to force.
* @throws AVMNotFoundException
*/
public AVMNodeDescriptor forceCopy(String path);
/**
* Copy (possibly recursively) the source into the destination
* directory.
* directory. This copies all node properties, acls, and aspects.
* @param srcVersion The version of the source.
* @param srcPath The path to the source.
* @param dstPath The destination directory.
* @param name The name to give the destination.
* @throws AVMNotFoundException
*/
public void copy(int srcVersion, String srcPath, String dstPath, String name);
}