01: // Copyright (c) 2004 Per M.A. Bothner.
02: // This is free software; for terms and warranty disclaimer see ./COPYING.
03:
04: package gnu.mapping;
05:
06: /** A pair of a name (a <code>Symbol</code>) and a property (any <code>Object</code>).
07: * A <code>Symbol</code> is an <code>EnvironmentKey</code> with
08: * a null property component.
09: * An <code>Environment</code> is a map from <code>EnvironmentKey</code>s
10: * to <code>Location</code>s.
11: */
12:
13: public interface EnvironmentKey {
14: public Symbol getKeySymbol();
15:
16: public Object getKeyProperty();
17:
18: public boolean matches(EnvironmentKey key);
19:
20: public boolean matches(Symbol symbol, Object property);
21:
22: /** Conventional value used as a property key for function bindings. */
23: public static final Object FUNCTION = Symbol.FUNCTION;
24: }
|