From 578f65e8ca63c50ef198099a99cb0711e4c4e7b2 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 10 Oct 2014 10:08:56 +0200 Subject: Repackage to org.cristalise. Move java version to 1.7. --- .../cristalise/dev/DevObjectOutcomeInitiator.java | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/main/java/org/cristalise/dev/DevObjectOutcomeInitiator.java (limited to 'src/main/java/org/cristalise/dev/DevObjectOutcomeInitiator.java') diff --git a/src/main/java/org/cristalise/dev/DevObjectOutcomeInitiator.java b/src/main/java/org/cristalise/dev/DevObjectOutcomeInitiator.java new file mode 100644 index 0000000..07b2b2d --- /dev/null +++ b/src/main/java/org/cristalise/dev/DevObjectOutcomeInitiator.java @@ -0,0 +1,71 @@ +package org.cristalise.dev; + +import org.cristalise.kernel.common.InvalidDataException; +import org.cristalise.kernel.entity.agent.Job; +import org.cristalise.kernel.entity.proxy.ItemProxy; +import org.cristalise.kernel.lifecycle.ActivityDef; +import org.cristalise.kernel.lifecycle.CompositeActivityDef; +import org.cristalise.kernel.lifecycle.instance.stateMachine.StateMachine; +import org.cristalise.kernel.lookup.DomainPath; +import org.cristalise.kernel.persistency.outcome.OutcomeInitiator; +import org.cristalise.kernel.persistency.outcome.Viewpoint; +import org.cristalise.kernel.process.Gateway; +import org.cristalise.kernel.utils.DescriptionObject; +import org.cristalise.kernel.utils.Logger; + + +public class DevObjectOutcomeInitiator implements OutcomeInitiator { + + public DevObjectOutcomeInitiator() { + } + + @Override + public String initOutcome(Job job) throws InvalidDataException { + String type = job.getActPropString("SchemaType"); + + // create empty object for activities and state machine + DescriptionObject emptyObj = null; + if (type.equals("CompositeActivityDef")) + emptyObj = new CompositeActivityDef(); + else if (type.equals("ElementaryActivityDef")) + emptyObj = new ActivityDef(); + else if (type.equals("StateMachine")) + emptyObj = new StateMachine(); + + if (emptyObj != null) { + try { + emptyObj.setName(job.getItemProxy().getName()); + return Gateway.getMarshaller().marshall(emptyObj); + } catch (Exception e) { + Logger.error("Error creating empty "+type); + Logger.error(e); + return null; + } + } + + // else load empty one from factory + DomainPath factoryPath; String schema; + if (type.equals("Schema")) { + factoryPath = new DomainPath("/desc/dev/SchemaFactory"); + schema = "Schema"; + } + else if (type.equals("Script")) { + factoryPath = new DomainPath("/desc/dev/ScriptFactory"); + schema = "Script"; + } + else + throw new InvalidDataException("Unknown dev object type: "+type); + ItemProxy factory; + Viewpoint newInstance; + try { + factory = Gateway.getProxyManager().getProxy(factoryPath); + newInstance = factory.getViewpoint(schema, "last"); + return newInstance.getOutcome().getData(); + } catch (Exception e) { + Logger.error(e); + throw new InvalidDataException("Error loading new "+schema); + } + + } + +} -- cgit v1.2.3