summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2014-02-13 10:42:48 +0100
committerAndrew Branson <andrew.branson@cern.ch>2014-02-13 10:42:48 +0100
commit3a4eb63314d77d3f54130fd448876811e7ded21e (patch)
tree46403be60defbabf8aa021aada0893195776ba64 /src/main/java/com/c2kernel
parent37c8241f7e54694b255f366c8fc8b899a08b921f (diff)
AddMemberToCollection now accepts a CastorHashMap of properties to
include in the slot. They are overwritten with the Collection properties, and also inherit the classprops from there as before. Fixes #164
Diffstat (limited to 'src/main/java/com/c2kernel')
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/predefined/AddMemberToCollection.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddMemberToCollection.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddMemberToCollection.java
index 7153c52..98ef8e3 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddMemberToCollection.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddMemberToCollection.java
@@ -21,6 +21,7 @@ import com.c2kernel.lookup.AgentPath;
import com.c2kernel.persistency.ClusterStorage;
import com.c2kernel.persistency.ClusterStorageException;
import com.c2kernel.process.Gateway;
+import com.c2kernel.utils.CastorHashMap;
import com.c2kernel.utils.Logger;
/**************************************************************************
@@ -53,6 +54,7 @@ public class AddMemberToCollection extends PredefinedStep
String collName;
int entityKey;
Dependency dep;
+ CastorHashMap props = null;
Logger.msg(1, "AddMemberToCollection::request() - Starting.");
@@ -61,6 +63,9 @@ public class AddMemberToCollection extends PredefinedStep
String[] params = getDataList(requestData);
collName = params[0];
entityKey = Integer.parseInt(params[1]);
+ if (params.length > 2)
+ props = (CastorHashMap)Gateway.getMarshaller().unmarshall(params[2]);
+
} catch (Exception e) {
throw new InvalidDataException("Invalid parameters", "");
}
@@ -80,7 +85,10 @@ public class AddMemberToCollection extends PredefinedStep
// find member and assign entity
try {
- dep.addMember(entityKey);
+ if (props == null)
+ dep.addMember(entityKey);
+ else
+ dep.addMember(entityKey, props, null);
} catch (MembershipException e) {
throw new InvalidDataException("Entity "+entityKey+" is the wrong type for this collection", "");
}