Interface ValueStack

All Known Implementing Classes:
OgnlValueStack

public interface ValueStack
ValueStack allows multiple beans to be pushed in and dynamic EL expressions to be evaluated against it. When evaluating an expression, the stack will be searched down the stack, from the latest objects pushed in to the earliest, looking for a bean with a getter or setter for the given property or a method of the given name (depending on the expression being evaluated).
  • Field Details

  • Method Details

    • getContext

      Map<String,Object> getContext()
      Gets the context for this value stack. The context holds all the information in the value stack and it's surroundings.
      Returns:
      the context.
    • getActionContext

      ActionContext getActionContext()
    • setDefaultType

      void setDefaultType(Class defaultType)
      Sets the default type to convert to if no type is provided when getting a value.
      Parameters:
      defaultType - the new default type
    • setExprOverrides

      void setExprOverrides(Map<Object,Object> overrides)
      Set a override map containing key -> values that takes precedent when doing find operations on the ValueStack.

      See the unit test for ValueStackTest for examples.

      Parameters:
      overrides - overrides map.
    • getExprOverrides

      Map<Object,Object> getExprOverrides()
      Gets the override map if anyone exists.
      Returns:
      the override map, null if not set.
    • getRoot

      CompoundRoot getRoot()
      Get the CompoundRoot which holds the objects pushed onto the stack
      Returns:
      the root
    • setValue

      void setValue(String expr, Object value)
      Attempts to set a property on a bean in the stack with the given expression using the default search order.
      Parameters:
      expr - the expression defining the path to the property to be set.
      value - the value to be set into the named property
    • setParameter

      void setParameter(String expr, Object value)
      Attempts to set a property on a bean in the stack with the given expression using the default search order. N.B.: unlike #setValue(String,Object) it doesn't allow eval expression.
      Parameters:
      expr - the expression defining the path to the property to be set.
      value - the value to be set into the named property
    • setValue

      void setValue(String expr, Object value, boolean throwExceptionOnFailure)
      Attempts to set a property on a bean in the stack with the given expression using the default search order.
      Parameters:
      expr - the expression defining the path to the property to be set.
      value - the value to be set into the named property
      throwExceptionOnFailure - a flag to tell whether an exception should be thrown if there is no property with the given name.
    • findString

      String findString(String expr)
    • findString

      String findString(String expr, boolean throwExceptionOnFailure)
    • findValue

      Object findValue(String expr)
      Find a value by evaluating the given expression against the stack in the default search order.
      Parameters:
      expr - the expression giving the path of properties to navigate to find the property value to return
      Returns:
      the result of evaluating the expression
    • findValue

      Object findValue(String expr, boolean throwExceptionOnFailure)
    • findValue

      Object findValue(String expr, Class asType)
      Find a value by evaluating the given expression against the stack in the default search order.
      Parameters:
      expr - the expression giving the path of properties to navigate to find the property value to return
      asType - the type to convert the return value to
      Returns:
      the result of evaluating the expression
    • findValue

      Object findValue(String expr, Class asType, boolean throwExceptionOnFailure)
    • peek

      Object peek()
      Get the object on the top of the stack without changing the stack.
      Returns:
      the object on the top.
      See Also:
    • pop

      Object pop()
      Get the object on the top of the stack and remove it from the stack.
      Returns:
      the object on the top of the stack
      See Also:
    • push

      void push(Object o)
      Put this object onto the top of the stack
      Parameters:
      o - the object to be pushed onto the stack
      See Also:
    • set

      void set(String key, Object o)
      Sets an object on the stack with the given key so it is retrievable by findValue(String), findValue(String, Class)
      Parameters:
      key - the key
      o - the object
    • size

      int size()
      Get the number of objects in the stack
      Returns:
      the number of objects in the stack