2

OnCreateNodePolicyを実装していて、バインディングの初期化(速度の最適化)に条件を追加することを考えていますが、それは可能ですか?どういう意味ですか?これに似た定義をしましょう:

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

これで、ノードが作成されると、私のonCreateNode()が呼び出されます。私が最初にすることは、私の親が何らかの側面を持っているかどうかを確認することです。この条件をバインディング定義に追加することはできませんか?したがって、onCreateNode()は、この条件が満たされた場合にのみ呼び出されますか?

4

1 に答える 1

4

バインディング定義に条件を追加することはできませんが、あなたの場合は のOnCreateChildAssociationPolicy代わりに を使用することを検討できますOnCreateNodePolicy。利点は、カスタム アスペクトにバインドできることです。次のようになります。

policyComponent.bindAssociationBehaviour(
        NodeServicePolicies.OnCreateChildAssociationPolicy.QNAME,
        YourCustomModel.ASPECT_YOURASPECT, 
        ContentModel.ASSOC_CONTAINS, 
        new JavaBehaviour(this, "onCreateChildAssociation", NotificationFrequency.TRANSACTION_COMMIT)
);

ノードを作成するときだけでなく、ノードを新しいフォルダーに移動するときにも、子の関連付けが作成されることに注意してください。ContentModel.TYPE_CONTENTまた、Java コード内の子ノード ( ) のタイプを確認する必要があります。

于 2012-07-16T16:09:42.317 に答える