com.opensymphony.xwork2.util
Class OgnlValueStack

java.lang.Object
  extended by com.opensymphony.xwork2.util.OgnlValueStack
All Implemented Interfaces:
ClearableValueStack, MemberAccessValueStack, ValueStack, Serializable

public class OgnlValueStack
extends Object
implements Serializable, ValueStack, ClearableValueStack, MemberAccessValueStack

Ognl implementation of a value stack that allows for dynamic Ognl 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).

Version:
$Date: 2008-08-21 23:37:11 +0200 (Thu, 21 Aug 2008) $ $Id: OgnlValueStack.java 1857 2008-08-21 21:37:11Z musachy $
Author:
Patrick Lightbody, tm_jee
See Also:
Serialized Form

Nested Class Summary
static class OgnlValueStack.ObjectAccessor
           
 
Field Summary
 
Fields inherited from interface com.opensymphony.xwork2.util.ValueStack
REPORT_ERRORS_ON_NO_PROP, VALUE_STACK
 
Constructor Summary
OgnlValueStack()
           
OgnlValueStack(ValueStack vs)
           
 
Method Summary
 void clearContextValues()
          Remove all values from the context
 String findString(String expr)
           
 Object findValue(String expr)
          Find a value by evaluating the given expression against the stack in the default search order.
 Object findValue(String expr, Class asType)
          Find a value by evaluating the given expression against the stack in the default search order.
static CompoundRootAccessor getAccessor()
           
 Map getContext()
           
 Map getExprOverrides()
           
 CompoundRoot getRoot()
          Get the CompoundRoot which holds the objects pushed onto the stack
static void link(Map context, Class clazz, String name)
           
 Object peek()
          Get the object on the top of the stack without changing the stack.
 Object pop()
          Get the object on the top of the stack and remove it from the stack.
 void push(Object o)
          Put this object onto the top of the stack
static void reset()
           
 void set(String key, Object o)
          Sets an object on the stack with the given key so it is retrievable by findValue(key,...)
 void setAcceptProperties(Set<Pattern> acceptedProperties)
           
static void setAllowStaticMethodAccess(boolean allowStaticMethodAccess)
           
 void setDefaultType(Class defaultType)
          Sets the default type to convert to if no type is provided when getting a value.
static void setDevMode(String mode)
           
 void setExcludeProperties(Set<Pattern> excludeProperties)
           
 void setExprOverrides(Map overrides)
           
 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.
 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.
 int size()
          Get the number of objects in the stack s
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OgnlValueStack

public OgnlValueStack()

OgnlValueStack

public OgnlValueStack(ValueStack vs)
Method Detail

reset

public static void reset()

link

public static void link(Map context,
                        Class clazz,
                        String name)

getAccessor

public static CompoundRootAccessor getAccessor()

setDevMode

public static void setDevMode(String mode)

setAllowStaticMethodAccess

public static void setAllowStaticMethodAccess(boolean allowStaticMethodAccess)

getContext

public Map getContext()
Specified by:
getContext in interface ValueStack

setDefaultType

public void setDefaultType(Class defaultType)
Description copied from interface: ValueStack
Sets the default type to convert to if no type is provided when getting a value.

Specified by:
setDefaultType in interface ValueStack

setExprOverrides

public void setExprOverrides(Map overrides)
Specified by:
setExprOverrides in interface ValueStack

getExprOverrides

public Map getExprOverrides()
Specified by:
getExprOverrides in interface ValueStack

getRoot

public CompoundRoot getRoot()
Description copied from interface: ValueStack
Get the CompoundRoot which holds the objects pushed onto the stack

Specified by:
getRoot in interface ValueStack

setValue

public void setValue(String expr,
                     Object value)
Description copied from interface: ValueStack
Attempts to set a property on a bean in the stack with the given expression using the default search order.

Specified by:
setValue in interface ValueStack
Parameters:
expr - the expression defining the path to the property to be set.
value - the value to be set into the neamed property

setValue

public void setValue(String expr,
                     Object value,
                     boolean throwExceptionOnFailure)
Description copied from interface: ValueStack
Attempts to set a property on a bean in the stack with the given expression using the default search order.

Specified by:
setValue in interface ValueStack
Parameters:
expr - the expression defining the path to the property to be set.
value - the value to be set into the neamed property
throwExceptionOnFailure - a flag to tell whether an exception should be thrown if there is no property with the given name.

findString

public String findString(String expr)
Specified by:
findString in interface ValueStack

findValue

public Object findValue(String expr)
Description copied from interface: ValueStack
Find a value by evaluating the given expression against the stack in the default search order.

Specified by:
findValue in interface ValueStack
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

public Object findValue(String expr,
                        Class asType)
Description copied from interface: ValueStack
Find a value by evaluating the given expression against the stack in the default search order.

Specified by:
findValue in interface ValueStack
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

peek

public Object peek()
Description copied from interface: ValueStack
Get the object on the top of the stack without changing the stack.

Specified by:
peek in interface ValueStack
See Also:
CompoundRoot.peek()

pop

public Object pop()
Description copied from interface: ValueStack
Get the object on the top of the stack and remove it from the stack.

Specified by:
pop in interface ValueStack
Returns:
the object on the top of the stack
See Also:
CompoundRoot.pop()

push

public void push(Object o)
Description copied from interface: ValueStack
Put this object onto the top of the stack

Specified by:
push in interface ValueStack
Parameters:
o - the object to be pushed onto the stack
See Also:
CompoundRoot.push(Object)

set

public void set(String key,
                Object o)
Description copied from interface: ValueStack
Sets an object on the stack with the given key so it is retrievable by findValue(key,...)

Specified by:
set in interface ValueStack

size

public int size()
Description copied from interface: ValueStack
Get the number of objects in the stack s

Specified by:
size in interface ValueStack
Returns:
the number of objects in the stack

clearContextValues

public void clearContextValues()
Description copied from interface: ClearableValueStack
Remove all values from the context

Specified by:
clearContextValues in interface ClearableValueStack

setAcceptProperties

public void setAcceptProperties(Set<Pattern> acceptedProperties)
Specified by:
setAcceptProperties in interface MemberAccessValueStack

setExcludeProperties

public void setExcludeProperties(Set<Pattern> excludeProperties)
Specified by:
setExcludeProperties in interface MemberAccessValueStack


Copyright © 2008 OpenSymphony. All Rights Reserved.