interface EditableLookup extends Lookup {

    /** Add new name->value association.  Returns true if successful. */
    boolean add(String name, Object value);

    /** Remove association identified by name. */
    void remove(String name);
}



class SimpleEditableLookup
    implements Lookup
{
    private static final int MAX_SIZE = 100;

    private String[] Names  = new String[MAX_SIZE];
    private Object[] Values = new Object[MAX_SIZE];

    public Object find(String name) {
	for (int i = 0; i < Names.length; i++) {
	    if (Names[i].equals(name))
		return Values[i];
	}
	return null;	// not found
    }

    public boolean add(String name, Object value) {
	for (int i = 0; i < Names.length; i++)
	    if (Names[i].equals(name))
		return false;	// fail on duplicate entry

	for (int i = 0; i < Names.length; i++)
	    if (Names[i] == null) {
		Names[i] = name;
		Values[i] = value;
		return true;
	    }

	return false;		// fail if no slots empty
    }

    public void remove(String name) {
	for (int i = 0; i < Names.length; i++)
	    if (Names[i].equals(name)) {
		Names[i] = null;
		Values[i] = null;
	    }
    }
}

