org.alfresco.repo.avm
Class AVMNodeService

java.lang.Object
  extended by org.alfresco.repo.node.AbstractNodeServiceImpl
      extended by org.alfresco.repo.avm.AVMNodeService
All Implemented Interfaces:
org.alfresco.service.cmr.repository.NodeService

public class AVMNodeService
extends AbstractNodeServiceImpl
implements org.alfresco.service.cmr.repository.NodeService

NodeService implementing facade over AVMService.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.alfresco.service.cmr.repository.NodeService
org.alfresco.service.cmr.repository.NodeService.FindNodeParameters
 
Field Summary
 
Fields inherited from class org.alfresco.repo.node.AbstractNodeServiceImpl
dictionaryService, storesToIgnorePolicies, tenantService, transactionService
 
Constructor Summary
AVMNodeService()
          Default constructor.
 
Method Summary
 void addAspect(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName aspectTypeQName, java.util.Map aspectProperties)
          Applies an aspect to the given node.
 java.util.List addChild(java.util.Collection parentRefs, org.alfresco.service.cmr.repository.NodeRef childRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName qname)
          Associates a given child node with a given collection of parents.
 org.alfresco.service.cmr.repository.ChildAssociationRef addChild(org.alfresco.service.cmr.repository.NodeRef parentRef, org.alfresco.service.cmr.repository.NodeRef childRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName qname)
          Makes a parent-child association between the given nodes.
 void addProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.Map properties)
           
 org.alfresco.service.cmr.repository.AssociationRef createAssociation(org.alfresco.service.cmr.repository.NodeRef sourceRef, org.alfresco.service.cmr.repository.NodeRef targetRef, org.alfresco.service.namespace.QName assocTypeQName)
           
 org.alfresco.service.cmr.repository.ChildAssociationRef createNode(org.alfresco.service.cmr.repository.NodeRef parentRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, org.alfresco.service.namespace.QName nodeTypeQName)
           
 org.alfresco.service.cmr.repository.ChildAssociationRef createNode(org.alfresco.service.cmr.repository.NodeRef parentRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, org.alfresco.service.namespace.QName nodeTypeQName, java.util.Map properties)
          Creates a new, non-abstract, real node as a primary child of the given parent node.
 org.alfresco.service.cmr.repository.StoreRef createStore(java.lang.String protocol, java.lang.String identifier)
          Create a new AVM store.
 void deleteNode(org.alfresco.service.cmr.repository.NodeRef nodeRef)
          Deletes the given node.
 void deleteStore(org.alfresco.service.cmr.repository.StoreRef storeRef)
           
 boolean exists(org.alfresco.service.cmr.repository.NodeRef nodeRef)
           
 boolean exists(org.alfresco.service.cmr.repository.StoreRef storeRef)
          Does the indicated store exist?
 java.util.Set getAllRootNodes(org.alfresco.service.cmr.repository.StoreRef storeRef)
           
 java.util.Set getAspects(org.alfresco.service.cmr.repository.NodeRef nodeRef)
           
 org.alfresco.service.cmr.repository.AssociationRef getAssoc(java.lang.Long id)
          Gets an association by ID.
 java.util.List getChildAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef)
          Get all child associations of the given node.
 java.util.List getChildAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QNamePattern typeQNamePattern, org.alfresco.service.namespace.QNamePattern qnamePattern)
          Gets all child associations where the pattern of the association qualified name is a match.
 java.util.List getChildAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QNamePattern typeQNamePattern, org.alfresco.service.namespace.QNamePattern qnamePattern, boolean preload)
           
 java.util.List getChildAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName typeQName, org.alfresco.service.namespace.QName qname, int maxResults, boolean preload)
           
 java.util.List getChildAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.Set childNodeTypes)
           
 java.util.List getChildAssocsByPropertyValue(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName propertyQName, java.io.Serializable value)
           
 java.util.Collection getChildAssocsWithoutParentAssocsOfType(org.alfresco.service.cmr.repository.NodeRef parent, org.alfresco.service.namespace.QName assocTypeQName)
           
 org.alfresco.service.cmr.repository.NodeRef getChildByName(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName assocTypeQName, java.lang.String childName)
          Get a child NodeRef by name.
 java.util.List getChildrenByName(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName assocTypeQName, java.util.Collection childNames)
          getChildrenByName
 java.lang.Long getNodeAclId(org.alfresco.service.cmr.repository.NodeRef nodeRef)
           
 org.alfresco.service.cmr.repository.NodeRef getNodeRef(java.lang.Long nodeId)
           
 org.alfresco.service.cmr.repository.NodeRef.Status getNodeStatus(org.alfresco.service.cmr.repository.NodeRef nodeRef)
          Gets the ID of the last transaction that caused the node to change.
 java.util.List getParentAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef)
          Defers to the pattern matching overload
 java.util.List getParentAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QNamePattern typeQNamePattern, org.alfresco.service.namespace.QNamePattern qnamePattern)
          Gets all parent associations where the pattern of the association qualified name is a match
 org.alfresco.service.cmr.repository.Path getPath(org.alfresco.service.cmr.repository.NodeRef nodeRef)
          The root node has an entry in the path(s) returned.
 java.util.List getPaths(org.alfresco.service.cmr.repository.NodeRef nodeRef, boolean primaryOnly)
          The root node has an entry in the path(s) returned.
 org.alfresco.service.cmr.repository.ChildAssociationRef getPrimaryParent(org.alfresco.service.cmr.repository.NodeRef nodeRef)
          Fetches the primary parent-child relationship.
 java.util.Map getProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef)
           
 java.io.Serializable getProperty(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName qname)
           
 org.alfresco.service.cmr.repository.NodeRef getRootNode(org.alfresco.service.cmr.repository.StoreRef storeRef)
           
 java.util.List getSourceAssocs(org.alfresco.service.cmr.repository.NodeRef targetRef, org.alfresco.service.namespace.QNamePattern qnamePattern)
          Fetches all associations to the given target where the associations' qualified names match the pattern provided.
 org.alfresco.service.cmr.repository.NodeRef getStoreArchiveNode(org.alfresco.service.cmr.repository.StoreRef storeRef)
          Get the node where archived items will have gone when deleted from the given store.
 java.util.List getStores()
          Gets a list of all available node store references
 java.util.List getTargetAssocs(org.alfresco.service.cmr.repository.NodeRef sourceRef, org.alfresco.service.namespace.QNamePattern qnamePattern)
          Fetches all associations from the given source where the associations' qualified names match the pattern provided.
 org.alfresco.service.namespace.QName getType(org.alfresco.service.cmr.repository.NodeRef nodeRef)
           
 boolean hasAspect(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName aspectTypeQName)
          Determines if a given aspect is present on a node.
