From a7cefce58cdb0f7f2d0868a1d5ee2f24f3890646 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Mon, 22 Sep 2014 16:01:18 +0200 Subject: ItemPath.fromUUIDString unnecessary as ItemPath(String) supports both plain UUIDs and an /entity prefix. Tightened that up and removed the fromUUIDString method for a simpler API. Also switched AgentPath(String) to a path argument for consistency. New AgentPaths should be created with AgentPath(new ItemPath(), String) instead. --- .../com/c2kernel/collection/AggregationMember.java | 2 +- .../com/c2kernel/collection/DependencyMember.java | 2 +- src/main/java/com/c2kernel/entity/agent/Job.java | 2 +- .../com/c2kernel/entity/imports/ImportAgent.java | 2 +- .../c2kernel/entity/imports/ImportAggregation.java | 6 ++--- .../c2kernel/entity/imports/ImportDependency.java | 4 +--- .../com/c2kernel/entity/transfer/TransferItem.java | 2 +- src/main/java/com/c2kernel/events/Event.java | 2 +- .../com/c2kernel/lifecycle/instance/Workflow.java | 2 +- .../instance/predefined/AddMemberToCollection.java | 2 +- .../lifecycle/instance/predefined/AddNewSlot.java | 2 +- .../instance/predefined/AssignItemToSlot.java | 2 +- .../predefined/RemoveSlotFromCollection.java | 2 +- .../agent/CreateAgentFromDescription.java | 2 +- .../routingHelpers/ViewpointDataHelper.java | 8 +------ src/main/java/com/c2kernel/lookup/AgentPath.java | 12 ++++++---- src/main/java/com/c2kernel/lookup/ItemPath.java | 26 ++++++++++------------ .../c2kernel/persistency/outcome/Viewpoint.java | 2 +- src/main/java/com/c2kernel/process/Bootstrap.java | 4 ++-- .../java/com/c2kernel/process/ItemHTTPBridge.java | 2 +- .../com/c2kernel/process/module/ModuleImport.java | 2 +- 21 files changed, 41 insertions(+), 49 deletions(-) (limited to 'src/main/java/com') diff --git a/src/main/java/com/c2kernel/collection/AggregationMember.java b/src/main/java/com/c2kernel/collection/AggregationMember.java index ba2524c..79d0405 100644 --- a/src/main/java/com/c2kernel/collection/AggregationMember.java +++ b/src/main/java/com/c2kernel/collection/AggregationMember.java @@ -144,7 +144,7 @@ public class AggregationMember extends GraphableVertex implements CollectionMemb @Override public void setChildUUID(String uuid) throws MembershipException, InvalidItemPathException { - setItemPath(ItemPath.fromUUIDString(uuid)); + setItemPath(new ItemPath(uuid)); } diff --git a/src/main/java/com/c2kernel/collection/DependencyMember.java b/src/main/java/com/c2kernel/collection/DependencyMember.java index 4dbb8f1..3cacf2f 100644 --- a/src/main/java/com/c2kernel/collection/DependencyMember.java +++ b/src/main/java/com/c2kernel/collection/DependencyMember.java @@ -143,7 +143,7 @@ public class DependencyMember implements CollectionMember @Override public void setChildUUID(String uuid) throws MembershipException, InvalidItemPathException { - mItemPath = ItemPath.fromUUIDString(uuid); + mItemPath = new ItemPath(uuid); } diff --git a/src/main/java/com/c2kernel/entity/agent/Job.java b/src/main/java/com/c2kernel/entity/agent/Job.java index 97f8eef..0c62bb1 100644 --- a/src/main/java/com/c2kernel/entity/agent/Job.java +++ b/src/main/java/com/c2kernel/entity/agent/Job.java @@ -133,7 +133,7 @@ public class Job implements C2KLocalObject public void setItemUUID( String uuid ) throws InvalidItemPathException { - setItemPath(ItemPath.fromUUIDString(uuid)); + setItemPath(new ItemPath(uuid)); } public String getItemUUID() { diff --git a/src/main/java/com/c2kernel/entity/imports/ImportAgent.java b/src/main/java/com/c2kernel/entity/imports/ImportAgent.java index 2bbd307..52546a6 100644 --- a/src/main/java/com/c2kernel/entity/imports/ImportAgent.java +++ b/src/main/java/com/c2kernel/entity/imports/ImportAgent.java @@ -64,7 +64,7 @@ public class ImportAgent extends ModuleImport implements java.io.Serializable { AgentPath existAgent = Gateway.getLookup().getAgentPath(name); itemPath = existAgent; } catch (ObjectNotFoundException ex) { - itemPath = new AgentPath(name); + itemPath = new AgentPath(new ItemPath(), name); } } return itemPath; diff --git a/src/main/java/com/c2kernel/entity/imports/ImportAggregation.java b/src/main/java/com/c2kernel/entity/imports/ImportAggregation.java index 2d8f0a2..46cb0b6 100644 --- a/src/main/java/com/c2kernel/entity/imports/ImportAggregation.java +++ b/src/main/java/com/c2kernel/entity/imports/ImportAggregation.java @@ -36,7 +36,7 @@ public class ImportAggregation implements java.io.Serializable { if (thisMem.itemDescriptionPath != null && thisMem.itemDescriptionPath.length()>0) { ItemPath itemPath; try { - itemPath = ItemPath.fromUUIDString(thisMem.itemDescriptionPath); + itemPath = new ItemPath(thisMem.itemDescriptionPath); } catch (InvalidItemPathException ex) { itemPath = new DomainPath(thisMem.itemDescriptionPath).getItemPath(); } @@ -50,12 +50,10 @@ public class ImportAggregation implements java.io.Serializable { if (thisMem.itemPath != null && thisMem.itemPath.length()>0) { ItemPath itemPath; try { - itemPath = ItemPath.fromUUIDString(thisMem.itemPath); + itemPath = new ItemPath(thisMem.itemPath); } catch (InvalidItemPathException ex) { itemPath = new DomainPath(thisMem.itemPath).getItemPath(); } - if (itemPath == null) - throw new MembershipException("Cannot find "+thisMem.itemPath+" specified for collection."); newAgg.addMember(itemPath, thisMem.props, classProps.toString(), new GraphPoint(thisMem.geometry.x, thisMem.geometry.y), thisMem.geometry.width, thisMem.geometry.height); } } diff --git a/src/main/java/com/c2kernel/entity/imports/ImportDependency.java b/src/main/java/com/c2kernel/entity/imports/ImportDependency.java index 87e6b11..3fafd6f 100644 --- a/src/main/java/com/c2kernel/entity/imports/ImportDependency.java +++ b/src/main/java/com/c2kernel/entity/imports/ImportDependency.java @@ -58,13 +58,11 @@ public class ImportDependency implements java.io.Serializable { for (ImportDependencyMember thisMem : dependencyMemberList) { ItemPath itemPath; try { - itemPath = ItemPath.fromUUIDString(thisMem.itemPath); + itemPath = new ItemPath(thisMem.itemPath); } catch (InvalidItemPathException ex) { itemPath = new DomainPath(thisMem.itemPath).getItemPath(); } - if (itemPath == null) - throw new MembershipException("Cannot find "+thisMem.itemPath+" specified for collection."); com.c2kernel.collection.DependencyMember newDepMem = newDep.addMember(itemPath); newDepMem.getProperties().putAll(thisMem.props); } diff --git a/src/main/java/com/c2kernel/entity/transfer/TransferItem.java b/src/main/java/com/c2kernel/entity/transfer/TransferItem.java index 4ec8953..d1379cf 100644 --- a/src/main/java/com/c2kernel/entity/transfer/TransferItem.java +++ b/src/main/java/com/c2kernel/entity/transfer/TransferItem.java @@ -57,7 +57,7 @@ public class TransferItem { public void setUUID( String uuid ) throws InvalidItemPathException { - itemPath = ItemPath.fromUUIDString(uuid); + itemPath = new ItemPath(uuid); } public String getUUID() { diff --git a/src/main/java/com/c2kernel/events/Event.java b/src/main/java/com/c2kernel/events/Event.java index bf9be68..0bab4bc 100644 --- a/src/main/java/com/c2kernel/events/Event.java +++ b/src/main/java/com/c2kernel/events/Event.java @@ -82,7 +82,7 @@ public class Event implements C2KLocalObject public void setItemUUID( String uuid ) throws InvalidItemPathException { - setItemPath(ItemPath.fromUUIDString(uuid)); + setItemPath(new ItemPath(uuid)); } public String getItemUUID() { diff --git a/src/main/java/com/c2kernel/lifecycle/instance/Workflow.java b/src/main/java/com/c2kernel/lifecycle/instance/Workflow.java index 304c604..e3ae682 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/Workflow.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/Workflow.java @@ -201,7 +201,7 @@ public class Workflow extends CompositeActivity implements C2KLocalObject public void setItemUUID( String uuid ) throws InvalidItemPathException { - setItemPath(ItemPath.fromUUIDString(uuid)); + setItemPath(new ItemPath(uuid)); } public String getItemUUID() { 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 76b6adf..f421b09 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddMemberToCollection.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddMemberToCollection.java @@ -64,7 +64,7 @@ public class AddMemberToCollection extends PredefinedStep if (Logger.doLog(3)) Logger.msg(3, "AddMemberToCollection: called by "+agent+" on "+item+" with parameters "+Arrays.toString(params)); try { collName = params[0]; - newChild = ItemPath.fromUUIDString(params[1]); + newChild = new ItemPath(params[1]); if (params.length > 2) props = (CastorHashMap)Gateway.getMarshaller().unmarshall(params[2]); diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddNewSlot.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddNewSlot.java index 58b1263..a482a43 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddNewSlot.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddNewSlot.java @@ -66,7 +66,7 @@ public class AddNewSlot extends PredefinedStep try { collName = params[0]; - if (params.length > 1 && params[1].length() > 0) descKey = ItemPath.fromUUIDString(params[1]); + if (params.length > 1 && params[1].length() > 0) descKey = new ItemPath(params[1]); } catch (Exception e) { throw new InvalidDataException("AddNewSlot: Invalid parameters "+Arrays.toString(params), ""); } diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/AssignItemToSlot.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/AssignItemToSlot.java index 20ad473..71ab287 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/AssignItemToSlot.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/AssignItemToSlot.java @@ -65,7 +65,7 @@ public class AssignItemToSlot extends PredefinedStep try { collName = params[0]; slotNo = Integer.parseInt(params[1]); - childItem = ItemPath.fromUUIDString(params[2]); + childItem = new ItemPath(params[2]); } catch (Exception e) { throw new InvalidDataException("AssignItemToSlot: Invalid parameters "+Arrays.toString(params), ""); } diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/RemoveSlotFromCollection.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/RemoveSlotFromCollection.java index 26bf104..6196025 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/RemoveSlotFromCollection.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/RemoveSlotFromCollection.java @@ -64,7 +64,7 @@ public class RemoveSlotFromCollection extends PredefinedStep try { collName = params[0]; if (params.length>1 && params[1].length()>0) slotNo = Integer.parseInt(params[1]); - if (params.length>2 && params[2].length()>0) currentChild = ItemPath.fromUUIDString(params[2]); + if (params.length>2 && params[2].length()>0) currentChild = new ItemPath(params[2]); } catch (Exception e) { throw new InvalidDataException("RemoveSlotFromCollection: Invalid parameters "+Arrays.toString(params), ""); } diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java index 7683143..088bee1 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java @@ -69,7 +69,7 @@ public class CreateAgentFromDescription extends CreateItemFromDescription // generate new entity key Logger.msg(6, "CreateItemFromDescription - Requesting new agent path"); - AgentPath newAgentPath = new AgentPath(newName); + AgentPath newAgentPath = new AgentPath(new ItemPath(), newName); // resolve the item factory Logger.msg(6, "CreateItemFromDescription - Resolving item factory"); diff --git a/src/main/java/com/c2kernel/lifecycle/routingHelpers/ViewpointDataHelper.java b/src/main/java/com/c2kernel/lifecycle/routingHelpers/ViewpointDataHelper.java index 26b2faa..415cbea 100644 --- a/src/main/java/com/c2kernel/lifecycle/routingHelpers/ViewpointDataHelper.java +++ b/src/main/java/com/c2kernel/lifecycle/routingHelpers/ViewpointDataHelper.java @@ -43,13 +43,7 @@ public class ViewpointDataHelper else return errArr; // find entity - ItemPath sourcePath; - try - { - sourcePath = ItemPath.fromUUIDString(entityPath); - } catch (Exception e) { - sourcePath = new ItemPath(entityPath); - } + ItemPath sourcePath = new ItemPath(entityPath); try { // load viewpoint diff --git a/src/main/java/com/c2kernel/lookup/AgentPath.java b/src/main/java/com/c2kernel/lookup/AgentPath.java index f6d6ca4..9dab6a6 100644 --- a/src/main/java/com/c2kernel/lookup/AgentPath.java +++ b/src/main/java/com/c2kernel/lookup/AgentPath.java @@ -64,9 +64,13 @@ public class AgentPath extends ItemPath mAgentName = agentName; } - public AgentPath(String agentName) { - super(); - mAgentName = agentName; + public AgentPath(String path) throws InvalidItemPathException { + super(path); + try { + findAgentName(); + } catch (ObjectNotFoundException e) { + throw new InvalidAgentPathException(); + } } public void setAgentName(String agentID) @@ -135,7 +139,7 @@ public class AgentPath extends ItemPath public static AgentPath fromUUIDString(String uuid) throws InvalidAgentPathException { try { - return new AgentPath(ItemPath.fromUUIDString(uuid)); + return new AgentPath(new ItemPath(uuid)); } catch (InvalidItemPathException ex) { throw new InvalidAgentPathException(ex.getMessage()); } diff --git a/src/main/java/com/c2kernel/lookup/ItemPath.java b/src/main/java/com/c2kernel/lookup/ItemPath.java index 793a0ed..befbfff 100644 --- a/src/main/java/com/c2kernel/lookup/ItemPath.java +++ b/src/main/java/com/c2kernel/lookup/ItemPath.java @@ -11,6 +11,7 @@ package com.c2kernel.lookup; import java.nio.ByteBuffer; +import java.util.Arrays; import java.util.UUID; import com.c2kernel.common.ObjectNotFoundException; @@ -51,17 +52,21 @@ public class ItemPath extends Path public ItemPath(String path) throws InvalidItemPathException { super(path, Path.CONTEXT); + if (path == null) throw new InvalidItemPathException("Path cannot be null"); getSysKeyFromPath(); } private void getSysKeyFromPath() throws InvalidItemPathException { - if (mPath.length > 0) { + if (mPath.length == 1) { try { setSysKey(UUID.fromString(mPath[0])); + mType = Path.ENTITY; } catch (IllegalArgumentException ex) { throw new InvalidItemPathException(mPath[0]+" is not a valid UUID"); } } + else + throw new InvalidItemPathException("Not a valid item path: "+Arrays.toString(mPath)); } // EntityPaths root in /entity @@ -85,27 +90,20 @@ public class ItemPath extends Path protected void setSysKey(UUID uuid) { mUUID = uuid; - mPath = new String[1]; - mPath[0] = mUUID.toString(); mSysKey = new SystemKey(uuid.getMostSignificantBits(), uuid.getLeastSignificantBits()); - mType = Path.ENTITY; + setPathFromUUID(mUUID.toString()); } protected void setSysKey(SystemKey sysKey) { mSysKey = sysKey; mUUID = new UUID(sysKey.msb, sysKey.lsb); - mPath = new String[1]; - mPath[0] = mUUID.toString(); - mType = Path.ENTITY; + setPathFromUUID(mUUID.toString()); } - public static ItemPath fromUUIDString(String uuid) throws InvalidItemPathException { - if (uuid == null) throw new InvalidItemPathException("Null uuid"); - try { - return new ItemPath(UUID.fromString(uuid)); - } catch (IllegalArgumentException ex) { - throw new InvalidItemPathException("Illegal uuid: "+uuid); - } + private void setPathFromUUID(String uuid) { + mPath = new String[1]; + mPath[0] = uuid; + mType = Path.ENTITY; } } diff --git a/src/main/java/com/c2kernel/persistency/outcome/Viewpoint.java b/src/main/java/com/c2kernel/persistency/outcome/Viewpoint.java index fd2004b..bdc9a74 100644 --- a/src/main/java/com/c2kernel/persistency/outcome/Viewpoint.java +++ b/src/main/java/com/c2kernel/persistency/outcome/Viewpoint.java @@ -162,7 +162,7 @@ public class Viewpoint implements C2KLocalObject { public void setItemUUID( String uuid ) throws InvalidItemPathException { - setItemPath(ItemPath.fromUUIDString(uuid)); + setItemPath(new ItemPath(uuid)); } public String getItemUUID() { diff --git a/src/main/java/com/c2kernel/process/Bootstrap.java b/src/main/java/com/c2kernel/process/Bootstrap.java index 1b9e027..eef118d 100644 --- a/src/main/java/com/c2kernel/process/Bootstrap.java +++ b/src/main/java/com/c2kernel/process/Bootstrap.java @@ -110,7 +110,7 @@ public class Bootstrap ItemPath itemPath = null; String[] itemParts = thisItem.split("/"); if (itemParts.length == 3) { // includes UUID - itemPath = ItemPath.fromUUIDString(itemParts[2]); + itemPath = new ItemPath(itemParts[2]); } String itemType = itemParts[0]; String itemName = itemParts[1]; @@ -298,7 +298,7 @@ public class Bootstrap Logger.msg("Bootstrap.checkAgent() - User '"+name+"' not found. Creating."); try { - AgentPath agentPath = new AgentPath(ItemPath.fromUUIDString(uuid), name); + AgentPath agentPath = new AgentPath(new ItemPath(uuid), name); agentPath.setPassword(pass); Gateway.getCorbaServer().createAgent(agentPath); lookup.add(agentPath); diff --git a/src/main/java/com/c2kernel/process/ItemHTTPBridge.java b/src/main/java/com/c2kernel/process/ItemHTTPBridge.java index 8e4329c..8db52f9 100644 --- a/src/main/java/com/c2kernel/process/ItemHTTPBridge.java +++ b/src/main/java/com/c2kernel/process/ItemHTTPBridge.java @@ -33,7 +33,7 @@ public class ItemHTTPBridge extends HTTPRequestHandler { String query = tok.nextToken(); ItemPath itemPath; try { - itemPath = ItemPath.fromUUIDString(path); + itemPath = new ItemPath(path); } catch (InvalidItemPathException ex) { DomainPath domPath = new DomainPath(path); if (!domPath.exists()) diff --git a/src/main/java/com/c2kernel/process/module/ModuleImport.java b/src/main/java/com/c2kernel/process/module/ModuleImport.java index 346488b..29ee2e2 100644 --- a/src/main/java/com/c2kernel/process/module/ModuleImport.java +++ b/src/main/java/com/c2kernel/process/module/ModuleImport.java @@ -24,7 +24,7 @@ public abstract class ModuleImport { public void setID( String uuid ) throws InvalidItemPathException { - if (uuid != null) itemPath = ItemPath.fromUUIDString(uuid); + if (uuid != null) itemPath = new ItemPath(uuid); } public String getID() { -- cgit v1.2.3