public abstract class IndirectableLocation<T> extends Location<T>
| Modifier and Type | Field and Description |
|---|---|
protected Location<T> |
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 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<T>public java.lang.Object getKeyProperty()
getKeyProperty in class Location<T>public boolean isConstant()
isConstant in class Location<T>public Location getBaseForce()
public void setBase(Location base)
public void setAlias(Location base)
public Environment getEnvironment()