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 Locationpublic java.lang.Object getKeyProperty()
getKeyProperty in class Locationpublic boolean isConstant()
isConstant in class Locationpublic Location getBaseForce()
public void setBase(Location base)
public void setAlias(Location base)
public Environment getEnvironment()