diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2005-09-01 18:23:20 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2005-09-01 18:23:20 +0000 |
commit | fc8ab4607ec714da3ea9abe2ad499a2aed8eed7b (patch) | |
tree | be6de088c10f52a33c035ef77ef01372ca212b64 /java/src/IceInternal/DictionaryPatcher.java | |
parent | minor bug fix (diff) | |
download | ice-fc8ab4607ec714da3ea9abe2ad499a2aed8eed7b.tar.bz2 ice-fc8ab4607ec714da3ea9abe2ad499a2aed8eed7b.tar.xz ice-fc8ab4607ec714da3ea9abe2ad499a2aed8eed7b.zip |
Fix for bug 386.
Diffstat (limited to 'java/src/IceInternal/DictionaryPatcher.java')
-rw-r--r-- | java/src/IceInternal/DictionaryPatcher.java | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/java/src/IceInternal/DictionaryPatcher.java b/java/src/IceInternal/DictionaryPatcher.java new file mode 100644 index 00000000000..56d45ea322c --- /dev/null +++ b/java/src/IceInternal/DictionaryPatcher.java @@ -0,0 +1,57 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +package IceInternal; + +public class DictionaryPatcher implements Patcher, Ice.ReadObjectCallback +{ + public + DictionaryPatcher(java.util.Map dict, Class cls, String type, java.lang.Object key) + { + _dict = dict; + _cls = cls; + _type = type; + _key = key; + } + + public void + patch(Ice.Object v) + { + if(v != null) + { + // + // Raise ClassCastException if the element doesn't match the expected type. + // + if(!_cls.isInstance(v)) + { + throw new ClassCastException("expected element of type " + _cls.getName() + " but received " + + v.getClass().getName()); + } + } + + _dict.put(_key, v); + } + + public String + type() + { + return _type; + } + + public void + invoke(Ice.Object v) + { + patch(v); + } + + private java.util.Map _dict; + private Class _cls; + private String _type; + private java.lang.Object _key; +} |