summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/lifecycle/instance/predefined
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle/instance/predefined')
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java7
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/predefined/item/CreateItemFromDescription.java22
2 files changed, 24 insertions, 5 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java
index 088bee1..780c82e 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java
@@ -22,6 +22,7 @@ import com.c2kernel.lookup.AgentPath;
import com.c2kernel.lookup.ItemPath;
import com.c2kernel.lookup.RolePath;
import com.c2kernel.process.Gateway;
+import com.c2kernel.property.PropertyArrayList;
import com.c2kernel.utils.Logger;
/**************************************************************************
@@ -48,7 +49,9 @@ public class CreateAgentFromDescription extends CreateItemFromDescription
String[] input = getDataList(requestData);
String newName = input[0];
-
+ PropertyArrayList initProps =
+ input.length > 1?getInitProperties(input[1]):new PropertyArrayList();
+
Logger.msg(1, "CreateAgentFromDescription::request() - Starting.");
try {
@@ -87,7 +90,7 @@ public class CreateAgentFromDescription extends CreateItemFromDescription
newAgent.initialise(
agent.getSystemKey(),
- Gateway.getMarshaller().marshall(getNewProperties(itemPath, newName, agent)),
+ Gateway.getMarshaller().marshall(getNewProperties(itemPath, initProps, newName, agent)),
Gateway.getMarshaller().marshall(getNewWorkflow(itemPath)),
Gateway.getMarshaller().marshall(getNewCollections(itemPath))
);
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/item/CreateItemFromDescription.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/item/CreateItemFromDescription.java
index eea3976..d9c65d5 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/item/CreateItemFromDescription.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/item/CreateItemFromDescription.java
@@ -11,8 +11,13 @@
package com.c2kernel.lifecycle.instance.predefined.item;
+import java.io.IOException;
import java.util.ArrayList;
+import org.exolab.castor.mapping.MappingException;
+import org.exolab.castor.xml.MarshalException;
+import org.exolab.castor.xml.ValidationException;
+
import com.c2kernel.collection.Collection;
import com.c2kernel.collection.CollectionArrayList;
import com.c2kernel.collection.CollectionDescription;
@@ -59,6 +64,8 @@ public class CreateItemFromDescription extends PredefinedStep
String[] input = getDataList(requestData);
String newName = input[0];
String domPath = input[1];
+ PropertyArrayList initProps =
+ input.length > 2?getInitProperties(input[2]):new PropertyArrayList();
Logger.msg(1, "CreateItemFromDescription - Starting.");
@@ -94,7 +101,7 @@ public class CreateItemFromDescription extends PredefinedStep
newItem.initialise(
agent.getSystemKey(),
- Gateway.getMarshaller().marshall(getNewProperties(itemPath, newName, agent)),
+ Gateway.getMarshaller().marshall(getNewProperties(itemPath, initProps, newName, agent)),
Gateway.getMarshaller().marshall(getNewWorkflow(itemPath)),
Gateway.getMarshaller().marshall(getNewCollections(itemPath))
);
@@ -111,10 +118,19 @@ public class CreateItemFromDescription extends PredefinedStep
}
- protected PropertyArrayList getNewProperties(ItemPath itemPath, String newName, AgentPath agent) throws ObjectNotFoundException {
+ protected PropertyArrayList getInitProperties(String input) throws InvalidDataException {
+ try {
+ return (PropertyArrayList)Gateway.getMarshaller().unmarshall(input);
+ } catch (Exception e) {
+ Logger.error(e);
+ throw new InvalidDataException("Initial property parameter was not a marshalled PropertyArrayList: "+input, "");
+ }
+ }
+
+ protected PropertyArrayList getNewProperties(ItemPath itemPath, PropertyArrayList initProps, String newName, AgentPath agent) throws ObjectNotFoundException, InvalidDataException {
// copy properties -- intend to create from propdesc
PropertyDescriptionList pdList = PropertyUtility.getPropertyDescriptionOutcome(itemPath);
- PropertyArrayList props = pdList.instanciate();
+ PropertyArrayList props = pdList.instantiate(initProps);
// set Name prop or create if not present
boolean foundName = false;
for (Property prop : props.list) {