2012-07-16 61 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