protected  PropertyValue makePropertyValue(org.alfresco.service.cmr.dictionary.PropertyDefinition propertyDef, java.io.Serializable value)
          Helper method to convert the Serializable value into a full, persistable PropertyValue.
protected  java.io.Serializable makeSerializableValue(org.alfresco.service.cmr.dictionary.PropertyDefinition propertyDef, PropertyValue propertyValue)
          Extracts the externally-visible property from the propertyValue.
 org.alfresco.service.cmr.repository.ChildAssociationRef moveNode(org.alfresco.service.cmr.repository.NodeRef nodeToMoveRef, org.alfresco.service.cmr.repository.NodeRef newParentRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName)
          Moves the primary location of the given node.
 void removeAspect(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName aspectTypeQName)
          Remove an aspect and all related properties from a node
 void removeAssociation(org.alfresco.service.cmr.repository.NodeRef sourceRef, org.alfresco.service.cmr.repository.NodeRef targetRef, org.alfresco.service.namespace.QName assocTypeQName)
           
 void removeChild(org.alfresco.service.cmr.repository.NodeRef parentRef, org.alfresco.service.cmr.repository.NodeRef childRef)
          Severs all parent-child relationships between two nodes.
 boolean removeChildAssociation(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef)
          TODO: Check implementation
 void removeProperty(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName qname)
          
 boolean removeSecondaryChildAssociation(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef)
          TODO: Implement
 org.alfresco.service.cmr.repository.NodeRef restoreNode(org.alfresco.service.cmr.repository.NodeRef archivedNodeRef, org.alfresco.service.cmr.repository.NodeRef destinationParentNodeRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName)
          Restore an individual node (along with its sub-tree nodes) to the target location.
 void setAssociations(org.alfresco.service.cmr.repository.NodeRef sourceRef, org.alfresco.service.namespace.QName assocTypeQName, java.util.List targetRefs)
           
 void setAvmService(AVMService service)
          Set the AVMService.
 void setChildAssociationIndex(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef, int index)
          Set the ordering index of the child association.
 void setInvokePolicies(boolean invoke)
           
 void setProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.Map properties)
          Set the values of all properties to be an Serializable instances.
 void setProperty(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName qname, java.io.Serializable value)
          Sets the value of a property to be any Serializable instance.
 void setType(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName typeQName)
          Re-sets the type of the node.
 
