Package gnu.mapping

Class PropertyLocation


  • public class PropertyLocation
    extends Location<java.lang.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.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object get()
      Get the current value of this location.
      static java.lang.Object getProperty​(java.lang.Object symbol, java.lang.Object property, java.lang.Object defaultValue)
      Gets a property value associated with an object.
      static java.lang.Object getProperty​(java.lang.Object symbol, java.lang.Object property, java.lang.Object defaultValue, Environment env)
      Gets a property value associated with an object.
      static java.lang.Object getPropertyList​(java.lang.Object symbol)
      Get the property list associated with object in the current Environment.
      static java.lang.Object getPropertyList​(java.lang.Object symbol, Environment env)
      Get the property list assocated with an object in a given Environment.
      boolean isBound()  
      static java.lang.Object plistGet​(java.lang.Object plist, java.lang.Object prop, java.lang.Object dfault)
      Given a property list and a key, find the corresponding property value.
      static java.lang.Object plistPut​(java.lang.Object plist, java.lang.Object prop, java.lang.Object value)
      Modify and add a property binding to a property list.
      static java.lang.Object plistRemove​(java.lang.Object plist, java.lang.Object prop)
      Remove a property binding from a property list.
      static void putProperty​(java.lang.Object symbol, java.lang.Object property, java.lang.Object newValue)
      Sets a property value associated with an object.
      static void putProperty​(java.lang.Object symbol, java.lang.Object property, java.lang.Object newValue, Environment env)  
      static boolean removeProperty​(java.lang.Object symbol, java.lang.Object property)
      Remove a property associated with an object.
      static boolean removeProperty​(java.lang.Object symbol, java.lang.Object property, Environment env)
      Remove a properaty assocatied with an object.
      void set​(java.lang.Object newValue)  
      static void setPropertyList​(java.lang.Object symbol, java.lang.Object plist)
      Set the property list assocated with an object in a given Environment.
      static void setPropertyList​(java.lang.Object symbol, java.lang.Object plist, Environment env)
      Set the property list assocated with an object in a given Environment.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • PropertyLocation

        public PropertyLocation()
    • Method Detail

      • get

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

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

        public final void set​(java.lang.Object newValue)
        Specified by:
        set in class Location<java.lang.Object>
      • getPropertyList

        public static java.lang.Object getPropertyList​(java.lang.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 java.lang.Object getPropertyList​(java.lang.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​(java.lang.Object symbol,
                                           java.lang.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​(java.lang.Object symbol,
                                           java.lang.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:
        setPropertyList(Object,Object,Environment)
      • getProperty

        public static java.lang.Object getProperty​(java.lang.Object symbol,
                                                   java.lang.Object property,
                                                   java.lang.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 java.lang.Object getProperty​(java.lang.Object symbol,
                                                   java.lang.Object property,
                                                   java.lang.Object defaultValue)
        Gets a property value associated with an object. Corresponds to Common Lisp's get function.
        See Also:
        getProperty(Object,Object,Object,Environment)
      • putProperty

        public static void putProperty​(java.lang.Object symbol,
                                       java.lang.Object property,
                                       java.lang.Object newValue,
                                       Environment env)
      • putProperty

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

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

        public static boolean removeProperty​(java.lang.Object symbol,
                                             java.lang.Object property)
        Remove a property associated with an object. Corresponds to Common Lisp's remprop function.
      • plistGet

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

        public static java.lang.Object plistPut​(java.lang.Object plist,
                                                java.lang.Object prop,
                                                java.lang.Object value)
        Modify and add a property binding to a property list.
        Returns:
        The updated property list.
      • plistRemove

        public static java.lang.Object plistRemove​(java.lang.Object plist,
                                                   java.lang.Object prop)
        Remove a property binding from a property list.
        Returns:
        The updated property list.