From 3c03e9fd00619e44dff85f9e523663b7323f3746 Mon Sep 17 00:00:00 2001 From: abranson Date: Fri, 16 Mar 2012 16:56:45 +0100 Subject: Comments and changelog --- .gitignore | 1 + changelog | 8 ++++ resources/boot/EA/AssignNewVersionFromLast.xml | 2 +- resources/boot/EA/CreateItem.xml | 21 ++++++++++- resources/boot/EA/CreateNewLocalObjectDef.xml | 2 +- resources/boot/EA/EditPropertyDescription.xml | 21 ++++++++++- resources/boot/EA/SetInstanceWorkflow.xml | 21 ++++++++++- resources/boot/SC/InstantiateItem.xml | 23 +++++++----- resources/boot/SC/LocalObjectDefCreator.xml | 19 ++++++---- resources/boot/SC/SetWorkflow.xml | 52 ++++++++++++++------------ src/module.xml | 2 +- 11 files changed, 127 insertions(+), 45 deletions(-) create mode 100644 .gitignore create mode 100644 changelog diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5e56e04 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/changelog b/changelog new file mode 100644 index 0000000..46017e0 --- /dev/null +++ b/changelog @@ -0,0 +1,8 @@ +0.2 - Description Factory +------------------------- + - DescriptionFactory + +0.1 - Initial release +--------------------- + - Extracted dev stuff from kernel 2.3 + - Activity, Schema, Script Factories \ No newline at end of file diff --git a/resources/boot/EA/AssignNewVersionFromLast.xml b/resources/boot/EA/AssignNewVersionFromLast.xml index 1ef30b5..248dfee 100644 --- a/resources/boot/EA/AssignNewVersionFromLast.xml +++ b/resources/boot/EA/AssignNewVersionFromLast.xml @@ -5,7 +5,7 @@ - + diff --git a/resources/boot/EA/CreateItem.xml b/resources/boot/EA/CreateItem.xml index 6facb82..d54cd4d 100644 --- a/resources/boot/EA/CreateItem.xml +++ b/resources/boot/EA/CreateItem.xml @@ -1 +1,20 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/resources/boot/EA/CreateNewLocalObjectDef.xml b/resources/boot/EA/CreateNewLocalObjectDef.xml index 8c8c9c1..840c32d 100644 --- a/resources/boot/EA/CreateNewLocalObjectDef.xml +++ b/resources/boot/EA/CreateNewLocalObjectDef.xml @@ -5,7 +5,7 @@ - + diff --git a/resources/boot/EA/EditPropertyDescription.xml b/resources/boot/EA/EditPropertyDescription.xml index f560988..2cbf763 100644 --- a/resources/boot/EA/EditPropertyDescription.xml +++ b/resources/boot/EA/EditPropertyDescription.xml @@ -1 +1,20 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/resources/boot/EA/SetInstanceWorkflow.xml b/resources/boot/EA/SetInstanceWorkflow.xml index 63f07ea..a9e7d7b 100644 --- a/resources/boot/EA/SetInstanceWorkflow.xml +++ b/resources/boot/EA/SetInstanceWorkflow.xml @@ -1 +1,20 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/resources/boot/SC/InstantiateItem.xml b/resources/boot/SC/InstantiateItem.xml index 4cd84b5..0f16a65 100644 --- a/resources/boot/SC/InstantiateItem.xml +++ b/resources/boot/SC/InstantiateItem.xml @@ -2,19 +2,20 @@ diff --git a/resources/boot/SC/LocalObjectDefCreator.xml b/resources/boot/SC/LocalObjectDefCreator.xml index cce559e..445a517 100644 --- a/resources/boot/SC/LocalObjectDefCreator.xml +++ b/resources/boot/SC/LocalObjectDefCreator.xml @@ -13,18 +13,17 @@ var agent = bsf.lookupBean("agent"); var errorBuffer = bsf.lookupBean("errors"); var type = job.getActPropString("NewType"); - var name = job.getOutcome().getDOM().getDocumentElement(). - getElementsByTagName("ObjectName").item(0).getFirstChild().getData(); - var folder = job.getOutcome().getDOM().getDocumentElement(). - getElementsByTagName("SubFolder").item(0).getFirstChild(); + var name = job.getOutcome().getField("ObjectName"); + var folder = job.getOutcome().getField("SubFolder"); + // Find the root of that object type var domPath = Bootstrap.getTypeRoot(type).toString(); if (folder != null) domPath = domPath + "/" + folder.getData(); var params = new Array(2); params[0] = name; - params[1] = domPath; + // Create the new item if (!(errorBuffer.getFatal())) { try { agent.execute(item, "CreateItemFromDescription", params); @@ -34,20 +33,26 @@ } } - if (!(errorBuffer.getFatal())) { // store an outcome in the new desc + // Store a fresh one in the new item + if (!(errorBuffer.getFatal())) { var newObj; + // Activities are serialized new instances if (type.equals("EA") || type.equals("CA")) { var newAct = type.equals("CA")?new CompositeActivityDef(): new ActivityDef(); newAct.setName(name); newObj = CastorXMLUtility.marshall(newAct); } - else { + else { + // Empty schemas and scripts are stored as outcomes of the factory. var fileType = type.equals("OD")?"Schema":"Script"; newObj = item.getObject("/ViewPoint/"+fileType+"/last").getOutcome().getData(); } + // Store the new object with the 'EditDefinition' activity var newPath = new Packages.com.c2kernel.lookup.DomainPath(domPath+"/"+name); var newItem = agent.getItem(newPath); newItem.requestAction(agent.getSystemKey(), "workflow/domain/EditDefinition", 4, newObj); + + // If this script is running in the Cristal GUI, open the new item. var tree = Packages.com.c2kernel.gui.MainFrame.treeBrowser; if (tree != null) // open new item in the gui tree.push(newPath); diff --git a/resources/boot/SC/SetWorkflow.xml b/resources/boot/SC/SetWorkflow.xml index 0fb2a30..5dbfa6d 100644 --- a/resources/boot/SC/SetWorkflow.xml +++ b/resources/boot/SC/SetWorkflow.xml @@ -9,37 +9,43 @@ var agent = bsf.lookupBean("agent"); var errorBuffer = bsf.lookupBean("errors"); + // Fetch the requested name from the outcome field var wfDefName = job.getOutcome().getField("WorkflowDefinitionName"); + // Look up the description var root = new DomainPath("/desc/ActivityDesc"); var wfItem; try { - var wfPath = root.find(wfDefName); - wfItem = agent.getItem(wfPath); + var wfPath = root.find(wfDefName); + wfItem = agent.getItem(wfPath); } catch (e) { errorBuffer.addError(wfDefName+" is not a valid item"); errorBuffer.setFatal(); } - + + // Make sure it has the right properties to be a composite activity desc if (!errorBuffer.getFatal()) { - var itemType = wfItem.getProperty("Type"); - var complex = wfItem.getProperty("Complexity"); - if (!itemType.equals("ActivityDesc")) { - errorBuffer.addError(wfDefName+" is not an activity description"); - errorBuffer.setFatal(); - } - if (!complex.equals("Composite")) { - errorBuffer.addError(wfDefName+" is not a composite activity description"); - errorBuffer.setFatal(); - } + var itemType = wfItem.getProperty("Type"); + var complex = wfItem.getProperty("Complexity"); + if (!itemType.equals("ActivityDesc")) { + errorBuffer.addError(wfDefName+" is not an activity description"); + errorBuffer.setFatal(); + } + if (!complex.equals("Composite")) { + errorBuffer.addError(wfDefName+" is not a composite activity description"); + errorBuffer.setFatal(); + } } - + if (!errorBuffer.getFatal()) { - var coll = item.getObject("/Collection/Workflow"); - if (coll.size() > 0) { - var member = coll.getMembers().list.get(0); - coll.removeMember(member.getID()); - } - coll.addMember(wfItem.getSystemKey()); - var params = new Array(1); - params[0] = agent.marshall(coll); - agent.execute(item, "AddC2KObject", params); + // Fetch the 'Workflow' collection + var coll = item.getObject("/Collection/Workflow"); + if (coll.size() > 0) { // if there's already a member, remove it + var member = coll.getMembers().list.get(0); + coll.removeMember(member.getID()); + } + // add the new member + coll.addMember(wfItem.getSystemKey()); + // save it back to the item + var params = new Array(1); + params[0] = agent.marshall(coll); + agent.execute(item, "AddC2KObject", params); } errorBuffer; diff --git a/src/module.xml b/src/module.xml index bbf7109..83bc461 100644 --- a/src/module.xml +++ b/src/module.xml @@ -2,7 +2,7 @@ CRISTAL Development Items, such as resource factories and workflows. Also includes a demonstrative description factory - 0.1 + 0.2 ch/cern/cristaldev/resources/ -- cgit v1.2.3