From f7df981d031e360b379b86d9aefdde15b918b21f Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Mon, 25 Aug 2014 13:53:33 +0200 Subject: Require integers for all resource versions --- src/main/java/com/c2kernel/lifecycle/ActivityDef.java | 6 +++--- src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java | 8 +++++++- .../lifecycle/instance/predefined/CreateItemFromDescription.java | 7 +++++-- .../lifecycle/instance/predefined/entitycreation/NewItem.java | 2 +- 4 files changed, 16 insertions(+), 7 deletions(-) (limited to 'src/main/java/com/c2kernel/lifecycle') diff --git a/src/main/java/com/c2kernel/lifecycle/ActivityDef.java b/src/main/java/com/c2kernel/lifecycle/ActivityDef.java index 40d1f8a..efe532d 100644 --- a/src/main/java/com/c2kernel/lifecycle/ActivityDef.java +++ b/src/main/java/com/c2kernel/lifecycle/ActivityDef.java @@ -15,7 +15,7 @@ public class ActivityDef extends WfVertexDef implements C2KLocalObject { private int mId = -1; private String mName = ""; - private String mVersion = ""; + private Integer mVersion = null; public boolean changed = false; /** * @see java.lang.Object#Object() @@ -61,14 +61,14 @@ public class ActivityDef extends WfVertexDef implements C2KLocalObject return mName; } - public void setVersion(String v) + public void setVersion(Integer v) { mVersion = v; } /** * @see com.c2kernel.graph.model.Vertex#getName() */ - public String getVersion() + public Integer getVersion() { return mVersion; } diff --git a/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java b/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java index 74d8305..885f613 100644 --- a/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java +++ b/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java @@ -44,7 +44,13 @@ public class ActivitySlotDef extends WfVertexDef public ActivityDef getTheActivityDef() throws ObjectNotFoundException, InvalidDataException { - ActivityDef actDef = LocalObjectLoader.getActDef(getActivityDef(), getActVersion()); + int actVersion; + try { + actVersion = Integer.parseInt(getActVersion()); + } catch (NumberFormatException ex) { + throw new InvalidDataException("Non-integer activitiy version set for slot "+getActName(), ""); + } + ActivityDef actDef = LocalObjectLoader.getActDef(getActivityDef(), actVersion); if (actDef instanceof CompositeActivityDef) mIsComposite = true; return actDef; diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java index 77a3aa5..b80b3cd 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java @@ -63,6 +63,7 @@ public class CreateItemFromDescription extends PredefinedStep CompositeActivityDef wfDef; String wfDefName = null; String wfDefVer = null; + if (input.length > 2) // override wf wfDefName = input[2]; @@ -108,11 +109,13 @@ public class CreateItemFromDescription extends PredefinedStep throw new InvalidDataException("No workflow def version given",""); try { - wfDef = (CompositeActivityDef)LocalObjectLoader.getActDef(wfDefName, wfDefVer); + wfDef = (CompositeActivityDef)LocalObjectLoader.getActDef(wfDefName, Integer.valueOf(wfDefVer)); } catch (ObjectNotFoundException ex) { - throw new InvalidDataException("Workflow def '"+wfDefName+"' v"+wfDefVer+" item not found", ""); + throw new InvalidDataException("Workflow def '"+wfDefName+"' v"+wfDefVer+" not found", ""); } catch (ClassCastException ex) { throw new InvalidDataException("Activity def '"+wfDefName+"' v"+wfDefVer+" was not Composite", ""); + } catch (NumberFormatException ex) { + throw new InvalidDataException("Workflow def version '"+wfDefVer+"' given for def '"+wfDefName+"' was not an integer", ""); } diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java index 0856580..6c3abf1 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java @@ -87,7 +87,7 @@ public class NewItem extends ModuleImport { try { // find workflow def - CompositeActivityDef compact = (CompositeActivityDef)LocalObjectLoader.getActDef(workflow, "0"); + CompositeActivityDef compact = (CompositeActivityDef)LocalObjectLoader.getActDef(workflow, 0); newItem.initialise( agentId, Gateway.getMarshaller().marshall(new PropertyArrayList(properties)), -- cgit v1.2.3