Methods inherited from class org.alfresco.repo.node.AbstractNodeServiceImpl
equals, findNodes, generateGuid, getDefaultProperties, getDefaultProperties, getTypeAndAspectQNames, hashCode, init, invokeBeforeAddAspect, invokeBeforeCreateNode, invokeBeforeCreateNodeAssociation, invokeBeforeCreateStore, invokeBeforeDeleteChildAssociation, invokeBeforeDeleteNode, invokeBeforeRemoveAspect, invokeBeforeUpdateNode, invokeOnAddAspect, invokeOnCreateAssociation, invokeOnCreateChildAssociation, invokeOnCreateNode, invokeOnCreateNodeAssociation, invokeOnCreateStore, invokeOnDeleteAssociation, invokeOnDeleteChildAssociation, invokeOnDeleteNode, invokeOnMoveNode, invokeOnRemoveAspect, invokeOnRestoreNode, invokeOnUpdateNode, invokeOnUpdateProperties, removeSeconaryChildAssociation, setDictionaryService, setPolicyComponent, setStoresToIgnorePolicies, setTenantService, setTransactionService
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.alfresco.service.cmr.repository.NodeService
findNodes, removeSeconaryChildAssociation
 

Constructor Detail

AVMNodeService

public AVMNodeService()
Default constructor.

Method Detail

setAvmService

public void setAvmService(AVMService service)
Set the AVMService. For Spring.

Parameters:
service - The AVMService instance.

setInvokePolicies

public void setInvokePolicies(boolean invoke)

makePropertyValue

protected PropertyValue makePropertyValue(org.alfresco.service.cmr.dictionary.PropertyDefinition propertyDef,
                                          java.io.Serializable value)
Helper method to convert the Serializable value into a full, persistable PropertyValue.

Where the property definition is null, the value will take on the generic ANY value.

Where the property definition specifies a multi-valued property but the value provided is not a collection, the value will be wrapped in a collection.

Parameters:
propertyDef - the property dictionary definition, may be null
value - the value, which will be converted according to the definition - may be null
Returns:
Returns the persistable property value

makeSerializableValue

protected java.io.Serializable makeSerializableValue(org.alfresco.service.cmr.dictionary.PropertyDefinition propertyDef,
                                                     PropertyValue propertyValue)
Extracts the externally-visible property from the propertyValue.

Parameters:
propertyDef - the model property definition - may be null
propertyValue - the persisted property
Returns:
Returns the value of the property in the format dictated by the property definition, or null if the property value is null

getStores

public java.util.List getStores()
Gets a list of all available node store references

Specified by:
getStores in interface org.alfresco.service.cmr.repository.NodeService
Returns:
Returns a list of store references

createStore

public org.alfresco.service.cmr.repository.StoreRef createStore(java.lang.String protocol,
                                                                java.lang.String identifier)
                                                         throws org.alfresco.service.cmr.repository.StoreExistsException
Create a new AVM store.

Specified by:
createStore in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
protocol - the implementation protocol
identifier - the protocol-specific identifier
Returns:
Returns a reference to the store
Throws:
org.alfresco.service.cmr.repository.StoreExistsException

deleteStore

public void deleteStore(org.alfresco.service.cmr.repository.StoreRef storeRef)
                 throws org.alfresco.service.cmr.repository.InvalidStoreRefException
Specified by:
deleteStore in interface org.alfresco.service.cmr.repository.NodeService
Throws:
java.lang.UnsupportedOperationException - Always
org.alfresco.service.cmr.repository.InvalidStoreRefException

exists

public boolean exists(org.alfresco.service.cmr.repository.StoreRef storeRef)
Does the indicated store exist?

Specified by:
exists in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
storeRef - a reference to the store to look for
Returns:
Returns true if the store exists, otherwise false

exists

