org.alfresco.repo.copy
Interface CopyBehaviourCallback

All Known Implementing Classes:
AbstractCopyBehaviourCallback, CompoundCopyBehaviourCallback, DefaultCopyBehaviourCallback, DoNothingCopyBehaviourCallback

public interface CopyBehaviourCallback

A callback to modify copy behaviour associated with a given type or aspect. This callback is called per type and per aspect.

Since:
3.2

Nested Class Summary
static class CopyBehaviourCallback.ChildAssocCopyAction
          Description of how the copy process should traverse a child association.
static class CopyBehaviourCallback.ChildAssocRecurseAction
          Description of how the copy process should behave when copying an association.
static class CopyBehaviourCallback.CopyChildAssociationDetails
          A simple bean class to convey information to the callback methods dealing with copying of child associations.
 
Method Summary
 CopyBehaviourCallback.ChildAssocCopyAction getChildAssociationCopyAction(QName classQName, CopyDetails copyDetails, CopyBehaviourCallback.CopyChildAssociationDetails childAssocCopyDetails)
          Determine if a copy should copy the child, the association only or do nothing with the given association.
 CopyBehaviourCallback.ChildAssocRecurseAction getChildAssociationRecurseAction(QName classQName, CopyDetails copyDetails, CopyBehaviourCallback.CopyChildAssociationDetails childAssocCopyDetails)
          Once the child association copy action has been chosen, the policy callback can dictate whether or not to force further recursion.
 java.util.Map getCopyProperties(QName classQName, CopyDetails copyDetails, java.util.Map properties)
          Modify the properties that are copied across.
 boolean getMustCopy(QName classQName, CopyDetails copyDetails)
          Determine if this type or aspect must be copied.
 

Method Detail

getMustCopy

boolean getMustCopy(QName classQName,
                    CopyDetails copyDetails)
Determine if this type or aspect must be copied. If the callback is for a type (not aspect) then this determines if the node is copied at all. If the callback is for an aspect, then this determines if the aspect is copied.

Parameters:
classQName - the name of the class that this is being invoked for
copyDetails - the source node's copy details for quick reference
Returns:
true if the type or aspect that this behaviour represents must be copied.

getChildAssociationCopyAction

CopyBehaviourCallback.ChildAssocCopyAction getChildAssociationCopyAction(QName classQName,
                                                                         CopyDetails copyDetails,
                                                                         CopyBehaviourCallback.CopyChildAssociationDetails childAssocCopyDetails)
Determine if a copy should copy the child, the association only or do nothing with the given association.

This is called regardless of whether 'cascade' copy has been selected by the client of the copy. Some type and aspect behaviour will mandate a copy of the child associations regardless of whether recursion is on.

Parameters:
classQName - the name of the class that this is being invoked for
copyDetails - the source node's copy details for quick reference
childAssocCopyDetails - all other details relating to the child association
Returns:
Returns the copy action to take with the given child association

getChildAssociationRecurseAction

CopyBehaviourCallback.ChildAssocRecurseAction getChildAssociationRecurseAction(QName classQName,
                                                                               CopyDetails copyDetails,
                                                                               CopyBehaviourCallback.CopyChildAssociationDetails childAssocCopyDetails)
Once the child association copy action has been chosen, the policy callback can dictate whether or not to force further recursion. This cannot prevent behaviour further down the hierarchy from stopping the copy.

Parameters:
classQName - the name of the class that this is being invoked for
copyDetails - the source node's copy details for quick reference
childAssocCopyDetails - all other details relating to the child association
Returns:
Returns the type of recursion to perform after having copied the child association
See Also:
#getChildAssociationCopyAction(QName, CopyDetails, ChildAssociationRef, boolean)

getCopyProperties

java.util.Map getCopyProperties(QName classQName,
                                CopyDetails copyDetails,
                                java.util.Map properties)
Modify the properties that are copied across.

Parameters:
classQName - the name of the class that this is being invoked for
copyDetails - the source node's copy details for quick reference
properties - the type- or aspect-specific properties that can be copied. The map can be manipulated and returned as required.
Returns:
Returns the type or aspect properties that should be copied.


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