2012-07-16 60 views
2

我有OnCreateNodePolicy实现,我想在绑定初始化(速度的一些最优化)中添加条件,这有可能吗? 我的意思是?让我们类似这样的定义:在Alfresco政策绑定的条件

policyComponent.bindClassBehaviour(
    QName.createQName(NamespaceService.ALFRESCO_URI, "onCreateNode"), 
    ContentModel.TYPE_CONTENT, onCreateNode); 

现在创建节点时,矿井onCreateNode()被调用。我做的第一件事是检查,如果我的父母有一些方面。是否有可能将此条件添加到绑定定义中?那么onCreateNode()只有在满足这个条件时才被调用?

+0

某些地方仍然需要做检查,不是吗? – Gagravarr 2012-07-16 13:05:50

+0

是的,它会的,但在很多情况下,检查不会达到;-) – shmoula 2012-07-16 13:12:49

回答

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)。

+0

听起来不错,我会在空闲时间尝试,我已经部署以前的版本 – shmoula 2012-07-17 10:24:03