summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/Instance.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/Instance.java')
-rw-r--r--java/src/IceInternal/Instance.java23
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;
}