Package gnu.mapping
Class Location<T>
- java.lang.Object
-
- gnu.mapping.Location<T>
-
- Direct Known Subclasses:
ClassMemberLocation,ConstrainedLocation,IndirectableLocation,ProcLocation,PropertyLocation
public abstract class Location<T> extends Object
A Location is an abstract cell/location/variable with a value of type T.
-
-
Constructor Summary
Constructors Constructor Description Location()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static Locationdefine(Symbol name)Implement top-level 'define' for Scheme in interactive mode.booleanentered()True if directly entered in an Environment.abstract Tget()Get the current value of this location.Tget(T defaultValue)LocationgetBase()ObjectgetKeyProperty()SymbolgetKeySymbol()TgetValue()abstract booleanisBound()booleanisConstant()static IndirectableLocationmake(Symbol name)static Locationmake(Object init, String name)static IndirectableLocationmake(String name)voidprint(PrintWriter ps)abstract voidset(T value)voidsetRestore(Object oldValue)Restore an old value.TsetValue(T newValue)ObjectsetWithSave(T newValue)Set a value, but return cookie so old value can be restored.StringtoString()voidundefine()
-
-
-
Field Detail
-
UNBOUND
public static final String UNBOUND
Magic value used to indicate there is no property binding.
-
-
Method Detail
-
getKeySymbol
public Symbol getKeySymbol()
-
getKeyProperty
public Object getKeyProperty()
-
get
public abstract T get()
Get the current value of this location.- Throws:
UnboundLocationException- the location does not have a value.
-
set
public abstract void set(T value)
-
undefine
public void undefine()
-
setWithSave
public Object setWithSave(T newValue)
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.
-
setRestore
public void setRestore(Object oldValue)
Restore an old value.- Parameters:
oldValue- the return value from a prior setWithSave.
-
isBound
public abstract boolean isBound()
-
isConstant
public boolean isConstant()
-
getBase
public Location getBase()
-
getValue
public final T getValue()
-
entered
public boolean entered()
True if directly entered in an Environment. (Only if NamedLocation.)
-
print
public void print(PrintWriter ps)
-
make
public static IndirectableLocation make(String name)
-
make
public static IndirectableLocation make(Symbol name)
-
define
public static Location define(Symbol name)
Implement top-level 'define' for Scheme in interactive mode. I.e. if there is no binding, create it; if the existing binding is non-constant, set its value; if it is constant, create a new binding initialized to the old value (though we actually change the binding to non-constant).
-
-