Package gnu.mapping

Class PropertyLocation

java.lang.Object
gnu.mapping.Location<Object>
gnu.mapping.PropertyLocation

public class PropertyLocation extends Location<Object>
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.
  • Constructor Details

    • PropertyLocation

      public PropertyLocation()
  • Method Details

    • get

      public final Object get()
      Description copied from class: Location
      Get the current value of this location.
      Specified by:
      get in class Location<Object>
    • isBound

      public boolean isBound()
      Specified by:
      isBound in class Location<Object>
    • set

      public final void set(Object newValue)
      Specified by:
      set in class Location<Object>
    • 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.)
    • 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:
    • 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. A String is converted to a Symbol using env.getSymbol(). Symbols require a constant-type hash lookup; other object are searched 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:
    • 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 property associated with an object. Corresponds to Common Lisp's remprop function.
    • 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.