mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
Enhanced 'beforeCreateChildAssociaton' and 'onCreateChildAssociation' to carry an 'isNewNode' flag.
Fixed Lock and Rules to react correctly to this new information. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6003 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -231,6 +231,9 @@ public class IncompleteNodeTagger
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void onCreateNode(ChildAssociationRef childAssocRef)
|
||||
{
|
||||
NodeRef nodeRef = childAssocRef.getChildRef();
|
||||
@@ -238,6 +241,9 @@ public class IncompleteNodeTagger
|
||||
saveAssoc(nodeRef, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void onUpdateProperties(
|
||||
NodeRef nodeRef,
|
||||
Map<QName, Serializable> before,
|
||||
@@ -247,6 +253,8 @@ public class IncompleteNodeTagger
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* <p>
|
||||
* Save the node for checking of properties.
|
||||
* The {@link org.alfresco.model.ContentModel#ASPECT_INCOMPLETE incomplete} aspect is
|
||||
* not processed.
|
||||
@@ -279,20 +287,21 @@ public class IncompleteNodeTagger
|
||||
}
|
||||
|
||||
/**
|
||||
* @see AssocSourceTypeIntegrityEvent
|
||||
* @see AssocTargetTypeIntegrityEvent
|
||||
* @see AssocSourceMultiplicityIntegrityEvent
|
||||
* @see AssocTargetMultiplicityIntegrityEvent
|
||||
* @see AssocTargetRoleIntegrityEvent
|
||||
* {@inheritDoc}
|
||||
* <p>
|
||||
* This only saves the node for checking if it is <i>not</i> new. The create of the
|
||||
* node will handle it.
|
||||
*/
|
||||
public void onCreateChildAssociation(ChildAssociationRef childAssocRef)
|
||||
public void onCreateChildAssociation(ChildAssociationRef childAssocRef, boolean isNew)
|
||||
{
|
||||
saveAssoc(childAssocRef.getParentRef(), childAssocRef.getTypeQName());
|
||||
if (!isNew)
|
||||
{
|
||||
saveAssoc(childAssocRef.getParentRef(), childAssocRef.getTypeQName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see AssocSourceMultiplicityIntegrityEvent
|
||||
* @see AssocTargetMultiplicityIntegrityEvent
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void onDeleteChildAssociation(ChildAssociationRef childAssocRef)
|
||||
{
|
||||
@@ -300,10 +309,7 @@ public class IncompleteNodeTagger
|
||||
}
|
||||
|
||||
/**
|
||||
* @see AssocSourceTypeIntegrityEvent
|
||||
* @see AssocTargetTypeIntegrityEvent
|
||||
* @see AssocSourceMultiplicityIntegrityEvent
|
||||
* @see AssocTargetMultiplicityIntegrityEvent
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void onCreateAssociation(AssociationRef nodeAssocRef)
|
||||
{
|
||||
@@ -311,8 +317,7 @@ public class IncompleteNodeTagger
|
||||
}
|
||||
|
||||
/**
|
||||
* @see AssocSourceMultiplicityIntegrityEvent
|
||||
* @see AssocTargetMultiplicityIntegrityEvent
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void onDeleteAssociation(AssociationRef nodeAssocRef)
|
||||
{
|
||||
|
@@ -328,7 +328,7 @@ public class IntegrityChecker
|
||||
save(event);
|
||||
|
||||
// check that the multiplicity and other properties of the new association are allowed
|
||||
onCreateChildAssociation(childAssocRef);
|
||||
onCreateChildAssociation(childAssocRef, false);
|
||||
|
||||
// check mandatory aspects
|
||||
event = new AspectsIntegrityEvent(nodeService, dictionaryService, childRef);
|
||||
@@ -426,14 +426,21 @@ public class IntegrityChecker
|
||||
}
|
||||
|
||||
/**
|
||||
* This handles the creation of secondary child associations.
|
||||
*
|
||||
* @see AssocSourceTypeIntegrityEvent
|
||||
* @see AssocTargetTypeIntegrityEvent
|
||||
* @see AssocSourceMultiplicityIntegrityEvent
|
||||
* @see AssocTargetMultiplicityIntegrityEvent
|
||||
* @see AssocTargetRoleIntegrityEvent
|
||||
*/
|
||||
public void onCreateChildAssociation(ChildAssociationRef childAssocRef)
|
||||
public void onCreateChildAssociation(ChildAssociationRef childAssocRef, boolean isNew)
|
||||
{
|
||||
if (isNew)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
IntegrityEvent event = null;
|
||||
// check source type
|
||||
event = new AssocSourceTypeIntegrityEvent(
|
||||
|
Reference in New Issue
Block a user