You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

HierarchicalHashtable.java 1.5 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package org.apache.ant.engine;
  2. import java.util.*;
  3. public class HierarchicalHashtable extends Hashtable {
  4. private HierarchicalHashtable parent;
  5. public HierarchicalHashtable() {
  6. this(null);
  7. }
  8. public HierarchicalHashtable(HierarchicalHashtable parent) {
  9. super();
  10. this.parent = parent;
  11. }
  12. public HierarchicalHashtable getParent() {
  13. return parent;
  14. }
  15. public void setParent(HierarchicalHashtable parent) {
  16. this.parent = parent;
  17. }
  18. public List getPropertyNames() {
  19. ArrayList list = new ArrayList();
  20. Enumeration e = keys();
  21. while (e.hasMoreElements()) {
  22. list.add(e.nextElement());
  23. }
  24. if (getParent() != null) {
  25. list.addAll(getParent().getPropertyNames());
  26. }
  27. return list;
  28. }
  29. public Object getPropertyValue(String name) {
  30. Object value = get(name);
  31. if (value == null && getParent() != null) {
  32. return getParent().getPropertyValue(name);
  33. }
  34. return value;
  35. }
  36. public void setPropertyValue(String name, Object value) {
  37. put(name, value);
  38. }
  39. public void removePropertyValue(String name) {
  40. Object value = get(name);
  41. if (value == null && getParent() != null) {
  42. getParent().removePropertyValue(name);
  43. }
  44. if (value != null) {
  45. remove(name);
  46. }
  47. }
  48. }