summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/collection
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2014-09-09 12:13:21 +0200
committerAndrew Branson <andrew.branson@cern.ch>2014-09-09 12:13:21 +0200
commitda731d2bb81666b9c697d9099da632e7dfcdc0f7 (patch)
tree567693c3c48f3d15ecbb2dac4f9db03bb6e58c72 /src/main/java/com/c2kernel/collection
parentae1e79e33fd30e3d8bcedbef8891a14a048276d7 (diff)
Replaced int sysKey Item identifier with UUID, which is now portable.
ItemPath objects are now used to identify Items throughout the kernel, replacing ints and Integers.
Diffstat (limited to 'src/main/java/com/c2kernel/collection')
-rw-r--r--src/main/java/com/c2kernel/collection/Aggregation.java76
-rw-r--r--src/main/java/com/c2kernel/collection/AggregationDescription.java6
-rw-r--r--src/main/java/com/c2kernel/collection/AggregationInstance.java17
-rw-r--r--src/main/java/com/c2kernel/collection/AggregationMember.java70
-rw-r--r--src/main/java/com/c2kernel/collection/Collection.java5
-rw-r--r--src/main/java/com/c2kernel/collection/CollectionMember.java10
-rw-r--r--src/main/java/com/c2kernel/collection/Dependency.java13
-rw-r--r--src/main/java/com/c2kernel/collection/DependencyDescription.java11
-rw-r--r--src/main/java/com/c2kernel/collection/DependencyMember.java52
-rw-r--r--src/main/java/com/c2kernel/collection/Parent2ChildCollection.java9
-rw-r--r--src/main/java/com/c2kernel/collection/gui/model/AggregationVertexFactory.java2
11 files changed, 144 insertions, 127 deletions
diff --git a/src/main/java/com/c2kernel/collection/Aggregation.java b/src/main/java/com/c2kernel/collection/Aggregation.java
index f2ef710..2f01936 100644
--- a/src/main/java/com/c2kernel/collection/Aggregation.java
+++ b/src/main/java/com/c2kernel/collection/Aggregation.java
@@ -7,7 +7,6 @@ import com.c2kernel.graph.model.GraphModel;
import com.c2kernel.graph.model.GraphPoint;
import com.c2kernel.graph.model.TypeNameAndConstructionInfo;
import com.c2kernel.lookup.ItemPath;
-import com.c2kernel.lookup.InvalidItemPathException;
import com.c2kernel.persistency.ClusterStorage;
import com.c2kernel.process.Gateway;
import com.c2kernel.utils.CastorHashMap;
@@ -50,12 +49,12 @@ abstract public class Aggregation extends Parent2ChildCollection<AggregationMemb
return mVertexTypeNameAndConstructionInfo;
}
- public boolean exists(int sysKey)
+ public boolean exists(ItemPath itemPath)
{
for (int i=0; i<size(); i++)
{
AggregationMember element = mMembers.list.get(i);
- if (element.getSystemKey() == sysKey)
+ if (element.getItemPath().equals(itemPath))
return true;
}
return false;
@@ -73,46 +72,47 @@ abstract public class Aggregation extends Parent2ChildCollection<AggregationMemb
}
public AggregationMember addSlot(CastorHashMap props, String classProps, GraphPoint location, int w, int h)
- {
-
- // Default geometry if not present
- if (location == null) location = new GraphPoint(100,100*getCounter());
- if (w<0) w = 20;
- if (h<0) h = 20;
-
- // Create new member object
- AggregationMember aggMem = new AggregationMember();
- aggMem.setProperties(props);
- aggMem.setClassProps(classProps);
- // create vertex
- com.c2kernel.graph.model.Vertex vertex = new com.c2kernel.graph.model.Vertex();
- vertex.setHeight(h); vertex.setWidth(w);
- mLayout.addVertexAndCreateId(vertex,location);
- aggMem.setCollection(this);
- aggMem.setID(vertex.getID());
- aggMem.setIsLayoutable(true);
-
- mMembers.list.add(aggMem);
- Logger.msg(8, "AggregationDescription::addSlot new slot linked to vertexid " + vertex.getID());
- return aggMem;
- }
- public AggregationMember addMember(int sysKey, CastorHashMap props, String classProps, GraphPoint location, int w, int h)
+ {
+
+ // Default geometry if not present
+ if (location == null) location = new GraphPoint(100,100*getCounter());
+ if (w<0) w = 20;
+ if (h<0) h = 20;
+
+ // Create new member object
+ AggregationMember aggMem = new AggregationMember();
+ aggMem.setProperties(props);
+ aggMem.setClassProps(classProps);
+ // create vertex
+ com.c2kernel.graph.model.Vertex vertex = new com.c2kernel.graph.model.Vertex();
+ vertex.setHeight(h); vertex.setWidth(w);
+ mLayout.addVertexAndCreateId(vertex,location);
+ aggMem.setCollection(this);
+ aggMem.setID(vertex.getID());
+ aggMem.setIsLayoutable(true);
+
+ mMembers.list.add(aggMem);
+ Logger.msg(8, "AggregationDescription::addSlot new slot linked to vertexid " + vertex.getID());
+ return aggMem;
+ }
+
+ public AggregationMember addMember(ItemPath itemPath, CastorHashMap props, String classProps, GraphPoint location, int w, int h)
throws MembershipException
{
AggregationMember aggMem = addSlot(props, classProps, location, w, h);
- if (sysKey > -1) { // some clients use this method when not setting a member
- aggMem.assignItem(sysKey);
- aggMem.setIsComposite( getIsComposite(sysKey, getName()) );
+ if (itemPath != null) { // some clients use this method when not setting a member
+ aggMem.assignItem(itemPath);
+ aggMem.setIsComposite( getIsComposite(itemPath, getName()) );
}
- Logger.msg(8, "AggregationDescription::addMember(" + sysKey + ") assigned to new slot " + aggMem.getID());
+ Logger.msg(8, "AggregationDescription::addMember(" + itemPath + ") assigned to new slot " + aggMem.getID());
return aggMem;
}
@Override
- public AggregationMember addMember(int entityKey, CastorHashMap props, String classProps) throws MembershipException
+ public AggregationMember addMember(ItemPath itemPath, CastorHashMap props, String classProps) throws MembershipException
{
- return addMember(entityKey, props, classProps, null, -1, -1);
+ return addMember(itemPath, props, classProps, null, -1, -1);
}
public AggregationMember addSlot(CastorHashMap props, String classProps)
@@ -121,7 +121,7 @@ abstract public class Aggregation extends Parent2ChildCollection<AggregationMemb
}
@Override
- public AggregationMember addMember(int entityKey) throws MembershipException {
+ public AggregationMember addMember(ItemPath itemPath) throws MembershipException {
throw new MembershipException("Aggregations cannot accept arbitrary members without type info");
}
@@ -138,16 +138,14 @@ abstract public class Aggregation extends Parent2ChildCollection<AggregationMemb
throw new MembershipException("Member "+memberId+" not found");
}
- static public boolean getIsComposite(int entityKey, String name)
+ static public boolean getIsComposite(ItemPath itemPath, String name)
{
- if (entityKey == -1) return false;
+ if (itemPath == null) return false;
try {
- for(String collName: Gateway.getProxyManager().getProxy(new ItemPath(entityKey)).getContents(ClusterStorage.COLLECTION) )
+ for(String collName: Gateway.getProxyManager().getProxy(itemPath).getContents(ClusterStorage.COLLECTION) )
if (name == null || name.equals(collName)) return true;
} catch (ObjectNotFoundException e) {
return false;
- } catch (InvalidItemPathException e) {
- return false;
}
return false;
}
diff --git a/src/main/java/com/c2kernel/collection/AggregationDescription.java b/src/main/java/com/c2kernel/collection/AggregationDescription.java
index 0587491..475ef53 100644
--- a/src/main/java/com/c2kernel/collection/AggregationDescription.java
+++ b/src/main/java/com/c2kernel/collection/AggregationDescription.java
@@ -35,20 +35,20 @@ public class AggregationDescription extends Aggregation implements CollectionDes
{
AggregationMember mem = mMembers.list.get(i);
//get the propdesc of the member item
- PropertyDescriptionList pdList = PropertyUtility.getPropertyDescriptionOutcome(mem.getSystemKey());
+ PropertyDescriptionList pdList = PropertyUtility.getPropertyDescriptionOutcome(mem.getItemPath());
if (pdList!=null)
{
//create the new props of the member object
try {
Vertex v = getLayout().getVertexById(mem.getID());
- newInstance.addMember(-1, PropertyUtility.createProperty(pdList), pdList.getClassProps(),v.getCentrePoint(),v.getWidth(),v.getHeight());
+ newInstance.addMember(null, PropertyUtility.createProperty(pdList), pdList.getClassProps(),v.getCentrePoint(),v.getWidth(),v.getHeight());
} catch (MembershipException e) {
// won't happen as we're not assigning an entity
}
}
else
{
- Logger.error("AggregationDescription::newInstance() There is no PropertyDescription. Cannot instantiate. " + mem.getSystemKey());
+ Logger.error("AggregationDescription::newInstance() There is no PropertyDescription. Cannot instantiate. " + mem.getItemPath());
return null;
}
diff --git a/src/main/java/com/c2kernel/collection/AggregationInstance.java b/src/main/java/com/c2kernel/collection/AggregationInstance.java
index 47e7c41..f46b691 100644
--- a/src/main/java/com/c2kernel/collection/AggregationInstance.java
+++ b/src/main/java/com/c2kernel/collection/AggregationInstance.java
@@ -6,6 +6,7 @@ package com.c2kernel.collection;
*/
import com.c2kernel.graph.model.GraphPoint;
+import com.c2kernel.lookup.ItemPath;
import com.c2kernel.utils.CastorHashMap;
public class AggregationInstance extends Aggregation
@@ -23,23 +24,23 @@ public class AggregationInstance extends Aggregation
@Override
- public AggregationMember addMember(int entityKey, CastorHashMap props, String classProps)
+ public AggregationMember addMember(ItemPath itemPath, CastorHashMap props, String classProps)
throws MembershipException
{
- if( entityKey!=-1 && exists(entityKey))
- throw new MembershipException(entityKey+" already exists in this collection.");
+ if( itemPath != null && exists(itemPath))
+ throw new MembershipException(itemPath+" already exists in this collection.");
else
- return super.addMember(entityKey, props, classProps);
+ return super.addMember(itemPath, props, classProps);
}
@Override
- public AggregationMember addMember(int entityKey, CastorHashMap props, String classProps, GraphPoint location, int w, int h)
+ public AggregationMember addMember(ItemPath itemPath, CastorHashMap props, String classProps, GraphPoint location, int w, int h)
throws MembershipException
{
- if( entityKey!=-1 && exists(entityKey))
- throw new MembershipException(entityKey+" already exists in this collection.");
+ if( itemPath != null && exists(itemPath))
+ throw new MembershipException(itemPath+" already exists in this collection.");
else
- return super.addMember(entityKey, props, classProps, location, w, h);
+ return super.addMember(itemPath, props, classProps, location, w, h);
}
}
diff --git a/src/main/java/com/c2kernel/collection/AggregationMember.java b/src/main/java/com/c2kernel/collection/AggregationMember.java
index 67e92ad..cb8c355 100644
--- a/src/main/java/com/c2kernel/collection/AggregationMember.java
+++ b/src/main/java/com/c2kernel/collection/AggregationMember.java
@@ -1,12 +1,12 @@
package com.c2kernel.collection;
import java.util.StringTokenizer;
+import java.util.UUID;
import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.entity.proxy.ItemProxy;
import com.c2kernel.graph.model.GraphableVertex;
import com.c2kernel.lookup.ItemPath;
-import com.c2kernel.lookup.InvalidItemPathException;
import com.c2kernel.persistency.ClusterStorage;
import com.c2kernel.process.Gateway;
import com.c2kernel.property.Property;
@@ -24,11 +24,11 @@ import com.c2kernel.utils.Logger;
public class AggregationMember extends GraphableVertex implements CollectionMember
{
- private int mSystemKey = -1;
- private ItemProxy mItem = null;
- private Aggregation mCollection = null;
+ private ItemPath mItemPath = null;
+ private ItemProxy mItem = null;
+ private Aggregation mCollection = null;
private String mClassProps = null;
- String ItemName;
+ private String mItemName = null;
/**************************************************************************
@@ -37,14 +37,12 @@ public class AggregationMember extends GraphableVertex implements CollectionMemb
public AggregationMember()
{
super();
- mSystemKey = -1;
- mCollection = null;
}
@Override
- public void setSystemKey(int sysKey) {
- mSystemKey = sysKey;
- ItemName = null;
+ public void setItemPath(ItemPath itemPath) {
+ mItemPath = itemPath;
+ mItemName = null;
}
public void setCollection(Aggregation aggregation)
@@ -59,9 +57,9 @@ public class AggregationMember extends GraphableVertex implements CollectionMemb
}
@Override
- public int getSystemKey()
+ public ItemPath getItemPath()
{
- return mSystemKey;
+ return mItemPath;
}
public Aggregation getCollection()
@@ -76,9 +74,9 @@ public class AggregationMember extends GraphableVertex implements CollectionMemb
}
@Override
- public void assignItem(int sysKey) throws MembershipException
+ public void assignItem(ItemPath itemPath) throws MembershipException
{
- if (sysKey > -1) {
+ if (itemPath != null) {
if (mClassProps == null || getProperties() == null)
throw new MembershipException("ClassProps not yet set. Cannot check membership validity.");
@@ -89,9 +87,9 @@ public class AggregationMember extends GraphableVertex implements CollectionMemb
String aClassProp = sub.nextToken();
try {
String memberValue = (String)getProperties().get(aClassProp);
- Property ItemProperty = (Property)Gateway.getStorage().get(sysKey, ClusterStorage.PROPERTY+"/"+aClassProp, null);
+ Property ItemProperty = (Property)Gateway.getStorage().get(itemPath, ClusterStorage.PROPERTY+"/"+aClassProp, null);
if (ItemProperty == null)
- throw new MembershipException("Property "+aClassProp+ " does not exist for sysKey=" + sysKey );
+ throw new MembershipException("Property "+aClassProp+ " does not exist for item " + itemPath );
if (ItemProperty.getValue() == null || !ItemProperty.getValue().equalsIgnoreCase(memberValue))
throw new MembershipException("Value of mandatory prop "+aClassProp+" does not match: " + ItemProperty.getValue()+"!="+memberValue);
}
@@ -106,46 +104,54 @@ public class AggregationMember extends GraphableVertex implements CollectionMemb
}
}
- mSystemKey = sysKey;
+ mItemPath = itemPath;
mItem = null;
- ItemName = null;
+ mItemName = null;
}
@Override
public void clearItem() {
- mSystemKey = -1;
+ mItemPath = null;
mItem = null;
+ mItemName = null;
}
@Override
public ItemProxy resolveItem() throws ObjectNotFoundException {
- if (mItem == null) {
- try {
- ItemPath path = new ItemPath(mSystemKey);
- mItem = Gateway.getProxyManager().getProxy(path);
- } catch (InvalidItemPathException ex) {
- throw new ObjectNotFoundException("No member defined", "");
- }
+ if (mItem == null && mItemPath != null) {
+ mItem = Gateway.getProxyManager().getProxy(mItemPath);
}
return mItem;
}
public String getItemName() {
- if (ItemName == null) {
- if (mSystemKey > -1) {
+ if (mItemName == null) {
+ if (mItemPath != null) {
try {
- ItemName = resolveItem().getName();
+ mItemName = resolveItem().getName();
} catch (ObjectNotFoundException ex) {
Logger.error(ex);
- ItemName = "Error ("+mSystemKey+")";
+ mItemName = "Error ("+mItemPath+")";
}
}
else
- ItemName = "Empty";
+ mItemName = "Empty";
}
- return ItemName;
+ return mItemName;
}
+ @Override
+ public void setChildUUID(String uuid) throws MembershipException {
+ setItemPath(new ItemPath(UUID.fromString(uuid)));
+ }
+
+
+ @Override
+ public String getChildUUID() {
+ if (getItemPath() == null) return null;
+ return getItemPath().getUUID().toString();
+ }
+
}
diff --git a/src/main/java/com/c2kernel/collection/Collection.java b/src/main/java/com/c2kernel/collection/Collection.java
index b507593..0c28a3b 100644
--- a/src/main/java/com/c2kernel/collection/Collection.java
+++ b/src/main/java/com/c2kernel/collection/Collection.java
@@ -1,6 +1,7 @@
package com.c2kernel.collection;
import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.entity.C2KLocalObject;
+import com.c2kernel.lookup.ItemPath;
import com.c2kernel.utils.CastorHashMap;
/**
@@ -21,9 +22,9 @@ public interface Collection<E extends CollectionMember> extends C2KLocalObject
public CollectionMemberList<E> getMembers();
- public E addMember(int entityKey, CastorHashMap props, String classProps) throws MembershipException;
+ public E addMember(ItemPath itemPath, CastorHashMap props, String classProps) throws MembershipException;
- public E addMember(int entityKey) throws MembershipException;
+ public E addMember(ItemPath itemPath) throws MembershipException;
public void removeMember(int memberId) throws MembershipException;
diff --git a/src/main/java/com/c2kernel/collection/CollectionMember.java b/src/main/java/com/c2kernel/collection/CollectionMember.java
index ff5d1cd..4fc7e3d 100644
--- a/src/main/java/com/c2kernel/collection/CollectionMember.java
+++ b/src/main/java/com/c2kernel/collection/CollectionMember.java
@@ -4,6 +4,7 @@ import java.io.Serializable;
import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.entity.proxy.ItemProxy;
+import com.c2kernel.lookup.ItemPath;
import com.c2kernel.utils.CastorHashMap;
/**************************************************************************
@@ -20,10 +21,13 @@ import com.c2kernel.utils.CastorHashMap;
public interface CollectionMember extends Serializable {
- public void setSystemKey(int sysKey) throws MembershipException;
- public int getSystemKey();
+ public void setItemPath(ItemPath itemPath) throws MembershipException;
+ public ItemPath getItemPath();
+
+ public void setChildUUID(String uuid) throws MembershipException;
+ public String getChildUUID();
- public void assignItem(int ItemKey) throws MembershipException;
+ public void assignItem(ItemPath itemPath) throws MembershipException;
public void clearItem();
public ItemProxy resolveItem() throws ObjectNotFoundException;
diff --git a/src/main/java/com/c2kernel/collection/Dependency.java b/src/main/java/com/c2kernel/collection/Dependency.java
index 4fb4f70..11ef16e 100644
--- a/src/main/java/com/c2kernel/collection/Dependency.java
+++ b/src/main/java/com/c2kernel/collection/Dependency.java
@@ -1,6 +1,7 @@
package com.c2kernel.collection;
+import com.c2kernel.lookup.ItemPath;
import com.c2kernel.utils.CastorHashMap;
import com.c2kernel.utils.KeyValuePair;
import com.c2kernel.utils.Logger;
@@ -57,7 +58,7 @@ public class Dependency extends Parent2ChildCollection<DependencyMember>
}
@Override
- public DependencyMember addMember(int sysKey) throws MembershipException {
+ public DependencyMember addMember(ItemPath itemPath) throws MembershipException {
// create member object
DependencyMember depMember = new DependencyMember();
depMember.setID(getCounter());
@@ -65,14 +66,14 @@ public class Dependency extends Parent2ChildCollection<DependencyMember>
depMember.setClassProps(mClassProps);
// assign entity
- depMember.assignItem(sysKey);
+ depMember.assignItem(itemPath);
mMembers.list.add(depMember);
- Logger.msg(8, "Dependency::addMember(" + sysKey + ") added to children.");
+ Logger.msg(8, "Dependency::addMember(" + itemPath + ") added to children.");
return depMember;
}
@Override
- public DependencyMember addMember(int sysKey, CastorHashMap props, String classProps)
+ public DependencyMember addMember(ItemPath itemPath, CastorHashMap props, String classProps)
throws MembershipException
{
if (classProps != null && !classProps.equals(mClassProps))
@@ -97,9 +98,9 @@ public class Dependency extends Parent2ChildCollection<DependencyMember>
depMember.setClassProps(mClassProps);
// assign entity
- depMember.assignItem(sysKey);
+ depMember.assignItem(itemPath);
mMembers.list.add(depMember);
- Logger.msg(8, "Dependency::addMember(" + sysKey + ") added to children.");
+ Logger.msg(8, "Dependency::addMember(" + itemPath + ") added to children.");
return depMember;
}
diff --git a/src/main/java/com/c2kernel/collection/DependencyDescription.java b/src/main/java/com/c2kernel/collection/DependencyDescription.java
index 79b4880..3c3b287 100644
--- a/src/main/java/com/c2kernel/collection/DependencyDescription.java
+++ b/src/main/java/com/c2kernel/collection/DependencyDescription.java
@@ -1,6 +1,7 @@
package com.c2kernel.collection;
import com.c2kernel.common.ObjectNotFoundException;
+import com.c2kernel.lookup.ItemPath;
import com.c2kernel.property.PropertyDescriptionList;
import com.c2kernel.property.PropertyUtility;
import com.c2kernel.utils.CastorHashMap;
@@ -23,7 +24,7 @@ public class DependencyDescription extends Dependency implements CollectionDescr
Dependency newDep = new Dependency(depName);
if (mMembers.list.size() == 1) { // constrain the members based on the property description
DependencyMember mem = mMembers.list.get(0);
- PropertyDescriptionList pdList = PropertyUtility.getPropertyDescriptionOutcome(mem.getSystemKey());
+ PropertyDescriptionList pdList = PropertyUtility.getPropertyDescriptionOutcome(mem.getItemPath());
if (pdList!=null) {
newDep.setProperties(PropertyUtility.createProperty(pdList));
newDep.setClassProps(pdList.getClassProps());
@@ -34,16 +35,16 @@ public class DependencyDescription extends Dependency implements CollectionDescr
@Override
- public DependencyMember addMember(int entityKey) throws MembershipException {
+ public DependencyMember addMember(ItemPath itemPath) throws MembershipException {
checkMembership();
- return super.addMember(entityKey);
+ return super.addMember(itemPath);
}
@Override
- public DependencyMember addMember(int entityKey, CastorHashMap props, String classProps)
+ public DependencyMember addMember(ItemPath itemPath, CastorHashMap props, String classProps)
throws MembershipException {
checkMembership();
- return super.addMember(entityKey, props, classProps);
+ return super.addMember(itemPath, props, classProps);
}
public void checkMembership() throws MembershipException {
diff --git a/src/main/java/com/c2kernel/collection/DependencyMember.java b/src/main/java/com/c2kernel/collection/DependencyMember.java
index 169f9ea..b5a8b13 100644
--- a/src/main/java/com/c2kernel/collection/DependencyMember.java
+++ b/src/main/java/com/c2kernel/collection/DependencyMember.java
@@ -1,11 +1,11 @@
package com.c2kernel.collection;
import java.util.StringTokenizer;
+import java.util.UUID;
import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.entity.proxy.ItemProxy;
import com.c2kernel.lookup.ItemPath;
-import com.c2kernel.lookup.InvalidItemPathException;
import com.c2kernel.persistency.ClusterStorage;
import com.c2kernel.process.Gateway;
import com.c2kernel.property.Property;
@@ -23,9 +23,9 @@ import com.c2kernel.utils.Logger;
public class DependencyMember implements CollectionMember
{
- private int mSystemKey = -1;
- private ItemProxy mItem = null;
- private int mId = -1;
+ private ItemPath mItemPath = null;
+ private ItemProxy mItem = null;
+ private int mId = -1;
private CastorHashMap mProperties = null;
private String mClassProps;
@@ -35,22 +35,21 @@ public class DependencyMember implements CollectionMember
**************************************************************************/
public DependencyMember()
{
- mSystemKey = -1;
mProperties = new CastorHashMap();
}
@Override
- public void setSystemKey(int sysKey)
+ public void setItemPath(ItemPath itemPath)
{
- mSystemKey = sysKey;
+ mItemPath = itemPath;
mItem = null;
}
@Override
- public int getSystemKey()
+ public ItemPath getItemPath()
{
- return mSystemKey;
+ return mItemPath;
}
@Override
@@ -97,9 +96,9 @@ public class DependencyMember implements CollectionMember
}
@Override
- public void assignItem(int ItemKey) throws MembershipException
+ public void assignItem(ItemPath itemPath) throws MembershipException
{
- if (ItemKey > -1) {
+ if (itemPath != null) {
if (mClassProps == null || getProperties() == null)
throw new MembershipException("ClassProps not yet set. Cannot check membership validity.");
@@ -110,9 +109,9 @@ public class DependencyMember implements CollectionMember
String aClassProp = sub.nextToken();
try {
String memberValue = (String)getProperties().get(aClassProp);
- Property ItemProperty = (Property)Gateway.getStorage().get(ItemKey, ClusterStorage.PROPERTY+"/"+aClassProp, null);
+ Property ItemProperty = (Property)Gateway.getStorage().get(itemPath, ClusterStorage.PROPERTY+"/"+aClassProp, null);
if (ItemProperty == null)
- throw new MembershipException("Property "+aClassProp+ " does not exist for ItemKey=" + ItemKey );
+ throw new MembershipException("Property "+aClassProp+ " does not exist for item " + itemPath );
if (!ItemProperty.getValue().equalsIgnoreCase(memberValue))
throw new MembershipException("DependencyMember::checkProperty() Values of mandatory prop "+aClassProp+" do not match " + ItemProperty.getValue()+"!="+memberValue);
}
@@ -124,29 +123,34 @@ public class DependencyMember implements CollectionMember
}
}
- mSystemKey = ItemKey;
+ mItemPath = itemPath;
mItem = null;
}
@Override
public void clearItem() {
- mSystemKey = -1;
+ mItemPath = null;
mItem = null;
}
@Override
public ItemProxy resolveItem() throws ObjectNotFoundException {
- if (mItem == null) {
- try {
- ItemPath path = new ItemPath(mSystemKey);
- mItem = Gateway.getProxyManager().getProxy(path);
- } catch (InvalidItemPathException ex) {
- throw new ObjectNotFoundException("No member defined", "");
- }
- }
+ if (mItem == null && mItemPath != null)
+ mItem = Gateway.getProxyManager().getProxy(mItemPath);
return mItem;
-
}
+ @Override
+ public void setChildUUID(String uuid) throws MembershipException {
+ mItemPath = new ItemPath(UUID.fromString(uuid));
+ }
+
+
+ @Override
+ public String getChildUUID() {
+ return mItemPath.getUUID().toString();
+ }
+
+
}
diff --git a/src/main/java/com/c2kernel/collection/Parent2ChildCollection.java b/src/main/java/com/c2kernel/collection/Parent2ChildCollection.java
index 814cca8..26aa451 100644
--- a/src/main/java/com/c2kernel/collection/Parent2ChildCollection.java
+++ b/src/main/java/com/c2kernel/collection/Parent2ChildCollection.java
@@ -3,6 +3,7 @@ package com.c2kernel.collection;
import java.util.Iterator;
import com.c2kernel.common.ObjectNotFoundException;
+import com.c2kernel.lookup.ItemPath;
import com.c2kernel.persistency.ClusterStorage;
import com.c2kernel.utils.CastorHashMap;
@@ -88,10 +89,10 @@ abstract public class Parent2ChildCollection<E extends CollectionMember> impleme
mMembers = newMembers;
}
- public boolean contains(int sysKey) {
+ public boolean contains(ItemPath itemPath) {
for (Object name : mMembers.list) {
CollectionMember element = (CollectionMember)name;
- if (element.getSystemKey() == sysKey)
+ if (element.getItemPath().equals(itemPath))
return true;
}
return false;
@@ -102,7 +103,7 @@ abstract public class Parent2ChildCollection<E extends CollectionMember> impleme
for (int i=0; i<size(); i++)
{
CollectionMember element = mMembers.list.get(i);
- if (element.getSystemKey() == -1)
+ if (element.getItemPath() == null)
return false;
}
return true;
@@ -124,7 +125,7 @@ abstract public class Parent2ChildCollection<E extends CollectionMember> impleme
}
@Override
- public abstract E addMember(int entityKey, CastorHashMap props, String classProps) throws MembershipException;
+ public abstract E addMember(ItemPath itemPath, CastorHashMap props, String classProps) throws MembershipException;
public boolean equals(Parent2ChildCollection<?> other) {
boolean same = mName.equals(other.getName()) && mURLInfo.equals(other.getURLInfo()) && size() == other.size();
diff --git a/src/main/java/com/c2kernel/collection/gui/model/AggregationVertexFactory.java b/src/main/java/com/c2kernel/collection/gui/model/AggregationVertexFactory.java
index 88dcc3a..1a20c5e 100644
--- a/src/main/java/com/c2kernel/collection/gui/model/AggregationVertexFactory.java
+++ b/src/main/java/com/c2kernel/collection/gui/model/AggregationVertexFactory.java
@@ -30,7 +30,7 @@ public class AggregationVertexFactory implements VertexFactory
) throws Exception
{
if (typeNameAndConstructionInfo.mInfo.equals("AggregationMember")) {
- mAggregation.addMember(-1, new CastorHashMap(), "",location, 40, 40);
+ mAggregation.addMember(null, new CastorHashMap(), "",location, 40, 40);
}
}
}