diff options
| author | ogattaz <olivier@gattaz.com> | 2014-06-05 16:51:07 +0200 |
|---|---|---|
| committer | ogattaz <olivier@gattaz.com> | 2014-06-05 16:51:07 +0200 |
| commit | 2fd193d7936084de91eae46e8c2763914d87ab71 (patch) | |
| tree | b136ed97e535f11d4b3433d16c26570c89430ce4 /src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java | |
| parent | 1225792532f77e6e8f4a9addfc0c0a6cf56e89b8 (diff) | |
| parent | e73468fd08cc27aa31f76a27c916e45d5987c628 (diff) | |
Merge branch 'master' of ssh://dev.cccs.uwe.ac.uk:22/var/git/cristal-kernel
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java')
| -rw-r--r-- | src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java | 38 |
1 files changed, 13 insertions, 25 deletions
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 3197ce5..e16a92c 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java @@ -12,9 +12,9 @@ package com.c2kernel.lifecycle.instance.predefined;
import java.util.ArrayList;
-import java.util.Iterator;
import com.c2kernel.collection.Collection;
+import com.c2kernel.collection.CollectionArrayList;
import com.c2kernel.collection.CollectionDescription;
import com.c2kernel.collection.CollectionMember;
import com.c2kernel.common.AccessRightsException;
@@ -26,8 +26,7 @@ import com.c2kernel.entity.TraceableEntity; import com.c2kernel.lifecycle.CompositeActivityDef;
import com.c2kernel.lookup.AgentPath;
import com.c2kernel.lookup.DomainPath;
-import com.c2kernel.lookup.EntityPath;
-import com.c2kernel.lookup.LDAPLookup;
+import com.c2kernel.lookup.ItemPath;
import com.c2kernel.persistency.ClusterStorage;
import com.c2kernel.persistency.TransactionManager;
import com.c2kernel.process.Gateway;
@@ -67,7 +66,6 @@ public class CreateItemFromDescription extends PredefinedStep PropertyArrayList props = new PropertyArrayList();
Logger.msg(1, "AddNewItem::request() - Starting.");
TransactionManager storage = Gateway.getStorage();
- LDAPLookup lookup = Gateway.getLDAPLookup();
try {
// check if the path is already taken
@@ -77,22 +75,21 @@ public class CreateItemFromDescription extends PredefinedStep throw new ObjectAlreadyExistsException("The item name " +newName+ " exists already.", "");
// get init objects
- String[] collNames = storage.getClusterContents(itemSysKey, ClusterStorage.COLLECTION);
- ArrayList<String> collections = new ArrayList<String>();
-
- // loop through collections to instantiate
+ // loop through collections, collecting instantiated descriptions and finding the default workflow def
+ CollectionArrayList colls = new CollectionArrayList();
+ String[] collNames = storage.getClusterContents(itemSysKey, ClusterStorage.COLLECTION);
for (String collName : collNames) {
Collection<? extends CollectionMember> thisCol = (Collection<? extends CollectionMember>)storage.get(itemSysKey, ClusterStorage.COLLECTION+"/"+collName, null);
if (thisCol instanceof CollectionDescription) {
CollectionDescription<? extends CollectionMember> thisDesc = (CollectionDescription<? extends CollectionMember>)thisCol;
- collections.add(Gateway.getMarshaller().marshall(thisDesc.newInstance()));
+ colls.put(thisDesc.newInstance());
}
else if (thisCol.getName().equalsIgnoreCase("workflow") && wfDefName == null) {
ArrayList<? extends CollectionMember> members = thisCol.getMembers().list;
// get the first member from the wf collection
CollectionMember wfMember = members.get(0);
- wfDefName = wfMember.resolveEntity().getName();
+ wfDefName = wfMember.resolveItem().getName();
Object wfVerObj = wfMember.getProperties().get("Version");
try {
wfDefVer = Integer.parseInt(wfVerObj.toString());
@@ -135,7 +132,7 @@ public class CreateItemFromDescription extends PredefinedStep // generate new entity key
Logger.msg(6, "CreateItemFromDescription - Requesting new sysKey");
- EntityPath entityPath = lookup.getNextKeyManager().generateNextEntityKey();
+ ItemPath entityPath = Gateway.getNextKeyManager().generateNextEntityKey();
// resolve the item factory
Logger.msg(6, "CreateItemFromDescription - Resolving item factory");
@@ -145,7 +142,7 @@ public class CreateItemFromDescription extends PredefinedStep CorbaServer factory = Gateway.getCorbaServer();
if (factory == null) throw new AccessRightsException("This process cannot create new Items", "");
TraceableEntity newItem = (TraceableEntity)factory.createEntity(entityPath);
- Gateway.getLDAPLookup().add(entityPath);
+ Gateway.getLookup().add(entityPath);
// initialise it with its properties and workflow
@@ -155,23 +152,14 @@ public class CreateItemFromDescription extends PredefinedStep newItem.initialise(
agent.getSysKey(),
Gateway.getMarshaller().marshall(props),
- Gateway.getMarshaller().marshall(wfDef.instantiate()));
-
- // add collections
- if (collections.size() > 0) {
- Logger.msg(6, "CreateItemFromDescription - Adding Collections");
- String[] colls = new String[1];
- for (Iterator<String> iter = collections.iterator(); iter.hasNext();) {
- colls[0] = iter.next();
- // TODO: initialize
- newItem.requestAction(agent.getSysKey(), "workflow/predefined/AddC2KObject", PredefinedStep.DONE, PredefinedStep.bundleData(colls));
- }
- }
+ Gateway.getMarshaller().marshall(wfDef.instantiate()),
+ Gateway.getMarshaller().marshall(colls)
+ );
// add its domain path
Logger.msg(3, "CreateItemFromDescription - Creating "+context);
context.setEntity(entityPath);
- Gateway.getLDAPLookup().add(context);
+ Gateway.getLookup().add(context);
return requestData;
} catch (Exception e) {
Logger.error(e);
|
