From da731d2bb81666b9c697d9099da632e7dfcdc0f7 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 9 Sep 2014 12:13:21 +0200 Subject: 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. --- .../com/c2kernel/collection/DependencyMember.java | 52 ++++++++++++---------- 1 file changed, 28 insertions(+), 24 deletions(-) (limited to 'src/main/java/com/c2kernel/collection/DependencyMember.java') 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(); + } + + } -- cgit v1.2.3