/**
 * Collections of values that are indexed by string.
 */
public interface GDictionary
{
  /**
   * Look up stuff by name.
   */
  public Object get(String index);

  /**
   * Add stuff by name.
   *
   * Design question: What happens if something with the same
   *   index is already in the dictionary?  Decision: CrashAndBurn
   */
  public void add(String index, Object value)
    throws Exception;

  /**
   * Replace something.  Return the old value.
   *
   * @exception Exception
   *   if there is not value with the designated index.
   */
  public Object replace(String index, Object newValue)
    throws Exception;

  /**
   * Delete an entry (all entries?) with a particular index.
   */
  public void delete(String index);
} // interface GDictionary
