Class VelocityContext

  • All Implemented Interfaces:
    java.lang.Cloneable, Context, InternalEventContext, InternalHousekeepingContext

    public class VelocityContext
    extends AbstractContext
    implements java.lang.Cloneable
    General purpose implemention 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: VelocityContext.java 898032 2010-01-11 19:51:03Z nbubna $
    See Also:
    Context
    • Field Detail

      • serialVersionUID

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

        private java.util.Map context
        Storage for key/value pairs.
    • Constructor Detail

      • VelocityContext

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

        public VelocityContext​(java.util.Map 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​(java.util.Map 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 Detail

      • internalGet

        public java.lang.Object internalGet​(java.lang.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 java.lang.Object internalPut​(java.lang.String key,
                                            java.lang.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​(java.lang.Object 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 java.lang.Object[] internalGetKeys()
        returns array of keys
        Specified by:
        internalGetKeys in class AbstractContext
        Returns:
        keys as []
      • internalRemove

        public java.lang.Object internalRemove​(java.lang.Object 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 java.lang.Object clone()
        Clones this context object.
        Overrides:
        clone in class java.lang.Object
        Returns:
        A deep copy of this Context.