1. /*
  2. * @(#)IdentityHashtable.java 1.5 03/01/23
  3. *
  4. * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package java.beans;
  8. import java.util.*;
  9. /*
  10. * @version 1.5 01/23/03
  11. * @author Philip Milne
  12. */
  13. class IdentityHashtable extends HashMap {
  14. // private InstanceWrapper hashtableNull = new InstanceWrapper();
  15. private class InstanceWrapper {
  16. public Object o;
  17. public InstanceWrapper(Object o) {
  18. this.o = o;
  19. }
  20. public boolean equals(Object o2) {
  21. return (o2.getClass() == InstanceWrapper.class) && (o == ((InstanceWrapper)o2).o);
  22. }
  23. public int hashCode() {
  24. return System.identityHashCode(o);
  25. }
  26. }
  27. public Object put(Object key, Object value) {
  28. return super.put(new InstanceWrapper(key), value);
  29. }
  30. public Object get(Object key) {
  31. return super.get(new InstanceWrapper(key));
  32. }
  33. public Object remove(Object key) {
  34. return super.remove(new InstanceWrapper(key));
  35. }
  36. }