From c634673bbf70f92a40abf29740664945981015f8 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 9 Oct 2014 11:45:27 +0200 Subject: Add abstract runActivityLogic to PredefinedStep, to insist that the subclasses implement it. --- .../instance/predefined/PredefinedStep.java | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/main/java/org/cristalise/kernel/lifecycle/instance/predefined/PredefinedStep.java b/src/main/java/org/cristalise/kernel/lifecycle/instance/predefined/PredefinedStep.java index c8a293e..6e98c60 100644 --- a/src/main/java/org/cristalise/kernel/lifecycle/instance/predefined/PredefinedStep.java +++ b/src/main/java/org/cristalise/kernel/lifecycle/instance/predefined/PredefinedStep.java @@ -24,10 +24,19 @@ import java.io.StringReader; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; +import org.cristalise.kernel.common.CannotManageException; +import org.cristalise.kernel.common.InvalidCollectionModification; +import org.cristalise.kernel.common.InvalidDataException; +import org.cristalise.kernel.common.ObjectAlreadyExistsException; +import org.cristalise.kernel.common.ObjectCannotBeUpdated; +import org.cristalise.kernel.common.ObjectNotFoundException; +import org.cristalise.kernel.common.PersistencyException; import org.cristalise.kernel.lifecycle.instance.Activity; import org.cristalise.kernel.lifecycle.instance.predefined.agent.AgentPredefinedStepContainer; import org.cristalise.kernel.lifecycle.instance.predefined.item.ItemPredefinedStepContainer; import org.cristalise.kernel.lifecycle.instance.predefined.server.ServerPredefinedStepContainer; +import org.cristalise.kernel.lookup.AgentPath; +import org.cristalise.kernel.lookup.ItemPath; import org.cristalise.kernel.persistency.outcome.Outcome; import org.cristalise.kernel.utils.Logger; import org.w3c.dom.CDATASection; @@ -127,6 +136,20 @@ public abstract class PredefinedStep extends Activity return "PredefinedStepOutcome"; // default to standard if not found - server may be a newer version } + /** + * All predefined steps must override this to implement their action + */ + @Override + protected abstract String runActivityLogic(AgentPath agent, ItemPath itemPath, + int transitionID, String requestData) throws + InvalidDataException, + InvalidCollectionModification, + ObjectAlreadyExistsException, + ObjectCannotBeUpdated, + ObjectNotFoundException, + PersistencyException, + CannotManageException; + // generic bundling of parameters static public String bundleData(String[] data) { -- cgit v1.2.3