public abstract class IndirectableLocation extends Location
Modifier and Type | Field and Description |
---|---|
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 . |
Constructor and Description |
---|
IndirectableLocation() |
Modifier and Type | Method and Description |
---|---|
Location |
getBase() |
Location |
getBaseForce() |
Environment |
getEnvironment() |
java.lang.Object |
getKeyProperty() |
Symbol |
getKeySymbol() |
boolean |
isConstant() |
void |
setAlias(Location base)
Define this Location as an alias for some other Location.
|
void |
setBase(Location base) |
void |
undefine() |
protected static final java.lang.Object DIRECT_ON_SET
value==DIRECT_ON_SET
, break indirection on a set
.protected static final java.lang.Object INDIRECT_FLUIDS
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.protected Location base
protected java.lang.Object value
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 value
directly, instead of setting
the value of base
.public Symbol getKeySymbol()
getKeySymbol
in class Location
public java.lang.Object getKeyProperty()
getKeyProperty
in class Location
public boolean isConstant()
isConstant
in class Location
public Location getBaseForce()
public void setBase(Location base)
public void setAlias(Location base)
public Environment getEnvironment()