diff options
author | Mark Spruiell <mes@zeroc.com> | 2012-10-21 07:30:02 -0700 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2012-10-21 07:30:02 -0700 |
commit | 94cf11d600b36a4950caebfa4fc1090f3bf3401e (patch) | |
tree | 38fc87a6a41c2bbe33c9aaea1776520672081f2a /java/src/IceInternal/Instance.java | |
parent | Fixed processor documentation (diff) | |
download | ice-94cf11d600b36a4950caebfa4fc1090f3bf3401e.tar.bz2 ice-94cf11d600b36a4950caebfa4fc1090f3bf3401e.tar.xz ice-94cf11d600b36a4950caebfa4fc1090f3bf3401e.zip |
ICE-3635 - static factory maps
Diffstat (limited to 'java/src/IceInternal/Instance.java')
-rw-r--r-- | java/src/IceInternal/Instance.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/java/src/IceInternal/Instance.java b/java/src/IceInternal/Instance.java index 4bfe313538f..1f81029f920 100644 --- a/java/src/IceInternal/Instance.java +++ b/java/src/IceInternal/Instance.java @@ -590,6 +590,25 @@ public final class Instance return Util.findClass(className, _initData.classLoader); } + public synchronized String + getClassForType(String type) + { + return _typeToClassMap.get(type); + } + + public synchronized void + addClassForType(String type, String className) + { + if(_typeToClassMap.containsKey(type)) + { + assert(_typeToClassMap.get(type).equals(className)); + } + else + { + _typeToClassMap.put(type, className); + } + } + // // Only for use by Ice.CommunicatorI // @@ -1069,6 +1088,8 @@ public final class Instance _adminAdapter = null; _adminFacets.clear(); + _typeToClassMap.clear(); + _state = StateDestroyed; } @@ -1169,5 +1190,7 @@ public final class Instance private java.util.Set<String> _adminFacetFilter = new java.util.HashSet<String>(); private Ice.Identity _adminIdentity; + private java.util.Map<String, String> _typeToClassMap = new java.util.HashMap<String, String>(); + private static boolean _oneOffDone = false; } |