gnu.mapping
Class IndirectableLocation
public abstract class IndirectableLocation
protected static Object | DIRECT_ON_SET - If
value==DIRECT_ON_SET , break indirection on a set .
|
protected static Object | INDIRECT_FLUIDS - If
value has this value, force indirection even
for the setWithSave operation.
|
protected Location | base - If non-null, operations are forwarded to the base location.
|
protected Object | value - If
base is null, the current value stored in
this Location .
|
entered , get , get , getBase , getKeyProperty , getKeySymbol , getValue , isBound , isConstant , make , make , make , print , set , setRestore , setValue , setWithSave , toString , undefine |
DIRECT_ON_SET
protected static final Object DIRECT_ON_SET
If value==DIRECT_ON_SET
, break indirection on a set
.
INDIRECT_FLUIDS
protected static final 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 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
.
setAlias
public void setAlias(Location base)
Define this Location as an alias for some other Location.
setBase
public void setBase(Location base)