+ * If specified that the conditions should be checked then any conditions + * set on the action are evaluated. + *
+ * If the conditions fail then the action is not executed. + *
+ * If an action has no conditions then the action will always be executed. + *
+ * If the conditions are not checked then the action will always be executed. + * + * @param action the action + * @param actionedUponNodeRef the actioned upon node reference + * @param checkConditions indicates whether the conditions should be checked before + * executing the action + * @param executeAsynchronously indicates whether the action should be executed asychronously or not, this value overrides + * the value set on the action its self + */ + void executeAction(String ticket, Action action, NodeRef actionedUponNodeRef, boolean checkConditions, boolean executeAsynchronously); + + /** + * Evaluted the conditions set on an action. + *
+ * Returns true if the action has no conditions. + *
+ * If the action has more than one condition their results are combined using the 'AND' + * logical operator. + * + * @param action the action + * @param actionedUponNodeRef the actioned upon node reference + * @return true if the condition succeeds, false otherwise + */ + boolean evaluateAction(String ticket, Action action, NodeRef actionedUponNodeRef); + + /** + * Evaluate an action condition. + * + * @param condition the action condition + * @param actionedUponNodeRef the actioned upon node reference + * @return true if the condition succeeds, false otherwise + */ + boolean evaluateActionCondition(String ticket, ActionCondition condition, NodeRef actionedUponNodeRef); + + /** + * Save an action against a node reference. + *
+ * The node will be made configurable if it is not already. + *
+ * If the action already exists then its details will be updated.
+ *
+ * @param nodeRef the node reference
+ * @param action the action
+ */
+ void saveAction(String ticket, NodeRef nodeRef, Action action);
+
+ /**
+ * Gets all the actions currently saved on the given node reference.
+ *
+ * @param nodeRef the node reference
+ * @return the list of actions
+ */
+ List
+ * Returns null if the action can not be found.
+ *
+ * @param nodeRef the node reference
+ * @param actionId the action id
+ * @return the action
+ */
+ Action getAction(String ticket, NodeRef nodeRef, String actionId);
+
+ /**
+ * Removes an action associated with a node reference.
+ *
+ * @param nodeRef the node reference
+ * @param action the action
+ */
+ void removeAction(String ticket, NodeRef nodeRef, Action action);
+
+ /**
+ * Removes all actions associated with a node reference
+ *
+ * @param nodeRef the node reference
+ */
+ void removeAllActions(String ticket, NodeRef nodeRef);
+}
diff --git a/source/java/org/alfresco/service/cmr/avm/deploy/DeploymentService.java b/source/java/org/alfresco/service/cmr/avm/deploy/DeploymentService.java
index c07c3b5387..31302523a7 100644
--- a/source/java/org/alfresco/service/cmr/avm/deploy/DeploymentService.java
+++ b/source/java/org/alfresco/service/cmr/avm/deploy/DeploymentService.java
@@ -3,6 +3,7 @@
*/
package org.alfresco.service.cmr.avm.deploy;
+import org.alfresco.service.cmr.action.ActionService;
import org.alfresco.util.NameMatcher;
/**
@@ -35,6 +36,17 @@ public interface DeploymentService
boolean dontDelete,
boolean dontDo,
DeploymentCallback callback);
+
+ /**
+ * Get A reference to an ActionService instance on a remote Alfresco Server.
+ * @param hostName
+ * @param port
+ * @param userName
+ * @param password
+ * @return
+ */
+ public ActionService getRemoteActionService(String hostName, int port,
+ String userName, String password);
/**
* Deploy to a filesystem on another machine.