001 package com.oxygenxml.validate.nvdl;
002
003 import java.util.Hashtable;
004 import java.util.Enumeration;
005
006 /**
007 * Utility class, stores a set of objects.
008 * It uses a Hashtable for internal storage.
009 */
010 class Hashset {
011 /**
012 * The internal storage, a hashtable.
013 */
014 private final Hashtable table = new Hashtable();
015
016 /**
017 * Test if an object belongs to this set or not.
018 * @param key The object.
019 * @return true if the object is contained in this set.
020 */
021 boolean contains(Object key) {
022 return table.get(key) != null;
023 }
024
025 /**
026 * Adds an object to this set.
027 * @param key The object to be added.
028 */
029 void add(Object key) {
030 table.put(key, key);
031 }
032
033 /**
034 * Adds all the objects from another set to this set - union.
035 * @param set The other set.
036 */
037 void addAll(Hashset set) {
038 for (Enumeration enume = set.table.keys(); enume.hasMoreElements();)
039 add(enume.nextElement());
040 }
041
042 /**
043 * Removes all the objects from this set.
044 */
045 void clear() {
046 table.clear();
047 }
048
049 /**
050 * Get an enumeration will all the objects from this set.
051 * @return an enumeration with all the objects from this set.
052 */
053 Enumeration members() {
054 return table.keys();
055 }
056 }