From 01200bd1cdf8b398263f45d69a62054a18f90308 Mon Sep 17 00:00:00 2001 From: Roy Wetherall Date: Tue, 10 Dec 2013 02:47:42 +0000 Subject: [PATCH] RM: Added CompositeCapability interface git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@58782 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../rm-capabilities-audit-context.xml | 4 +- .../rm-capabilities-config-context.xml | 4 +- .../rm-capabilities-context.xml | 2 +- .../capability/Capability.java | 2 +- .../capability/CapabilityService.java | 2 +- .../capability/CompositeCapability.java | 37 +++++++++++++++++++ ...va => DeclarativeCompositeCapability.java} | 25 +++++++++---- .../capability/impl/UpdateCapability.java | 4 +- .../impl/UpdatePropertiesCapability.java | 4 +- .../DeclarativeCapabilityTest.java | 4 +- 10 files changed, 68 insertions(+), 20 deletions(-) create mode 100755 rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CompositeCapability.java rename rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/{CompositeCapability.java => DeclarativeCompositeCapability.java} (83%) diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-audit-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-audit-context.xml index a579ca9961..89139b93b2 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-audit-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-audit-context.xml @@ -59,14 +59,14 @@ - + - + diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-config-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-config-context.xml index 7bd40ea259..1cf4201a4e 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-config-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-config-context.xml @@ -84,10 +84,10 @@ - + - + diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-capabilities-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-capabilities-context.xml index 349e7f3eb9..29b354716e 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-capabilities-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-capabilities-context.xml @@ -25,7 +25,7 @@ + class="org.alfresco.module.org_alfresco_module_rm.capability.declarative.DeclarativeCompositeCapability" /> diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/Capability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/Capability.java index c13301c2cf..cd755f1075 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/Capability.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/Capability.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2011 Alfresco Software Limited. + * Copyright (C) 2005-2013 Alfresco Software Limited. * * This file is part of Alfresco * diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CapabilityService.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CapabilityService.java index 75eb3cb64b..2f6f9af7bb 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CapabilityService.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CapabilityService.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2011 Alfresco Software Limited. + * Copyright (C) 2005-2013 Alfresco Software Limited. * * This file is part of Alfresco * diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CompositeCapability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CompositeCapability.java new file mode 100755 index 0000000000..569c48c12a --- /dev/null +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/CompositeCapability.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2005-2013 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ +package org.alfresco.module.org_alfresco_module_rm.capability; + +import java.util.Set; + +/** + * Composite capability Interface. + * + * @author Roy Wetherall + * @since 2.2 + */ +public interface CompositeCapability extends Capability +{ + /** + * Get set of child capabilities. + * + * @return {@link Set}<{@link Capability}> set of child capabilities. + */ + Set getCapabilities(); +} diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/CompositeCapability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/DeclarativeCompositeCapability.java similarity index 83% rename from rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/CompositeCapability.java rename to rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/DeclarativeCompositeCapability.java index eacdc6d369..081f0200fc 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/CompositeCapability.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/DeclarativeCompositeCapability.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. + * Copyright (C) 2005-2013 Alfresco Software Limited. * * This file is part of Alfresco * @@ -18,11 +18,12 @@ */ package org.alfresco.module.org_alfresco_module_rm.capability.declarative; -import java.util.List; +import java.util.Set; import net.sf.acegisecurity.vote.AccessDecisionVoter; import org.alfresco.module.org_alfresco_module_rm.capability.Capability; +import org.alfresco.module.org_alfresco_module_rm.capability.CompositeCapability; import org.alfresco.service.cmr.repository.NodeRef; /** @@ -30,19 +31,29 @@ import org.alfresco.service.cmr.repository.NodeRef; * * @author Roy Wetherall */ -public class CompositeCapability extends DeclarativeCapability +public class DeclarativeCompositeCapability extends DeclarativeCapability + implements CompositeCapability { - /** List of capabilities */ - private List capabilities; + /** set of capabilities */ + private Set capabilities; /** - * @param capabilites list of capabilities + * @param capabilites set of capabilities */ - public void setCapabilities(List capabilities) + public void setCapabilities(Set capabilities) { this.capabilities = capabilities; } + /** + * @see org.alfresco.module.org_alfresco_module_rm.capability.CompositeCapability#getCapabilities() + */ + @Override + public Set getCapabilities() + { + return this.capabilities; + } + /** * @see org.alfresco.module.org_alfresco_module_rm.capability.declarative.DeclarativeCapability#evaluateImpl(org.alfresco.service.cmr.repository.NodeRef) */ diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/UpdateCapability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/UpdateCapability.java index 37f5bd0059..35c7348be6 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/UpdateCapability.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/UpdateCapability.java @@ -21,7 +21,7 @@ package org.alfresco.module.org_alfresco_module_rm.capability.impl; import java.io.Serializable; import java.util.Map; -import org.alfresco.module.org_alfresco_module_rm.capability.declarative.CompositeCapability; +import org.alfresco.module.org_alfresco_module_rm.capability.declarative.DeclarativeCompositeCapability; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; @@ -30,7 +30,7 @@ import org.alfresco.service.namespace.QName; * * @author andyh */ -public class UpdateCapability extends CompositeCapability +public class UpdateCapability extends DeclarativeCompositeCapability { /** * diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/UpdatePropertiesCapability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/UpdatePropertiesCapability.java index d17a2171cf..c485091639 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/UpdatePropertiesCapability.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/UpdatePropertiesCapability.java @@ -21,7 +21,7 @@ package org.alfresco.module.org_alfresco_module_rm.capability.impl; import java.io.Serializable; import java.util.Map; -import org.alfresco.module.org_alfresco_module_rm.capability.declarative.CompositeCapability; +import org.alfresco.module.org_alfresco_module_rm.capability.declarative.DeclarativeCompositeCapability; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; @@ -30,7 +30,7 @@ import org.alfresco.service.namespace.QName; * * @author andyh */ -public class UpdatePropertiesCapability extends CompositeCapability +public class UpdatePropertiesCapability extends DeclarativeCompositeCapability { /** * Evaluate capability, taking into account the protected properties. diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/capabilities/DeclarativeCapabilityTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/capabilities/DeclarativeCapabilityTest.java index f30c01c21d..e9c069733a 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/capabilities/DeclarativeCapabilityTest.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/capabilities/DeclarativeCapabilityTest.java @@ -29,7 +29,7 @@ import org.alfresco.model.ContentModel; import org.alfresco.module.org_alfresco_module_rm.capability.Capability; import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel; import org.alfresco.module.org_alfresco_module_rm.capability.declarative.CapabilityCondition; -import org.alfresco.module.org_alfresco_module_rm.capability.declarative.CompositeCapability; +import org.alfresco.module.org_alfresco_module_rm.capability.declarative.DeclarativeCompositeCapability; import org.alfresco.module.org_alfresco_module_rm.capability.declarative.DeclarativeCapability; import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanComponentKind; import org.alfresco.module.org_alfresco_module_rm.role.Role; @@ -146,7 +146,7 @@ public class DeclarativeCapabilityTest extends BaseRMTestCase for (Capability capability : capabilities) { if (capability instanceof DeclarativeCapability && - capability instanceof CompositeCapability == false && + capability instanceof DeclarativeCompositeCapability == false && capability.isPrivate() == false && capability.getName().equals("MoveRecords") == false && capability.getName().equals("DeleteLinks") == false &&