Class VelocityContext

All Implemented Interfaces:
Serializable, Cloneable, Context, InternalEventContext

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$
Author:
Geir Magnusson Jr., Jason van Zyl, Fedor Karpelevitch, Daniel Rall
See Also:
  • 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.
    • pushCurrentTemplateName

      public void pushCurrentTemplateName(String s)
      set the current template name on top of stack
      Parameters:
      s - current template name
    • popCurrentTemplateName

      public void popCurrentTemplateName()
      remove the current template name from stack
    • getCurrentTemplateName

      public String getCurrentTemplateName()
      get the current template name
      Returns:
      String current template name
    • getTemplateNameStack

      public String[] getTemplateNameStack()
      get the current template name stack
      Returns:
      String[] with the template name stack contents.
    • pushCurrentMacroName

      public void pushCurrentMacroName(String s)
      set the current macro name on top of stack
      Parameters:
      s - current macro name
    • popCurrentMacroName

      public void popCurrentMacroName()
      remove the current macro name from stack
    • getCurrentMacroName

      public String getCurrentMacroName()
      get the current macro name
      Returns:
      String current macro name
    • getCurrentMacroCallDepth

      public int getCurrentMacroCallDepth()
      get the current macro call depth
      Returns:
      int current macro call depth
    • getMacroNameStack

      public String[] getMacroNameStack()
      get the current macro name stack
      Returns:
      String[] with the macro name stack contents.
    • icacheGet

      public IntrospectionCacheData icacheGet(Object key)
      returns an IntrospectionCache Data (@see IntrospectionCacheData) object if exists for the key
      Parameters:
      key - key to find in cache
      Returns:
      cache object
    • icachePut

      public void icachePut(Object key, IntrospectionCacheData o)
      places an IntrospectionCache Data (@see IntrospectionCacheData) element in the cache for specified key
      Parameters:
      key - key
      o - IntrospectionCacheData object to place in cache
    • setCurrentResource

      public void setCurrentResource(Resource r)
      See Also:
      • InternalHousekeepingContext.setCurrentResource(org.apache.velocity.runtime.resource.Resource)
    • getCurrentResource

      public Resource getCurrentResource()
      See Also:
      • InternalHousekeepingContext.getCurrentResource()
    • setMacroLibraries

      public void setMacroLibraries(List<Template> macroLibraries)
      See Also:
      • InternalHousekeepingContext.setMacroLibraries(List)
    • getMacroLibraries

      public List<Template> getMacroLibraries()
      See Also:
      • InternalHousekeepingContext.getMacroLibraries()
    • attachEventCartridge

      public EventCartridge attachEventCartridge(EventCartridge ec)
      Specified by:
      attachEventCartridge in interface InternalEventContext
      Parameters:
      ec -
      Returns:
      The old EventCartridge.
      See Also:
    • getEventCartridge

      public EventCartridge getEventCartridge()
      Specified by:
      getEventCartridge in interface InternalEventContext
      Returns:
      The current EventCartridge.
      See Also: