From 3a4eb63314d77d3f54130fd448876811e7ded21e Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 13 Feb 2014 10:42:48 +0100 Subject: 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 --- .../lifecycle/instance/predefined/AddMemberToCollection.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/main/java/com') 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", ""); } -- cgit v1.2.3