public boolean exists(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Specified by:
exists in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef - a reference to the node to look for
Returns:
Returns true if the node exists, otherwise false

getNodeStatus

public org.alfresco.service.cmr.repository.NodeRef.Status getNodeStatus(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Gets the ID of the last transaction that caused the node to change. This includes deletions, so it is possible that the node being referenced no longer exists. If the node never existed, then null is returned.

Specified by:
getNodeStatus in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef - a reference to a current or previously existing node
Returns:
Returns the status of the node, or null if the node never existed

getNodeRef

public org.alfresco.service.cmr.repository.NodeRef getNodeRef(java.lang.Long nodeId)
Specified by:
getNodeRef in interface org.alfresco.service.cmr.repository.NodeService
Throws:
java.lang.UnsupportedOperationException - always

getRootNode

public org.alfresco.service.cmr.repository.NodeRef getRootNode(org.alfresco.service.cmr.repository.StoreRef storeRef)
                                                        throws org.alfresco.service.cmr.repository.InvalidStoreRefException
Specified by:
getRootNode in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
storeRef - a reference to an existing store
Returns:
Returns a reference to the root node of the store
Throws:
org.alfresco.service.cmr.repository.InvalidStoreRefException - if the store could not be found

getAllRootNodes

public java.util.Set getAllRootNodes(org.alfresco.service.cmr.repository.StoreRef storeRef)
Specified by:
getAllRootNodes in interface org.alfresco.service.cmr.repository.NodeService

createNode

public org.alfresco.service.cmr.repository.ChildAssociationRef createNode(org.alfresco.service.cmr.repository.NodeRef parentRef,
                                                                          org.alfresco.service.namespace.QName assocTypeQName,
                                                                          org.alfresco.service.namespace.QName assocQName,
                                                                          org.alfresco.service.namespace.QName nodeTypeQName)
                                                                   throws org.alfresco.service.cmr.repository.InvalidNodeRefException,
                                                                          org.alfresco.service.cmr.dictionary.InvalidTypeException
Specified by:
createNode in interface org.alfresco.service.cmr.repository.NodeService
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException
org.alfresco.service.cmr.dictionary.InvalidTypeException
See Also:
AVMNodeService.createNode(NodeRef, QName, QName, QName, Map)

createNode

public org.alfresco.service.cmr.repository.ChildAssociationRef createNode(org.alfresco.service.cmr.repository.NodeRef parentRef,
                                                                          org.alfresco.service.namespace.QName assocTypeQName,
                                                                          org.alfresco.service.namespace.QName assocQName,
                                                                          org.alfresco.service.namespace.QName nodeTypeQName,
                                                                          java.util.Map properties)
                                                                   throws org.alfresco.service.cmr.repository.InvalidNodeRefException,
                                                                          org.alfresco.service.cmr.dictionary.InvalidTypeException
Creates a new, non-abstract, real node as a primary child of the given parent node.

Specified by:
createNode in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
parentRef - the parent node
assocTypeQName - the type of the association to create. This is used for verification against the data dictionary.
assocQName - the qualified name of the association
nodeTypeQName - a reference to the node type
properties - optional map of properties to keyed by their qualified names
Returns:
Returns a reference to the newly created child association
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the parent reference is invalid
org.alfresco.service.cmr.dictionary.InvalidTypeException - if the node type reference is not recognised
See Also:
DictionaryService

moveNode

public org.alfresco.service.cmr.repository.ChildAssociationRef moveNode(org.alfresco.service.cmr.repository.NodeRef nodeToMoveRef,
                                                                        org.alfresco.service.cmr.repository.NodeRef newParentRef,
                                                                        org.alfresco.service.namespace.QName assocTypeQName,
                                                                        org.alfresco.service.namespace.QName assocQName)
                                                                 throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Moves the primary location of the given node.

This involves changing the node's primary parent and possibly the name of the association referencing it.

If the new parent is in a different store from the original, then the entire node hierarchy is moved to the new store. Inter-store associations are not affected.

Specified by:
moveNode in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeToMoveRef - the node to move
newParentRef - the new parent of the moved node
assocTypeQName - the type of the association to create. This is used for verification against the data dictionary.
assocQName - the qualified name of the new child association
Returns:
Returns a reference to the newly created child association
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if either the parent node or move node reference is invalid
CyclicChildRelationshipException - if the child partakes in a cyclic relationship after the add
See Also:
AVMNodeService.getPrimaryParent(NodeRef)

setChildAssociationIndex

public void setChildAssociationIndex(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef,
                                     int index)
                              throws org.alfresco.service.cmr.repository.InvalidChildAssociationRefException
Set the ordering index of the child association. This affects the ordering of of the return values of methods that return a set of children or child associations.

Specified by:
setChildAssociationIndex in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
childAssocRef - the child association that must be moved in the order
index - an arbitrary index that will affect the return order
Throws:
org.alfresco.service.cmr.repository.InvalidChildAssociationRefException
See Also:
AVMNodeService.getChildAssocs(NodeRef), AVMNodeService.getChildAssocs(NodeRef, QNamePattern, QNamePattern), ChildAssociationRef.getNthSibling()

getType

public org.alfresco.service.namespace.QName getType(org.alfresco.service.cmr.repository.NodeRef nodeRef)
                                             throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Specified by:
getType in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef -
Returns:
Returns the type name
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found
See Also:
DictionaryService

setType

public void setType(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                    org.alfresco.service.namespace.QName typeQName)
             throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Re-sets the type of the node. Can be called in order specialise a node to a sub-type. This should be used with caution since calling it changes the type of the node and thus implies a different set of aspects, properties and associations. It is the calling codes responsibility to ensure that the node is in a approriate state after changing the type.

Specified by:
setType in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef - the node reference
typeQName - the type QName
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException
Since:
1.1

addAspect

public void addAspect(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                      org.alfresco.service.namespace.QName aspectTypeQName,
                      java.util.Map aspectProperties)
               throws org.alfresco.service.cmr.repository.InvalidNodeRefException,
                      org.alfresco.service.cmr.dictionary.InvalidAspectException
Applies an aspect to the given node. After this method has been called, the node with have all the aspect-related properties present

Specified by:
addAspect in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef -
aspectTypeQName - the aspect to apply to the node
aspectProperties - a minimum of the mandatory properties required for the aspect
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException
org.alfresco.service.cmr.dictionary.InvalidAspectException - if the class reference is not to a valid aspect
See Also:
DictionaryService.getAspect(QName), ClassDefinition.getProperties()

removeAspect

public void removeAspect(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                         org.alfresco.service.namespace.QName aspectTypeQName)
                  throws org.alfresco.service.cmr.repository.InvalidNodeRefException,
                         org.alfresco.service.cmr.dictionary.InvalidAspectException
Remove an aspect and all related properties from a node

Specified by:
removeAspect in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef -
aspectTypeQName - the type of aspect to remove
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found
org.alfresco.service.cmr.dictionary.InvalidAspectException - if the the aspect is unknown or if the aspect is mandatory for the class of the node

hasAspect

public boolean hasAspect(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                         org.alfresco.service.namespace.QName aspectTypeQName)
                  throws org.alfresco.service.cmr.repository.InvalidNodeRefException,
                         org.alfresco.service.cmr.dictionary.InvalidAspectException
Determines if a given aspect is present on a node. Aspects may only be removed if they are NOT mandatory.

Specified by:
hasAspect in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef -
aspectTypeQName -
Returns:
Returns true if the aspect has been applied to the given node, otherwise false
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found
org.alfresco.service.cmr.dictionary.InvalidAspectException - if the aspect reference is invalid

getAspects

public java.util.Set getAspects(org.alfresco.service.cmr.repository.NodeRef nodeRef)
                         throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Specified by:
getAspects in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef -
Returns:
Returns a set of all aspects applied to the node, including mandatory aspects
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found

deleteNode

public void deleteNode(org.alfresco.service.cmr.repository.NodeRef nodeRef)
                throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Deletes the given node.

All associations (both children and regular node associations) will be deleted, and where the given node is the primary parent, the children will also be cascade deleted.

Specified by:
deleteNode in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef - reference to a node within a store
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the reference given is invalid

addChild

public org.alfresco.service.cmr.repository.ChildAssociationRef addChild(org.alfresco.service.cmr.repository.NodeRef parentRef,
                                                                        org.alfresco.service.cmr.repository.NodeRef childRef,
                                                                        org.alfresco.service.namespace.QName assocTypeQName,
                                                                        org.alfresco.service.namespace.QName qname)
                                                                 throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Makes a parent-child association between the given nodes. Both nodes must belong to the same store.

Specified by:
addChild in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
parentRef -
childRef -
assocTypeQName - the qualified name of the association type as defined in the datadictionary
qname - the qualified name of the association
Returns:
Returns a reference to the newly created child association
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the parent or child nodes could not be found
CyclicChildRelationshipException - if the child partakes in a cyclic relationship after the add

addChild

public java.util.List addChild(java.util.Collection parentRefs,
                               org.alfresco.service.cmr.repository.NodeRef childRef,
                               org.alfresco.service.namespace.QName assocTypeQName,
                               org.alfresco.service.namespace.QName qname)
                        throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Associates a given child node with a given collection of parents. All nodes must belong to the same store.

Specified by:
addChild in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
parentRefs -
childRef -
assocTypeQName - the qualified name of the association type as defined in the datadictionary
qname - the qualified name of the association
Returns:
Returns a reference to the newly created child association
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the parent or child nodes could not be found
CyclicChildRelationshipException - if the child partakes in a cyclic relationship after the add

removeChild

public void removeChild(org.alfresco.service.cmr.repository.NodeRef parentRef,
                        org.alfresco.service.cmr.repository.NodeRef childRef)
                 throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Severs all parent-child relationships between two nodes.

The child node will be cascade deleted if one of the associations was the primary association, i.e. the one with which the child node was created.

Specified by:
removeChild in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
parentRef - the parent end of the association
childRef - the child end of the association
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the parent or child nodes could not be found

removeChildAssociation

public boolean removeChildAssociation(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef)
TODO: Check implementation

Specified by:
removeChildAssociation in interface org.alfresco.service.cmr.repository.NodeService

removeSecondaryChildAssociation

public boolean removeSecondaryChildAssociation(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef)
TODO: Implement

Specified by:
removeSecondaryChildAssociation in interface org.alfresco.service.cmr.repository.NodeService

getProperties

public java.util.Map getProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef)
                            throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Specified by:
getProperties in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef -
Returns:
Returns all properties keyed by their qualified name
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found

getProperty

public java.io.Serializable getProperty(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                        org.alfresco.service.namespace.QName qname)
                                 throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Specified by:
getProperty in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef -
qname - the qualified name of the property
Returns:
Returns the value of the property, or null if not yet set
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found

removeProperty

public void removeProperty(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                           org.alfresco.service.namespace.QName qname)
                    throws org.alfresco.service.cmr.repository.InvalidNodeRefException

Specified by:
removeProperty in interface org.alfresco.service.cmr.repository.NodeService
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException

setProperties

public void setProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                          java.util.Map properties)
                   throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Set the values of all properties to be an Serializable instances. The properties given must still fulfill the requirements of the class and aspects relevant to the node.

