org.alfresco.repo.transfer
Interface AlienProcessor

All Known Implementing Classes:
AlienProcessorImpl

public interface AlienProcessor

This class groups together the business logic for alien nodes which are transferred nodes that contain children from another repository.

Alien nodes cannot be deleted through the transfer service, instead they are "pruned"

This class owns the aspect trx:alien (TransferModel.ASPECT_ALIEN)


Method Summary
 void afterMoveAlien(org.alfresco.service.cmr.repository.ChildAssociationRef newAssocRef)
          Called when an alien node has been moved from one parent to another.
 void beforeDeleteAlien(org.alfresco.service.cmr.repository.NodeRef deletedNodeRef, org.alfresco.service.cmr.repository.ChildAssociationRef oldRef)
          Called before deleting an alien node.
 boolean isAlien(org.alfresco.service.cmr.repository.NodeRef nodeRef)
          Has the node been invaded by aliens ?
 void onCreateChild(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef, java.lang.String repositoryId, boolean isNewNode)
          Called before creating a child of a transferred node.
 void pruneNode(org.alfresco.service.cmr.repository.NodeRef parentNodeRef, java.lang.String fromRepositoryId)
          Prune the given node of aliens from the specified repositoryId.
 

Method Detail

pruneNode

void pruneNode(org.alfresco.service.cmr.repository.NodeRef parentNodeRef,
               java.lang.String fromRepositoryId)
Prune the given node of aliens from the specified repositoryId.

So any children that are only invaded by the specified repository are deleted.

Folders which are invaded by more than one repository will remain.

Parameters:
parentNodeRef - the root to prune
fromRepositoryId - the repositoryId to prune.

isAlien

boolean isAlien(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Has the node been invaded by aliens ?

Parameters:
nodeRef - the node to check
Returns:
true the node has been invaded by aliens.

onCreateChild

void onCreateChild(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef,
                   java.lang.String repositoryId,
                   boolean isNewNode)
Called before creating a child of a transferred node.

When a new node is created as a child of a Transferred or Alien node then the new node needs to be marked as an alien.

Then the tree needs to be walked upwards to mark all parent transferred nodes as alien.

Parameters:
childAssocRef - the association ref to the new node
repositoryId - - the repositoryId of the system who owns the new node.
isNewNode - - is this a new nide

afterMoveAlien

void afterMoveAlien(org.alfresco.service.cmr.repository.ChildAssociationRef newAssocRef)
Called when an alien node has been moved from one parent to another.

If the new parent is transferred or alien may make the new parent an alien.

The alien node may also stop being an alien node.


beforeDeleteAlien

void beforeDeleteAlien(org.alfresco.service.cmr.repository.NodeRef deletedNodeRef,
                       org.alfresco.service.cmr.repository.ChildAssociationRef oldRef)
Called before deleting an alien node.

The tree needs to be walked upwards to take account of the removed alien node.

Parameters:
nodeBeingDeleted - node about to be deleted
oldRef - null if the deleted node is still "in place" and readable else the old ref prior to the node being moved.


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