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. --- src/main/java/com/c2kernel/lookup/Path.java | 30 ++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'src/main/java/com/c2kernel/lookup/Path.java') diff --git a/src/main/java/com/c2kernel/lookup/Path.java b/src/main/java/com/c2kernel/lookup/Path.java index d6be37f..f6993f7 100644 --- a/src/main/java/com/c2kernel/lookup/Path.java +++ b/src/main/java/com/c2kernel/lookup/Path.java @@ -13,8 +13,10 @@ package com.c2kernel.lookup; import java.io.Serializable; import java.util.ArrayList; import java.util.StringTokenizer; +import java.util.UUID; import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.common.SystemKey; import com.c2kernel.process.Gateway; @@ -31,17 +33,16 @@ public abstract class Path implements Serializable public static final short CONTEXT = 1; public static final short ENTITY = 2; - // invalid int key - public static final int INVALID = -1; - protected String[] mPath = new String[0]; // slash delimited path protected String mStringPath = null; // entity or context protected short mType = CONTEXT; - // int syskey (only valid for entity SystemPaths) - protected int mSysKey = INVALID; + + // item UUID (only valid for ItemPaths and DomainPaths that are aliases for Items) + protected UUID mUUID; + protected SystemKey mSysKey; // ior is stored in here when it is resolved protected org.omg.CORBA.Object mIOR = null; @@ -102,7 +103,8 @@ public abstract class Path implements Serializable { mStringPath = null; mPath = path.clone(); - mSysKey = INVALID; + mUUID = null; + mSysKey = null; } /* string path e.g. /system/d000/d000/d001 @@ -122,7 +124,8 @@ public abstract class Path implements Serializable mPath = (newPath.toArray(mPath)); mStringPath = null; - mSysKey = INVALID; + mUUID = null; + mSysKey = null; } // lookup sets the IOR @@ -138,7 +141,8 @@ public abstract class Path implements Serializable { mStringPath = null; mPath = (path.getPath().clone()); - mSysKey = INVALID; + mUUID = null; + mSysKey = null; } /*************************************************************************/ @@ -196,11 +200,15 @@ public abstract class Path implements Serializable return mType; } - public int getSysKey() { + public SystemKey getSystemKey() { return mSysKey; } + + public UUID getUUID() { + return mUUID; + } - public abstract ItemPath getEntity() throws ObjectNotFoundException; + public abstract ItemPath getItemPath() throws ObjectNotFoundException; @Override public boolean equals( Object path ) @@ -217,7 +225,7 @@ public abstract class Path implements Serializable StringBuffer comp = new StringBuffer("Components: { "); for (String element : mPath) comp.append("'").append(element).append("' "); - return "Path - dump(): "+comp.toString()+"}\n string="+toString()+"\n int="+getSysKey()+"\n type="+mType; + return "Path - dump(): "+comp.toString()+"}\n string="+toString()+"\n uuid="+getUUID()+"\n type="+mType; } } -- cgit v1.2.3