NOTE: Null values are allowed.

Specified by:
setProperties in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef -
properties - all the properties of the node keyed by their qualified names
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found

addProperties

public void addProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                          java.util.Map properties)
Specified by:
addProperties in interface org.alfresco.service.cmr.repository.NodeService

setProperty

public void setProperty(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                        org.alfresco.service.namespace.QName qname,
                        java.io.Serializable value)
                 throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Sets the value of a property to be any Serializable instance. To remove a property value, use AVMNodeService.getProperties(NodeRef), remove the value and call AVMNodeService.setProperties(NodeRef, Map).

NOTE: Null values are allowed.

Specified by:
setProperty in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef -
qname - the fully qualified name of the property
propertyValue - the value of the property - never null
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found

getParentAssocs

public java.util.List getParentAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef)
                               throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Description copied from class: AbstractNodeServiceImpl
Defers to the pattern matching overload

Specified by:
getParentAssocs in interface org.alfresco.service.cmr.repository.NodeService
Overrides:
getParentAssocs in class AbstractNodeServiceImpl
Parameters:
nodeRef - the child node
Returns:
Returns a list of all parent-child associations that exist where the given node is the child
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found
See Also:
AVMNodeService.getParentAssocs(NodeRef, QNamePattern, QNamePattern)

