From 081650ead4099bea3723c041ab2f9c04364e8f6b Mon Sep 17 00:00:00 2001 From: antelder Date: Mon, 8 Jun 2009 10:43:41 +0000 Subject: Update the SCAClient impl to work with multiple nodes in a domain git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@782588 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/tuscany/sca/node/NodeFinder.java | 26 +++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'java/sca/modules/node-api/src') diff --git a/java/sca/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFinder.java b/java/sca/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFinder.java index f81906af89..27926a0115 100644 --- a/java/sca/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFinder.java +++ b/java/sca/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFinder.java @@ -20,22 +20,38 @@ package org.apache.tuscany.sca.node; import java.net.URI; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; public class NodeFinder { - private static Map nodes = new HashMap(); + private static Map> nodes = new HashMap>(); public static void addNode(URI domainName, Node node) { - nodes.put(domainName, node); + List domainNodes = nodes.get(domainName); + if (domainNodes == null) { + domainNodes = new ArrayList(); + } + domainNodes.add(node); + nodes.put(domainName, domainNodes); } - public static Node removeNode(URI domainName) { - return nodes.remove(domainName); + public static Node removeNode(Node node) { + for (List domainNodes : nodes.values()) { + if (domainNodes.contains(node)) { + domainNodes.remove(node); + if (domainNodes.size() < 1) { + nodes.remove(domainNodes); + } + return node; + } + } + return null; } - public static Node getNode(URI domainURI) { + public static List getNodes(URI domainURI) { return nodes.get(domainURI); } -- cgit v1.2.3