Package gnu.mapping

Class Environment

java.lang.Object
gnu.mapping.PropertySet
gnu.mapping.Environment
All Implemented Interfaces:
Named
Direct Known Subclasses:
BuiltinEnvironment, SimpleEnvironment

public abstract class Environment extends PropertySet
A mapping from EnvironmentKey to Locations. An EnvironmentKey is either a Symbol or a (Symbol, property)-pair.
  • Field Details

    • INDIRECT_DEFINES

      public static final int INDIRECT_DEFINES
      Newly defined locations are created in inherited parent environment.
      See Also:
    • curEnvironment

      protected static final gnu.mapping.Environment.InheritedLocal curEnvironment
  • Constructor Details

    • Environment

      public Environment()
  • Method Details

    • setGlobal

      public static void setGlobal(Environment env)
    • getGlobal

      public static Environment getGlobal()
    • getFlags

      public int getFlags()
    • setFlag

      public void setFlag(boolean setting, int flag)
    • getCanDefine

      public boolean getCanDefine()
      True if new bindings (non-unbound Locations) can be added.
    • setCanDefine

      public void setCanDefine(boolean canDefine)
    • getCanRedefine

      public boolean getCanRedefine()
      True if bindings can be removed or replaced by other kinds of Location.
    • setCanRedefine

      public void setCanRedefine(boolean canRedefine)
    • isLocked

      public final boolean isLocked()
      True if this environment is locked - bindings cannot be added or removed.
    • setLocked

      public void setLocked()
    • setIndirectDefines

      public final void setIndirectDefines()
    • getLocation

      public final Location getLocation(Symbol key, Object property)
      Return a location bound to (key, property). Create new unbound Location if no such Location exists.
    • getLocation

      public final Location getLocation(Symbol key)
      Return a location bound to key (and null property). Create new unbound Location if no such Location exists.
    • lookup

      public final Location lookup(Symbol key, Object property)
      Return a location bound to (key, property). Return null if no such Location exists.
    • lookup

      public abstract NamedLocation lookup(Symbol name, Object property, int hash)
    • lookup

      public final Location lookup(Symbol key)
    • getLocation

      public abstract NamedLocation getLocation(Symbol key, Object property, int hash, boolean create)
    • getLocation

      public final NamedLocation getLocation(Symbol name, Object property, boolean create)
    • getLocation

      public final Location getLocation(Object key, boolean create)
    • isBound

      public boolean isBound(Symbol key, Object property)
    • isBound

      public final boolean isBound(Symbol key)
    • containsKey

      public final boolean containsKey(Object key)
    • getChecked

      public final Object getChecked(String name)
      Get the value bound to the given name.
      Throws:
      UnboundLocationException - the name has no binding
      See Also:
    • get

      public Object get(Symbol key, Object property, Object defaultValue)
    • get

      public final Object get(EnvironmentKey key, Object defaultValue)
    • get

      public final Object get(String key, Object defaultValue)
    • get

      public Object get(Symbol sym)
    • getFunction

      public final Object getFunction(Symbol key, Object defaultValue)
    • getFunction

      public final Object getFunction(Symbol sym)
    • get

      public final Object get(Object key)
      Get the value bound to the given name. Returns null if the name has no binding (for compatibility with Java2 Collections framework).
      See Also:
    • put

      public void put(Symbol key, Object property, Object newValue)
    • define

      public abstract void define(Symbol key, Object property, Object newValue)
    • put

      public final void put(Symbol key, Object newValue)
    • put

      public final Object put(Object key, Object newValue)
    • putFunction

      public final void putFunction(Symbol key, Object newValue)
    • put

      public final Object put(String key, Object value)
    • unlink

      public Location unlink(Symbol key, Object property, int hash)
      Remove Location from this Environment. Does not explicitly undefine the location itself.
    • remove

      public Object remove(Symbol key, Object property, int hash)
      Remove Location from this Environment and undefine it.
    • remove

      public final Object remove(EnvironmentKey key)
      Remove and undefine binding.
      Returns:
      Old value
    • remove

      public final Object remove(Symbol symbol, Object property)
    • remove

      public final void remove(Symbol sym)
    • removeFunction

      public final void removeFunction(Symbol sym)
    • remove

      public final Object remove(Object key)
    • defaultNamespace

      public Namespace defaultNamespace()
    • getSymbol

      public Symbol getSymbol(String name)
    • getInstance

      public static Environment getInstance(String name)
    • enumerateLocations

      public abstract LocationEnumeration enumerateLocations()
      Does not enumerate inherited Locations.
    • enumerateAllLocations

      public abstract LocationEnumeration enumerateAllLocations()
      Does enumerate inherited Locations.
    • hasMoreElements

      protected abstract boolean hasMoreElements(LocationEnumeration it)
    • current

      @Deprecated public static Environment current()
      Deprecated.
    • getCurrent

      public static Environment getCurrent()
    • setCurrent

      public static void setCurrent(Environment env)
    • setSaveCurrent

      public static Environment setSaveCurrent(Environment env)
    • restoreCurrent

      public static void restoreCurrent(Environment saved)
    • user

      public static Environment user()
    • addLocation

      public final void addLocation(NamedLocation loc)
    • addLocation

      public abstract NamedLocation addLocation(Symbol name, Object prop, Location loc)
    • addLocation

      public final void addLocation(EnvironmentKey key, Location loc)
    • make

      public static SimpleEnvironment make()
    • make

      public static SimpleEnvironment make(String name)
    • make

      public static InheritingEnvironment make(String name, Environment parent)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toStringVerbose

      public String toStringVerbose()
      Overridden in sub-classes - useful for more verbose debug output.