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
private static CompoundRootAccessor accessor
           
private static boolean allowStaticMethodAccess
           
(package private)  Map context
           
(package private)  Class defaultType
           
private static boolean devMode
           
private static Log LOG
           
private static String MAP_IDENTIFIER_KEY
           
(package private)  Map overrides
           
(package private)  CompoundRoot root
           
(package private)  SecurityMemberAccess securityMemberAccess
           
private static long serialVersionUID
           
 
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
private  Object findInContext(String name)
           
 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)
           
private  void logLookupFailure(String expr, Exception e)
          Log a failed lookup, being more verbose when devMode=true.
 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
private  Object readResolve()
           
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)
           
private  void setRoot(CompoundRoot compoundRoot)
           
 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
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

accessor

private static CompoundRootAccessor accessor

LOG

private static Log LOG

devMode

private static boolean devMode

allowStaticMethodAccess

private static boolean allowStaticMethodAccess

root

CompoundRoot root

context

transient Map context

defaultType

Class defaultType

overrides

Map overrides

securityMemberAccess

transient SecurityMemberAccess securityMemberAccess

MAP_IDENTIFIER_KEY

private static final String MAP_IDENTIFIER_KEY
See Also:
Constant Field Values
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

findInContext

private Object findInContext(String name)

logLookupFailure

private void logLookupFailure(String expr,
                              Exception e)
Log a failed lookup, being more verbose when devMode=true.

Parameters:
expr - The failed expression
e - The thrown exception.

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

setRoot

private void setRoot(CompoundRoot compoundRoot)

readResolve

private Object readResolve()

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 © 2000-2008 Apache Software Foundation. All Rights Reserved.