getParentAssocs

public java.util.List getParentAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                      org.alfresco.service.namespace.QNamePattern typeQNamePattern,
                                      org.alfresco.service.namespace.QNamePattern qnamePattern)
                               throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Gets all parent associations where the pattern of the association qualified name is a match

The resultant list is ordered by (a) explicit index and (b) association creation time.

Specified by:
getParentAssocs in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef - the child node
typeQNamePattern - the pattern that the type qualified name of the association must match
qnamePattern - the pattern that the qnames of the assocs must match
Returns:
Returns a list of all parent-child associations that exist where the given node is the child
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found
See Also:
ChildAssociationRef.getNthSibling(), AVMNodeService.setChildAssociationIndex(ChildAssociationRef, int), QName, RegexQNamePattern.MATCH_ALL

getChildAssocs

public java.util.List getChildAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef)
                              throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Get all child associations of the given node.

The resultant list is ordered by (a) explicit index and (b) association creation time.

Specified by:
getChildAssocs in interface org.alfresco.service.cmr.repository.NodeService
Overrides:
getChildAssocs in class AbstractNodeServiceImpl
Parameters:
nodeRef - the parent node - usually a container
Returns:
Returns a collection of ChildAssocRef instances. If the node is not a container then the result will be empty.
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found
See Also:
AVMNodeService.getChildAssocs(NodeRef, QNamePattern, QNamePattern), AVMNodeService.setChildAssociationIndex(ChildAssociationRef, int), ChildAssociationRef.getNthSibling()

