mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Added invokeBeforeDeleteNode calls for all nodes down a deletion stack
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16480 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -809,6 +809,7 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
|||||||
Long nodeId = nodePair.getFirst();
|
Long nodeId = nodePair.getFirst();
|
||||||
// Get the node's primary children
|
// Get the node's primary children
|
||||||
final List<Pair<Long, NodeRef>> childNodePairs = new ArrayList<Pair<Long, NodeRef>>(5);
|
final List<Pair<Long, NodeRef>> childNodePairs = new ArrayList<Pair<Long, NodeRef>>(5);
|
||||||
|
// final Map<Long, ChildAssociationRef> childAssocRefsByChildId = new HashMap<Long, ChildAssociationRef>(5);
|
||||||
NodeDaoService.ChildAssocRefQueryCallback callback = new NodeDaoService.ChildAssocRefQueryCallback()
|
NodeDaoService.ChildAssocRefQueryCallback callback = new NodeDaoService.ChildAssocRefQueryCallback()
|
||||||
{
|
{
|
||||||
public boolean handle(
|
public boolean handle(
|
||||||
@@ -819,6 +820,7 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
|||||||
{
|
{
|
||||||
// Add it
|
// Add it
|
||||||
childNodePairs.add(childNodePair);
|
childNodePairs.add(childNodePair);
|
||||||
|
// childAssocRefsByChildId.put(childNodePair.getFirst(), childAssocPair.getSecond());
|
||||||
// No recurse
|
// No recurse
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -828,18 +830,25 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
|||||||
// Each child must be deleted
|
// Each child must be deleted
|
||||||
for (Pair<Long, NodeRef> childNodePair : childNodePairs)
|
for (Pair<Long, NodeRef> childNodePair : childNodePairs)
|
||||||
{
|
{
|
||||||
// Cascade, if required
|
// Fire node policies. This ensures that each node in the hierarchy gets a notification fired.
|
||||||
|
Long childNodeId = childNodePair.getFirst();
|
||||||
|
NodeRef childNodeRef = childNodePair.getSecond();
|
||||||
|
// QName childNodeType = nodeDaoService.getNodeType(childNodeId);
|
||||||
|
// Set<QName> childNodeQNames = nodeDaoService.getNodeAspects(childNodeId);
|
||||||
|
// ChildAssociationRef childParentAssocRef = childAssocRefsByChildId.get(childNodeId);
|
||||||
|
|
||||||
|
invokeBeforeDeleteNode(childNodeRef);
|
||||||
|
|
||||||
|
// Cascade first, if required.
|
||||||
|
// This ensures that the beforeDelete policy is fired for all nodes in the hierarchy before
|
||||||
|
// the actual delete starts.
|
||||||
if (cascade)
|
if (cascade)
|
||||||
{
|
{
|
||||||
deletePrimaryChildren(childNodePair, true);
|
deletePrimaryChildren(childNodePair, true);
|
||||||
}
|
}
|
||||||
// Delete the child
|
// Delete the child
|
||||||
nodeDaoService.deleteNode(childNodePair.getFirst());
|
nodeDaoService.deleteNode(childNodeId);
|
||||||
// It would appear that policies should be fired here, but they have never been, so
|
// invokeOnDeleteNode(childParentAssocRef, childNodeType, childNodeQNames, true);
|
||||||
// in the order to maintain historical consistency we keep it the same.
|
|
||||||
// // Fire node policies. This ensures that each node in the hierarchy gets a notification fired.
|
|
||||||
// invokeOnDeleteNode(oldParentAssocPair.getSecond(), childNodeTypeQName, childNodeAspectQNames, true);
|
|
||||||
// invokeOnCreateNode(newParentAssocPair.getSecond());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user