我有OnCreateNodePolicy实现,我正在考虑在绑定初始化中添加条件(一些速度优化),是否可能? 我的意思是什么?我们的定义与此类似:
policyComponent.bindClassBehaviour(
QName.createQName(NamespaceService.ALFRESCO_URI, "onCreateNode"),
ContentModel.TYPE_CONTENT, onCreateNode);
现在,当创建节点时,将调用我的onCreateNode()。我做的第一件事是检查,如果我的父母有一些方面。是不是可以将这个条件添加到绑定定义中?所以只有在满足这个条件时才调用onCreateNode()?
答案 0 :(得分:4)
您无法为绑定定义添加条件,但在您的情况下,您可以考虑使用OnCreateChildAssociationPolicy
而不是OnCreateNodePolicy
。优点是您可以将其绑定到自定义方面。它看起来像这样:
policyComponent.bindAssociationBehaviour(
NodeServicePolicies.OnCreateChildAssociationPolicy.QNAME,
YourCustomModel.ASPECT_YOURASPECT,
ContentModel.ASSOC_CONTAINS,
new JavaBehaviour(this, "onCreateChildAssociation", NotificationFrequency.TRANSACTION_COMMIT)
);
您必须记住,虽然在将节点移动到新文件夹时也会创建子关联,而不仅仅是在创建它时。此外,您现在必须检查Java代码中的子节点类型(ContentModel.TYPE_CONTENT
)。