Package gnu.mapping
Class DynamicLocation<T>
- java.lang.Object
-
- gnu.mapping.Location<T>
-
- gnu.mapping.IndirectableLocation<T>
-
- gnu.mapping.NamedLocation<T>
-
- gnu.mapping.DynamicLocation<T>
-
- All Implemented Interfaces:
EnvironmentKey
,Named
,Map.Entry<EnvironmentKey,T>
public class DynamicLocation<T> extends NamedLocation<T> implements Named
A Location that forwards to a thread-specific Location.
-
-
Field Summary
-
Fields inherited from class gnu.mapping.IndirectableLocation
base, DIRECT_ON_SET, INDIRECT_FLUIDS, value
-
Fields inherited from interface gnu.mapping.EnvironmentKey
FUNCTION
-
-
Constructor Summary
Constructors Constructor Description DynamicLocation(Symbol name, Object property)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description T
get()
Get the current value of this location.T
get(T defaultValue)
static DynamicLocation
getInstance(Symbol name, Object property)
For a given (Symbol.NamedLocation<T>
getLocation()
Get the thread-specific Location for this Location.String
getName()
Object
getSymbol()
boolean
isBound()
void
set(T value)
void
setName(String name)
void
setRestore(Object oldValue)
Restore an old value.Object
setWithSave(T newValue)
Set a value, but return cookie so old value can be restored.void
undefine()
-
Methods inherited from class gnu.mapping.NamedLocation
entered, equals, getEnvironment, getKey, getKeyProperty, getKeySymbol, hashCode, matches, matches
-
Methods inherited from class gnu.mapping.IndirectableLocation
getBase, getBaseForce, isConstant, setAlias, setBase
-
Methods inherited from class gnu.mapping.Location
define, getValue, make, make, make, print, setValue, toString
-
-
-
-
Method Detail
-
getLocation
public NamedLocation<T> getLocation()
Get the thread-specific Location for this Location.
-
setWithSave
public Object setWithSave(T newValue)
Description copied from class:Location
Set a value, but return cookie so old value can be restored. This is intended for fluid-let where (in the case of multiple threads) a simple save-restore isn't always the right thing.- Overrides:
setWithSave
in classNamedLocation<T>
-
setRestore
public void setRestore(Object oldValue)
Description copied from class:Location
Restore an old value.- Overrides:
setRestore
in classNamedLocation<T>
- Parameters:
oldValue
- the return value from a prior setWithSave.
-
undefine
public void undefine()
- Overrides:
undefine
in classIndirectableLocation<T>
-
getInstance
public static DynamicLocation getInstance(Symbol name, Object property)
For a given (Symbol. property)-pair, find or create a matching DynamicLocation.
-
-