Java 防止在Alfresco共享中添加方面

Java 防止在Alfresco共享中添加方面,java,alfresco,alfresco-share,Java,Alfresco,Alfresco Share,大多数教程都没有考虑到这一点,但我认为在很多情况下,节点不能满足自定义方面的所有要求 我发现发生这种情况的唯一方法是开发一个行为,并在beforeAddAspect中抛出一个Alfresco运行时异常 这是通过将一个before add方面分类注册为FIRST_事件来实现的 this.beforeAddAspect = new JavaBehaviour(this, BEFORE_ADD_ASPECT, NotificationFrequency.FIRST_EVENT); 然后抛出错误本身:

大多数教程都没有考虑到这一点,但我认为在很多情况下,节点不能满足自定义方面的所有要求

我发现发生这种情况的唯一方法是开发一个行为,并在beforeAddAspect中抛出一个Alfresco运行时异常

这是通过将一个before add方面分类注册为FIRST_事件来实现的

this.beforeAddAspect = new JavaBehaviour(this, BEFORE_ADD_ASPECT, NotificationFrequency.FIRST_EVENT);
然后抛出错误本身:

@Override
    public void beforeAddAspect(NodeRef nodeRef, QName aspectTypeQName) {
        if(!hasRequirements())) {
           throw AlfrescoRuntimeException.create("error.my.message", new Object[]{......});
        }

    }
我想知道我是否做得对,或者是否有任何其他解决方案涉及不抛出错误

这种错误方法还有一个缺点,错误消息无法定制,用户得到的是标准消息

基本上,如前所述,这是一个定制方面,在开发时,目前是一个标记方面。根据需要,让我提供一些关于该主题的详细信息:

该方面旨在仅应用于内容类型,并且有可能仅应用于特定的mimetype。 通过应用方面,节点上的一些操作开始了:标记、计算变量等。用户希望,如果节点有方面,就会发生其他一些事情。 一切都发生在共享UI周界中,用户以经典的方式应用方面,但在节点视图上也有一些快捷方式操作,这些操作与应用/删除方面相同。唯一的区别是,该操作向用户提供定制的反馈错误/成功。
关于错误消息,我使用的是Alfresco 4.2f

您可以从hasRequirements函数返回错误代码。根据错误代码或成功代码,您可以显示消息

您的方法是实现业务需求的最佳方法。您只能使用策略来实现它


希望这对您有所帮助:

您希望如何阻止用户添加方面。您希望通过编程或UIalfresco share或Explorer阻止它。我会以编程方式说:用户通过共享UI添加方面,那么所有的事情都是通过Java代码在后台完成的。你能给出更多的细节/例子来说明为什么你的自定义方面可能不适用于给定的节点,这个方面会/不会包含什么?它是一个标记方面吗?是否具有可选属性?强制性的?等等,以及您期望用户如何尝试通过自定义ui添加方面共享添加方面、java、共享添加属性等。