gnu.mapping
Class IndirectableLocation
java.lang.Object
gnu.mapping.Location
gnu.mapping.IndirectableLocation
- Direct Known Subclasses:
- BufferLocal, NamedLocation
public abstract class IndirectableLocation
- extends Location
|
Field Summary |
protected Location |
base
If non-null, operations are forwarded to the base location. |
protected static java.lang.Object |
DIRECT_ON_SET
If value==DIRECT_ON_SET, break indirection on a set. |
protected static java.lang.Object |
INDIRECT_FLUIDS
If value has this value, force indirection even
for the setWithSave operation. |
protected java.lang.Object |
value
If base is null, the current value stored in
this Location. |
| Methods inherited from class gnu.mapping.Location |
entered, get, get, getValue, isBound, make, make, make, print, set, setRestore, setValue, setWithSave, toString |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
DIRECT_ON_SET
protected static final java.lang.Object DIRECT_ON_SET
- If
value==DIRECT_ON_SET, break indirection on a set.
INDIRECT_FLUIDS
protected static final java.lang.Object INDIRECT_FLUIDS
- If
value has this value, force indirection even
for the setWithSave operation.
Ignoring the restore aspect of a fluid-let, it is normally
treated as closer to a define than to a set,
in that we break the sharing with another Environment.
Setting value to INDIRECT_FLUIDS means we do
not want to break the indirection in this case.
base
protected Location base
- If non-null, operations are forwarded to the base location.
value
protected java.lang.Object value
- If
base is null, the current value stored in
this Location.
If base is non-null, then value is generally
ignored. However, the special value DIRECT_ON_SET means that
writes change change value directly, instead of setting
the value of base.
IndirectableLocation
public IndirectableLocation()
getKeySymbol
public Symbol getKeySymbol()
- Overrides:
getKeySymbol in class Location
getKeyProperty
public java.lang.Object getKeyProperty()
- Overrides:
getKeyProperty in class Location
isConstant
public boolean isConstant()
- Overrides:
isConstant in class Location
getBase
public Location getBase()
- Overrides:
getBase in class Location
setBase
public void setBase(Location base)
setAlias
public void setAlias(Location base)
- Define this Location as an alias for some other Location.
undefine
public void undefine()
- Overrides:
undefine in class Location
getEnvironment
public Environment getEnvironment()