diff options
Diffstat (limited to 'java/src/IceInternal/UserExceptionFactoryManager.java')
-rw-r--r-- | java/src/IceInternal/UserExceptionFactoryManager.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/java/src/IceInternal/UserExceptionFactoryManager.java b/java/src/IceInternal/UserExceptionFactoryManager.java new file mode 100644 index 00000000000..cec5c8f6dc5 --- /dev/null +++ b/java/src/IceInternal/UserExceptionFactoryManager.java @@ -0,0 +1,55 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +package IceInternal; + +final class UserExceptionFactoryManager +{ + public synchronized void + add(Ice.UserExceptionFactory factory, String id) + { + _factoryMap.put(id, factory); + } + + public synchronized void + remove(String id) + { + _factoryMap.remove(id); + } + + public synchronized Ice.UserExceptionFactory + find(String id) + { + return (Ice.UserExceptionFactory)_factoryMap.get(id); + } + + // + // Only for use by Instance + // + UserExceptionFactoryManager() + { + } + + void + destroy() + { + java.util.Set entries = _factoryMap.entrySet(); + java.util.Iterator i = entries.iterator(); + while (i.hasNext()) + { + Ice.UserExceptionFactory factory = + (Ice.UserExceptionFactory)i.next(); + factory.destroy(); + } + _factoryMap.clear(); + } + + private java.util.HashMap _factoryMap = new java.util.HashMap(); +} |