X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fcore%2FDefaultScope.java;h=51949ca1570df5dd755a905edb1a4e5049a92a71;hb=726e168d04552a09ddaf52c2ecacdc886fb75dc0;hp=8b0c88efe0e4b746a6d92dd5e9a49d1fe1446ddc;hpb=3665d4db4e2d8082a8c282f6f70df6de49e60d56;p=utils diff --git a/system/general/src/main/java/org/wamblee/system/core/DefaultScope.java b/system/general/src/main/java/org/wamblee/system/core/DefaultScope.java index 8b0c88ef..51949ca1 100644 --- a/system/general/src/main/java/org/wamblee/system/core/DefaultScope.java +++ b/system/general/src/main/java/org/wamblee/system/core/DefaultScope.java @@ -17,14 +17,15 @@ package org.wamblee.system.core; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; +import java.util.UUID; public class DefaultScope implements Scope { private List _parents; - private int _count; private Map _properties; private Map _runtimes; private Map _provided; @@ -41,10 +42,9 @@ public class DefaultScope implements Scope { public DefaultScope(ProvidedInterface[] aExternallyProvided, List aParent) { _parents = new ArrayList(aParent); - _count = 0; - _properties = new TreeMap(); - _runtimes = new TreeMap(); - _provided = new TreeMap(); + _properties = new HashMap(); + _runtimes = new HashMap(); + _provided = new HashMap(); _externallyProvided = aExternallyProvided; } @@ -65,25 +65,30 @@ public class DefaultScope implements Scope { @Override public void addRuntime(Component aComponent, Object aRuntime) { - _runtimes.put(aComponent.getQualifiedName(), aRuntime); + _runtimes.put(aComponent.getName(), aRuntime); } @Override public Object getRuntime(Component aComponent) { - return _runtimes.get(aComponent.getQualifiedName()); + return _runtimes.get(aComponent.getName()); + } + + @Override + public Object getRuntime(String aName) { + return _runtimes.get(aName); } @Override synchronized public void publishInterface(ProvidedInterface aInterface, Object aImplementation) { - String id = "" + _count++; + String id = UUID.randomUUID().toString(); _provided.put(id, new ProvidedInterfaceImplementation(aInterface, aImplementation)); aInterface.setUniqueId(id); } @Override - public T retrieveInterfaceImplementation(ProvidedInterface aInterface, + public T getInterfaceImplementation(ProvidedInterface aInterface, Class aType) { if ( aInterface == null ) { return null; @@ -96,7 +101,7 @@ public class DefaultScope implements Scope { ProvidedInterfaceImplementation provided = _provided.get(id); if (provided == null) { for (Scope parent : _parents) { - T impl = parent.retrieveInterfaceImplementation(aInterface, aType); + T impl = parent.getInterfaceImplementation(aInterface, aType); if ( impl != null ) { return impl; }