getChildAssocs

public java.util.List getChildAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                     org.alfresco.service.namespace.QNamePattern typeQNamePattern,
                                     org.alfresco.service.namespace.QNamePattern qnamePattern)
                              throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Gets all child associations where the pattern of the association qualified name is a match.

Specified by:
getChildAssocs in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef - the parent node - usually a container
typeQNamePattern - the pattern that the type qualified name of the association must match
qnamePattern - the pattern that the qnames of the assocs must match
Returns:
Returns a list of ChildAssocRef instances. If the node is not a container then the result will be empty.
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found
See Also:
QName, RegexQNamePattern.MATCH_ALL

getChildAssocs

public java.util.List getChildAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                     org.alfresco.service.namespace.QName typeQName,
                                     org.alfresco.service.namespace.QName qname,
                                     int maxResults,
                                     boolean preload)
                              throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Specified by:
getChildAssocs in interface org.alfresco.service.cmr.repository.NodeService
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException

getChildAssocs

public java.util.List getChildAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                     org.alfresco.service.namespace.QNamePattern typeQNamePattern,
                                     org.alfresco.service.namespace.QNamePattern qnamePattern,
                                     boolean preload)
                              throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Specified by:
getChildAssocs in interface org.alfresco.service.cmr.repository.NodeService
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException

getChildAssocs

public java.util.List getChildAssocs(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                     java.util.Set childNodeTypes)
Specified by:
getChildAssocs in interface org.alfresco.service.cmr.repository.NodeService

getChildrenByName

public java.util.List getChildrenByName(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                        org.alfresco.service.namespace.QName assocTypeQName,
                                        java.util.Collection childNames)
getChildrenByName

Specified by:
getChildrenByName in interface org.alfresco.service.cmr.repository.NodeService

getChildByName

public org.alfresco.service.cmr.repository.NodeRef getChildByName(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                                                  org.alfresco.service.namespace.QName assocTypeQName,
                                                                  java.lang.String childName)
Get a child NodeRef by name.

Specified by:
getChildByName in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef - The parent node.
assocTypeQName - The type of the Child Association.
childName - The name of the child to get.

getPrimaryParent

public org.alfresco.service.cmr.repository.ChildAssociationRef getPrimaryParent(org.alfresco.service.cmr.repository.NodeRef nodeRef)
                                                                         throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Fetches the primary parent-child relationship.

For a root node, the parent node reference will be null.

Specified by:
getPrimaryParent in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef -
Returns:
Returns the primary parent-child association of the node
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found

createAssociation

public org.alfresco.service.cmr.repository.AssociationRef createAssociation(org.alfresco.service.cmr.repository.NodeRef sourceRef,
                                                                            org.alfresco.service.cmr.repository.NodeRef targetRef,
                                                                            org.alfresco.service.namespace.QName assocTypeQName)
                                                                     throws org.alfresco.service.cmr.repository.InvalidNodeRefException,
                                                                            org.alfresco.service.cmr.repository.AssociationExistsException
Specified by:
createAssociation in interface org.alfresco.service.cmr.repository.NodeService
Throws:
java.lang.UnsupportedOperationException - always
org.alfresco.service.cmr.repository.InvalidNodeRefException
org.alfresco.service.cmr.repository.AssociationExistsException

setAssociations

public void setAssociations(org.alfresco.service.cmr.repository.NodeRef sourceRef,
                            org.alfresco.service.namespace.QName assocTypeQName,
                            java.util.List targetRefs)
Specified by:
setAssociations in interface org.alfresco.service.cmr.repository.NodeService
Throws:
java.lang.UnsupportedOperationException - always

removeAssociation

public void removeAssociation(org.alfresco.service.cmr.repository.NodeRef sourceRef,
                              org.alfresco.service.cmr.repository.NodeRef targetRef,
                              org.alfresco.service.namespace.QName assocTypeQName)
                       throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Specified by:
removeAssociation in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
sourceRef - the associaton source node
targetRef - the association target node
assocTypeQName - the qualified name of the association type
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if either of the nodes could not be found

getAssoc

public org.alfresco.service.cmr.repository.AssociationRef getAssoc(java.lang.Long id)
Gets an association by ID.

