gnu.mapping

Class PropertyLocation

public class PropertyLocation extends Location

Used to implement Lisp-style "property lists". A PropertyLocation is a location whose value is the car of a property list. This class also contains a number of static methods useful for working with property lists.
Method Summary
Objectget(Object defaultValue)
static ObjectgetProperty(Object symbol, Object property, Object defaultValue, Environment env)
Gets a property value associated with an object.
static ObjectgetProperty(Object symbol, Object property, Object defaultValue)
Gets a property value associated with an object.
static ObjectgetPropertyList(Object symbol, Environment env)
Get the property list assocated with an object in a given Environment.
static ObjectgetPropertyList(Object symbol)
Get the property list associated with object in the current Environment.
booleanisBound()
static ObjectplistGet(Object plist, Object prop, Object dfault)
Given a property list and a key, find the corresponding property value.
static ObjectplistPut(Object plist, Object prop, Object value)
Modify and add a property binding to a property list.
static ObjectplistRemove(Object plist, Object prop)
Remove a property binding from a property list.
static voidputProperty(Object symbol, Object property, Object newValue, Environment env)
static voidputProperty(Object symbol, Object property, Object newValue)
Sets a property value associated with an object.
static booleanremoveProperty(Object symbol, Object property, Environment env)
Remove a properaty assocatied with an object.
static booleanremoveProperty(Object symbol, Object property)
Remove a properaty assocatied with an object.
voidset(Object newValue)
static voidsetPropertyList(Object symbol, Object plist, Environment env)
Set the property list assocated with an object in a given Environment.
static voidsetPropertyList(Object symbol, Object plist)
Set the property list assocated with an object in a given Environment.

Method Detail

get

public final Object get(Object defaultValue)

getProperty

public static Object getProperty(Object symbol, Object property, Object defaultValue, Environment env)
Gets a property value associated with an object.

Parameters: symbol Usually a Symbol, but can be any Object>/code>. A String is converted to a Symbol using env.getSymbol(). Symbols require a constant-type hash lookup; other object are serached linearly.

getProperty

public static Object getProperty(Object symbol, Object property, Object defaultValue)
Gets a property value associated with an object. Corresponds to Common Lisp's get function.

See Also: .

getPropertyList

public static Object getPropertyList(Object symbol, Environment env)
Get the property list assocated with an object in a given Environment.

Parameters: symbol Usually but not necessarily a Symbol. (A String is not converted a Symbol by this method.)

getPropertyList

public static Object getPropertyList(Object symbol)
Get the property list associated with object in the current Environment. Corresponds to Common Lisp's symbol-plist function.

Parameters: symbol Usually but not necessarily a Symbol. (A String is not converted a Symbol by this method.)

isBound

public boolean isBound()

plistGet

public static Object plistGet(Object plist, Object prop, Object dfault)
Given a property list and a key, find the corresponding property value.

plistPut

public static Object plistPut(Object plist, Object prop, Object value)
Modify and add a property binding to a property list.

Returns: The updated property list.

plistRemove

public static Object plistRemove(Object plist, Object prop)
Remove a property binding from a property list.

Returns: The updated property list.

putProperty

public static void putProperty(Object symbol, Object property, Object newValue, Environment env)

putProperty

public static void putProperty(Object symbol, Object property, Object newValue)
Sets a property value associated with an object. Corresponds to Common Lisp's (setf get) function.

removeProperty

public static boolean removeProperty(Object symbol, Object property, Environment env)
Remove a properaty assocatied with an object.

removeProperty

public static boolean removeProperty(Object symbol, Object property)
Remove a properaty assocatied with an object. Corresponds to Common Lisp's remprop function.

set

public final void set(Object newValue)

setPropertyList

public static void setPropertyList(Object symbol, Object plist, Environment env)
Set the property list assocated with an object in a given Environment. This function should be avoided, since a Symbol's property list may be used by unknown classes. It also can be slow.

Parameters: symbol Usually but not necessarily a Symbol. (A String is not converted a Symbol by this method.)

setPropertyList

public static void setPropertyList(Object symbol, Object plist)
Set the property list assocated with an object in a given Environment. Corresponds to Common Lisp's (setf symbol-plist) function.

See Also: .