001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: package java.util;
019:
020: /**
021: * Dictionary is a abstract class which is the superclass of all classes that
022: * associate keys with values, such as Hashtable.
023: *
024: * @see Hashtable
025: * @since 1.0
026: */
027: public abstract class Dictionary<K, V> {
028: /**
029: * Constructs a new instance of this class.
030: *
031: */
032: public Dictionary() {
033: super ();
034: }
035:
036: /**
037: * Answers an Enumeration on the elements of this Dictionary.
038: *
039: * @return an Enumeration of the values of this Dictionary
040: *
041: * @see #keys
042: * @see #size
043: * @see Enumeration
044: */
045: public abstract Enumeration<V> elements();
046:
047: /**
048: * Answers the value associated with <code>key</code>.
049: *
050: * @param key
051: * the key of the value returned
052: * @return the value associated with <code>key</code> or <code>null</code>
053: * if the specified key does not exist
054: *
055: * @see #put
056: */
057: public abstract V get(Object key);
058:
059: /**
060: * Answers if this Dictionary has no key/value pairs, a size of zero.
061: *
062: * @return true if this Dictionary has no key/value pairs, false otherwise
063: *
064: * @see #size
065: */
066: public abstract boolean isEmpty();
067:
068: /**
069: * Answers an Enumeration on the keys of this Dictionary.
070: *
071: * @return an Enumeration of the keys of this Dictionary
072: *
073: * @see #elements
074: * @see #size
075: * @see Enumeration
076: */
077: public abstract Enumeration<K> keys();
078:
079: /**
080: * Associate <code>key</code> with <code>value</code> in this
081: * <code>Dictionary</code>. If <code>key</code> exists in the
082: * <code>Dictionary</code> prior to this call being made, the old value is
083: * replaced.
084: *
085: * @param key
086: * the key to add
087: * @param value
088: * the value to add
089: * @return the old value previously associated with <code>key</code> or
090: * <code>null</code> if <code>key</code> is new to the
091: * <code>Dictionary</code>.
092: *
093: * @see #elements
094: * @see #get
095: * @see #keys
096: */
097: public abstract V put(K key, V value);
098:
099: /**
100: * Remove the key/value pair with the specified <code>key</code> from this
101: * <code>Dictionary</code>.
102: *
103: * @param key
104: * the key to remove
105: * @return the associated value or else <code>null</code> if
106: * <code>key</code> is not known to this <code>Dictionary</code>
107: *
108: * @see #get
109: * @see #put
110: */
111: public abstract V remove(Object key);
112:
113: /**
114: * Answers the number of key/value pairs in this Dictionary.
115: *
116: * @return the number of key/value pairs in this Dictionary
117: *
118: * @see #elements
119: * @see #keys
120: */
121: public abstract int size();
122: }
|