Class ListValuePolicy
java.lang.Object
fr.becpg.repo.policy.AbstractBeCPGPolicy
fr.becpg.repo.dictionary.constraint.ListValuePolicy
- All Implemented Interfaces:
org.alfresco.repo.copy.CopyServicePolicies.OnCopyCompletePolicy,org.alfresco.repo.copy.CopyServicePolicies.OnCopyNodePolicy,org.alfresco.repo.node.NodeServicePolicies.OnCreateAssociationPolicy,org.alfresco.repo.node.NodeServicePolicies.OnCreateNodePolicy,org.alfresco.repo.node.NodeServicePolicies.OnDeleteAssociationPolicy,org.alfresco.repo.node.NodeServicePolicies.OnDeleteNodePolicy,org.alfresco.repo.node.NodeServicePolicies.OnUpdateNodePolicy,org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy,org.alfresco.repo.policy.AssociationPolicy,org.alfresco.repo.policy.ClassPolicy,org.alfresco.repo.policy.Policy
public class ListValuePolicy
extends AbstractBeCPGPolicy
implements org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy, org.alfresco.repo.node.NodeServicePolicies.OnDeleteNodePolicy, org.alfresco.repo.node.NodeServicePolicies.OnUpdateNodePolicy, org.alfresco.repo.node.NodeServicePolicies.OnCreateNodePolicy, org.alfresco.repo.node.NodeServicePolicies.OnDeleteAssociationPolicy, org.alfresco.repo.node.NodeServicePolicies.OnCreateAssociationPolicy
DynListPolicy class.
- Version:
- $Id: $Id
- Author:
- matthieu
-
Nested Class Summary
Nested classes/interfaces inherited from class fr.becpg.repo.policy.AbstractBeCPGPolicy
AbstractBeCPGPolicy.BeCPGPolicyTransactionListenerNested classes/interfaces inherited from interface org.alfresco.repo.policy.Policy
org.alfresco.repo.policy.Policy.Arg -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate BeCPGCacheServiceprivate static final org.apache.commons.logging.LogConstantloggerprivate static final Stringprivate org.alfresco.service.namespace.NamespaceServiceFields inherited from class fr.becpg.repo.policy.AbstractBeCPGPolicy
ASSOC_REGISTRY, KEY_PENDING_DELETE_NODES, KEY_REGISTRY, lockService, nodeService, policyBehaviourFilter, policyComponent, postTransactionListener, transactionListenerFields inherited from interface org.alfresco.repo.copy.CopyServicePolicies.OnCopyCompletePolicy
QNAMEFields inherited from interface org.alfresco.repo.copy.CopyServicePolicies.OnCopyNodePolicy
ARG_0, ARG_1, QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnCreateAssociationPolicy
QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnCreateNodePolicy
QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnDeleteAssociationPolicy
QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnDeleteNodePolicy
QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnUpdateNodePolicy
QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy
ARG_0, ARG_1, ARG_2, QNAMEFields inherited from interface org.alfresco.repo.policy.Policy
NAMESPACE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidcheckCodeIsUnique(org.alfresco.service.cmr.repository.NodeRef nodeRef, Serializable code) Forbids two values of the same list sharing a code, as the code is the key the constraint stores and only one of them could be displayed.private voidcheckValueUnchangedWithoutCode(org.alfresco.service.cmr.repository.NodeRef nodeRef, Map<org.alfresco.service.namespace.QName, Serializable> before, Map<org.alfresco.service.namespace.QName, Serializable> after) Forbids changing the default value of a list value having no code, as the value is then its key.protected booleandoBeforeCommit(String key, Set<org.alfresco.service.cmr.repository.NodeRef> pendingNodes) doBeforeCommit.voiddoInit()doInit.voidonCreateAssociation(org.alfresco.service.cmr.repository.AssociationRef nodeAssocRef) voidonCreateNode(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef) voidonDeleteAssociation(org.alfresco.service.cmr.repository.AssociationRef nodeAssocRef) voidonDeleteNode(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef, boolean isNodeArchived) voidonUpdateNode(org.alfresco.service.cmr.repository.NodeRef itemNodeRef) voidonUpdateProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef, Map<org.alfresco.service.namespace.QName, Serializable> before, Map<org.alfresco.service.namespace.QName, Serializable> after) voidsetBeCPGCacheService(BeCPGCacheService beCPGCacheService) Setter for the fieldbeCPGCacheService.voidsetNamespaceService(org.alfresco.service.namespace.NamespaceService namespaceService) Setter for the fieldnamespaceService.Methods inherited from class fr.becpg.repo.policy.AbstractBeCPGPolicy
containsNodeInQueue, containsNodeInQueue, disableOnCopyBehaviour, doAfterAssocsCommit, doAfterCommit, doBeforeAssocsCommit, generateDefaultKey, getCopyCallback, getKeyRegistry, init, isBeCPGVersion, isEntityTemplate, isNotLocked, isPendingDelete, isPropChanged, isVersionNode, isVersionStoreNode, isWorkingCopyOrVersion, onCopyComplete, queueAssoc, queueAssoc, queueNode, queueNode, setLockService, setNodeService, setPolicyBehaviourFilter, setPolicyComponent, unQueueNode, unQueueNode
-
Field Details
-
logger
private static final org.apache.commons.logging.Log loggerConstantlogger -
MESSAGE_DUPLICATE_CODE
- See Also:
-
beCPGCacheService
-
namespaceService
private org.alfresco.service.namespace.NamespaceService namespaceService
-
-
Constructor Details
-
ListValuePolicy
public ListValuePolicy()
-
-
Method Details
-
setBeCPGCacheService
Setter for the field
beCPGCacheService.- Parameters:
beCPGCacheService- aBeCPGCacheServiceobject.
-
setNamespaceService
public void setNamespaceService(org.alfresco.service.namespace.NamespaceService namespaceService) Setter for the field
namespaceService.- Parameters:
namespaceService- aNamespaceServiceobject
-
doInit
public void doInit()doInit.
- Specified by:
doInitin classAbstractBeCPGPolicy
-
onCreateNode
public void onCreateNode(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef) - Specified by:
onCreateNodein interfaceorg.alfresco.repo.node.NodeServicePolicies.OnCreateNodePolicy
-
onDeleteNode
public void onDeleteNode(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef, boolean isNodeArchived) - Specified by:
onDeleteNodein interfaceorg.alfresco.repo.node.NodeServicePolicies.OnDeleteNodePolicy
-
onUpdateNode
public void onUpdateNode(org.alfresco.service.cmr.repository.NodeRef itemNodeRef) - Specified by:
onUpdateNodein interfaceorg.alfresco.repo.node.NodeServicePolicies.OnUpdateNodePolicy
-
onCreateAssociation
public void onCreateAssociation(org.alfresco.service.cmr.repository.AssociationRef nodeAssocRef) - Specified by:
onCreateAssociationin interfaceorg.alfresco.repo.node.NodeServicePolicies.OnCreateAssociationPolicy
-
onDeleteAssociation
public void onDeleteAssociation(org.alfresco.service.cmr.repository.AssociationRef nodeAssocRef) - Specified by:
onDeleteAssociationin interfaceorg.alfresco.repo.node.NodeServicePolicies.OnDeleteAssociationPolicy
-
doBeforeCommit
protected boolean doBeforeCommit(String key, Set<org.alfresco.service.cmr.repository.NodeRef> pendingNodes) doBeforeCommit.
- Overrides:
doBeforeCommitin classAbstractBeCPGPolicy- Parameters:
key- aStringobject.pendingNodes- aSetobject.- Returns:
- a boolean.
-
onUpdateProperties
public void onUpdateProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef, Map<org.alfresco.service.namespace.QName, Serializable> before, Map<org.alfresco.service.namespace.QName, Serializable> after) - Specified by:
onUpdatePropertiesin interfaceorg.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy
-
checkValueUnchangedWithoutCode
private void checkValueUnchangedWithoutCode(org.alfresco.service.cmr.repository.NodeRef nodeRef, Map<org.alfresco.service.namespace.QName, Serializable> before, Map<org.alfresco.service.namespace.QName, Serializable> after) Forbids changing the default value of a list value having no code, as the value is then its key.- Parameters:
nodeRef- the list valuebefore- the properties before the updateafter- the properties after the update- Throws:
IllegalStateException- if the default value has changed
-
checkCodeIsUnique
private void checkCodeIsUnique(org.alfresco.service.cmr.repository.NodeRef nodeRef, Serializable code) Forbids two values of the same list sharing a code, as the code is the key the constraint stores and only one of them could be displayed. The lookup is a database query, so that it also sees the values created in the current transaction.- Parameters:
nodeRef- the list value whose code is setcode- the code of the list value- Throws:
IllegalStateException- if another value of the list already has this code
-