Class VelocityContext

All Implemented Interfaces:
Serializable, Cloneable, Context, InternalEventContext, InternalHousekeepingContext

public class VelocityContext extends AbstractContext implements Cloneable, Serializable
General purpose implementation of the application Context interface for general application use. This class should be used in place of the original Context class. This implementation uses a HashMap (@see java.util.HashMap ) for data storage. This context implementation cannot be shared between threads without those threads synchronizing access between them, as the HashMap is not synchronized, nor are some of the fundamentals of AbstractContext. If you need to share a Context between threads with simultaneous access for some reason, please create your own and extend the interface Context
Version:
$Id$
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Version Id for serializable
      See Also:
    • context

      private Map<String,Object> context
      Storage for key/value pairs.
  • Constructor Details

    • VelocityContext

      public VelocityContext()
      Creates a new instance (with no inner context).
    • VelocityContext

      public VelocityContext(Map<String,Object> context)
      Creates a new instance with the provided storage (and no inner context).
      Parameters:
      context -
    • VelocityContext

      public VelocityContext(Context innerContext)
      Chaining constructor, used when you want to wrap a context in another. The inner context will be 'read only' - put() calls to the wrapping context will only effect the outermost context
      Parameters:
      innerContext - The Context implementation to wrap.
    • VelocityContext

      public VelocityContext(Map<String,Object> context, Context innerContext)
      Initializes internal storage (never to null), and inner context.
      Parameters:
      context - Internal storage, or null to create default storage.
      innerContext - Inner context.
  • Method Details

    • internalGet

      public Object internalGet(String key)
      retrieves value for key from internal storage
      Specified by:
      internalGet in class AbstractContext
      Parameters:
      key - name of value to get
      Returns:
      value as object
    • internalPut

      public Object internalPut(String key, Object value)
      stores the value for key to internal storage
      Specified by:
      internalPut in class AbstractContext
      Parameters:
      key - name of value to store
      value - value to store
      Returns:
      previous value of key as Object
    • internalContainsKey

      public boolean internalContainsKey(String key)
      determines if there is a value for the given key
      Specified by:
      internalContainsKey in class AbstractContext
      Parameters:
      key - name of value to check
      Returns:
      true if non-null value in store
    • internalGetKeys

      public String[] internalGetKeys()
      returns array of keys
      Specified by:
      internalGetKeys in class AbstractContext
      Returns:
      keys as []
    • internalRemove

      public Object internalRemove(String key)
      remove a key/value pair from the internal storage
      Specified by:
      internalRemove in class AbstractContext
      Parameters:
      key - name of value to remove
      Returns:
      value removed
    • clone

      public Object clone()
      Clones this context object.
      Overrides:
      clone in class Object
      Returns:
      A shallow copy of this Context.