Interface CopyBehaviourCallback

All Known Implementing Classes:
AbstractCopyBehaviourCallback, AliasableAspectCopyBehaviourCallback, 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
Author:
Derek Hulley
  • Method Details

    • 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.
    • isTopLevelCanBeRenamed

      boolean isTopLevelCanBeRenamed(QName classQName, CopyDetails copyDetails)
      Determine if this top-level node with type or aspect can be renamed during copy.
      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 top-level node with type or aspect can be renamed during copy.
    • getAssociationCopyAction

      Determine the copy behaviour associated with a given peer association.
      Parameters:
      classQName - the name of the class that this is being invoked for
      copyDetails - the source node's copy details for quick reference
      assocCopyDetails - all other details relating to the association
      Returns:
      Returns the copy actions (source and target) to take with the given association
    • 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:
    • getCopyProperties

      Map<QName,Serializable> getCopyProperties(QName classQName, CopyDetails copyDetails, Map<QName,Serializable> 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.