Java 露天入站规则

Java 露天入站规则,java,alfresco,Java,Alfresco,我正在将入站规则添加到alfresco中的文件夹中。如何确定它的节点是刚创建的还是从另一个文件夹中移动的?下一个代码片段可用于在创建新文件夹时添加新行为。此示例将针对存储库中创建的每个文件夹触发。你必须自己实现你要用它做的事情 public class SalesProjectFolderBehaviour implements NodeServicePolicies.OnCreateNodePolicy{ /** The policy component. */ private Policy

我正在将入站规则添加到alfresco中的文件夹中。如何确定它的节点是刚创建的还是从另一个文件夹中移动的?

下一个代码片段可用于在创建新文件夹时添加新行为。此示例将针对存储库中创建的每个文件夹触发。你必须自己实现你要用它做的事情

public class SalesProjectFolderBehaviour implements NodeServicePolicies.OnCreateNodePolicy{

/** The policy component. */
private PolicyComponent policyComponent;

/** The on create node behaviour. */
private Behaviour onCreateNodeBehaviour;

/** The service registry. */
private ServiceRegistry serviceRegistry;

/**
     * Inits the.
     */
    public void init()
    {
        LOG.error("initializing the behaviours");
        // Create behaviours
                this.onCreateNodeBehaviour = new JavaBehaviour(this, "onCreateNode",
                        NotificationFrequency.TRANSACTION_COMMIT);



                // Bind behaviours to node policies
                this.policyComponent.bindClassBehaviour(QName.createQName(
                        NamespaceService.ALFRESCO_URI, "onCreateNode"),
                        org.alfresco.model.ContentModel.TYPE_FOLDER, this.onCreateNodeBehaviour);

    }

/* (non-Javadoc)
     * @see org.alfresco.repo.node.NodeServicePolicies.OnCreateNodePolicy#onCreateNode(org.alfresco.service.cmr.repository.ChildAssociationRef)
     */
    @Override
    public void onCreateNode(ChildAssociationRef childAssocRef) {
        LOG.trace("created new folder!");

    }
}

OP正在寻找有关文件夹规则而不是行为的帮助。嗨,Jeff,行为的实现不能像文件夹规则一样吗?我知道我的答案不是入站规则,但它可以完成同样的事情。。嗨,Qkyrie,谢谢你的回答,但我不想在我的逻辑中使用策略。@Qkyrie,是的,行为类似于规则,你可以将它绑定到一个或多个策略,这样当某个节点发生某种情况时,你的逻辑就会被触发。但规则是最终用户可配置的,可以分配给各个文件夹,而行为需要开发人员编写代码,管理员部署,并且绑定到类型和方面。正如您所指出的,您建议的行为将在repo中的每个文件夹上运行,而不仅仅是最终用户关心的文件夹。解决方法:对于新节点,“cm:created”等于“cm:modified”。所以我要检查“cm:created”是否等于“cm:modified”,这是一个新节点。