Specified by:
getAssoc in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
assocId - the association id
Returns:
the association, or null if it does not exist

getTargetAssocs

public java.util.List getTargetAssocs(org.alfresco.service.cmr.repository.NodeRef sourceRef,
                                      org.alfresco.service.namespace.QNamePattern qnamePattern)
                               throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Fetches all associations from the given source where the associations' qualified names match the pattern provided.

Specified by:
getTargetAssocs in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
sourceRef - the association source
qnamePattern - the association qname pattern to match against
Returns:
Returns a list of NodeAssocRef instances for which the given node is a source
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the source node could not be found
See Also:
QName, RegexQNamePattern.MATCH_ALL

getSourceAssocs

public java.util.List getSourceAssocs(org.alfresco.service.cmr.repository.NodeRef targetRef,
                                      org.alfresco.service.namespace.QNamePattern qnamePattern)
                               throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Fetches all associations to the given target where the associations' qualified names match the pattern provided.

Specified by:
getSourceAssocs in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
targetRef - the association target
qnamePattern - the association qname pattern to match against
Returns:
Returns a list of NodeAssocRef instances for which the given node is a target
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException
See Also:
QName, RegexQNamePattern.MATCH_ALL

getPath

public org.alfresco.service.cmr.repository.Path getPath(org.alfresco.service.cmr.repository.NodeRef nodeRef)
                                                 throws org.alfresco.service.cmr.repository.InvalidNodeRefException
The root node has an entry in the path(s) returned. For this reason, there will always be at least one path element in the returned path(s). The first element will have a null parent reference and qname.

Specified by:
getPath in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef -
Returns:
Returns the path to the node along the primary node path
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found
See Also:
AVMNodeService.getPaths(NodeRef, boolean)

getPaths

public java.util.List getPaths(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                               boolean primaryOnly)
                        throws org.alfresco.service.cmr.repository.InvalidNodeRefException
The root node has an entry in the path(s) returned. For this reason, there will always be at least one path element in the returned path(s). The first element will have a null parent reference and qname.

Specified by:
getPaths in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
nodeRef -
primaryOnly - true if only the primary path must be retrieved. If true, the result will have exactly one entry.
Returns:
Returns a List of all possible paths to the given node
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException - if the node could not be found

getStoreArchiveNode

public org.alfresco.service.cmr.repository.NodeRef getStoreArchiveNode(org.alfresco.service.cmr.repository.StoreRef storeRef)
Get the node where archived items will have gone when deleted from the given store.

Specified by:
getStoreArchiveNode in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
storeRef - the store that items were deleted from
Returns:
Returns the archive node parent

restoreNode

public org.alfresco.service.cmr.repository.NodeRef restoreNode(org.alfresco.service.cmr.repository.NodeRef archivedNodeRef,
                                                               org.alfresco.service.cmr.repository.NodeRef destinationParentNodeRef,
                                                               org.alfresco.service.namespace.QName assocTypeQName,
                                                               org.alfresco.service.namespace.QName assocQName)
Restore an individual node (along with its sub-tree nodes) to the target location. The archived node must have the archived aspect set against it.

Specified by:
restoreNode in interface org.alfresco.service.cmr.repository.NodeService
Parameters:
archivedNodeRef - the archived node
destinationParentNodeRef - the parent to move the node into or null to use the original
assocTypeQName - the primary association type name to use in the new location or null to use the original
assocQName - the primary association name to use in the new location or null to use the original
Returns:
Returns the reference to the newly created node

getChildAssocsWithoutParentAssocsOfType

public java.util.Collection getChildAssocsWithoutParentAssocsOfType(org.alfresco.service.cmr.repository.NodeRef parent,
                                                                    org.alfresco.service.namespace.QName assocTypeQName)
Specified by:
getChildAssocsWithoutParentAssocsOfType in interface org.alfresco.service.cmr.repository.NodeService

getNodeAclId

public java.lang.Long getNodeAclId(org.alfresco.service.cmr.repository.NodeRef nodeRef)
                            throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Specified by:
getNodeAclId in interface org.alfresco.service.cmr.repository.NodeService
Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException

getChildAssocsByPropertyValue

public java.util.List getChildAssocsByPropertyValue(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                                    org.alfresco.service.namespace.QName propertyQName,
                                                    java.io.Serializable value)
Specified by:
getChildAssocsByPropertyValue in interface org.alfresco.service.cmr.repository.NodeService


Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.