com.opensymphony.xwork2.ognl
Class OgnlUtil

java.lang.Object
  extended by com.opensymphony.xwork2.ognl.OgnlUtil

public class OgnlUtil
extends Object

Utility class that provides common access to the Ognl APIs for setting and getting properties from objects (usually Actions).

Author:
Jason Carreira

Field Summary
private  ConcurrentHashMap<Class,BeanInfo> beanInfoCache
           
private  ognl.TypeConverter defaultConverter
           
private  ConcurrentHashMap<String,Object> expressions
           
private static Logger LOG
           
 
Constructor Summary
OgnlUtil()
           
 
Method Summary
 Object compile(String expression)
           
 void copy(Object from, Object to, Map context)
          Copies the properties in the object "from" and sets them in the object "to" using specified type converter, or XWorkConverter if none is specified.
 void copy(Object from, Object to, Map context, Collection exclusions, Collection inclusions)
          Copies the properties in the object "from" and sets them in the object "to" using specified type converter, or XWorkConverter if none is specified.
 BeanInfo getBeanInfo(Class clazz)
          Get's the java bean info for the given source.
 BeanInfo getBeanInfo(Object from)
          Get's the java bean info for the given source object.
 Map getBeanMap(Object source)
          Creates a Map with read properties for the given source object.
 PropertyDescriptor[] getPropertyDescriptors(Class clazz)
          Get's the java beans property descriptors for the given class.
 PropertyDescriptor[] getPropertyDescriptors(Object source)
          Get's the java beans property descriptors for the given source.
 Object getRealTarget(String property, Map context, Object root)
          Looks for the real target with the specified property given a root Object which may be a CompoundRoot.
(package private)  ognl.TypeConverter getTypeConverterFromContext(Map context)
           
 Object getValue(String name, Map context, Object root)
           
 Object getValue(String name, Map context, Object root, Class resultType)
           
(package private)  void internalSetProperty(String name, Object value, Object o, Map context, boolean throwPropertyExceptions)
           
 void setProperties(Map properties, Object o)
          Sets the properties on the object using the default context, defaulting to not throwing exceptions for problems setting the properties.
 void setProperties(Map properties, Object o, boolean throwPropertyExceptions)
          Sets the properties on the object using the default context.
 void setProperties(Map props, Object o, Map context)
          Sets the object's properties using the default type converter, defaulting to not throw exceptions for problems setting the properties.
 void setProperties(Map props, Object o, Map context, boolean throwPropertyExceptions)
          Sets the object's properties using the default type converter.
 void setProperty(String name, Object value, Object o, Map context)
          Sets the named property to the supplied value on the Object, defaults to not throwing property exceptions.
 void setProperty(String name, Object value, Object o, Map context, boolean throwPropertyExceptions)
          Sets the named property to the supplied value on the Object.
 void setValue(String name, Map context, Object root, Object value)
          Wrapper around Ognl.setValue() to handle type conversion for collection elements.
 void setXWorkConverter(XWorkConverter conv)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG

private static final Logger LOG

expressions

private ConcurrentHashMap<String,Object> expressions

beanInfoCache

private ConcurrentHashMap<Class,BeanInfo> beanInfoCache

defaultConverter

private ognl.TypeConverter defaultConverter
Constructor Detail

OgnlUtil

public OgnlUtil()
Method Detail

setXWorkConverter

public void setXWorkConverter(XWorkConverter conv)

setProperties

public void setProperties(Map props,
                          Object o,
                          Map context)
Sets the object's properties using the default type converter, defaulting to not throw exceptions for problems setting the properties.

Parameters:
props - the properties being set
o - the object
context - the action context

setProperties

public void setProperties(Map props,
                          Object o,
                          Map context,
                          boolean throwPropertyExceptions)
Sets the object's properties using the default type converter.

Parameters:
props - the properties being set
o - the object
context - the action context
throwPropertyExceptions - boolean which tells whether it should throw exceptions for problems setting the properties

setProperties

public void setProperties(Map properties,
                          Object o)
Sets the properties on the object using the default context, defaulting to not throwing exceptions for problems setting the properties.

Parameters:
properties -
o -

setProperties

public void setProperties(Map properties,
                          Object o,
                          boolean throwPropertyExceptions)
Sets the properties on the object using the default context.

Parameters:
properties - the property map to set on the object
o - the object to set the properties into
throwPropertyExceptions - boolean which tells whether it should throw exceptions for problems setting the properties

setProperty

public void setProperty(String name,
                        Object value,
                        Object o,
                        Map context)
Sets the named property to the supplied value on the Object, defaults to not throwing property exceptions.

Parameters:
name - the name of the property to be set
value - the value to set into the named property
o - the object upon which to set the property
context - the context which may include the TypeConverter

setProperty

public void setProperty(String name,
                        Object value,
                        Object o,
                        Map context,
                        boolean throwPropertyExceptions)
Sets the named property to the supplied value on the Object.

Parameters:
name - the name of the property to be set
value - the value to set into the named property
o - the object upon which to set the property
context - the context which may include the TypeConverter
throwPropertyExceptions - boolean which tells whether it should throw exceptions for problems setting the property

getRealTarget

public Object getRealTarget(String property,
                            Map context,
                            Object root)
                     throws ognl.OgnlException
Looks for the real target with the specified property given a root Object which may be a CompoundRoot.

Returns:
the real target or null if no object can be found with the specified property
Throws:
ognl.OgnlException

setValue

public void setValue(String name,
                     Map context,
                     Object root,
                     Object value)
              throws ognl.OgnlException
Wrapper around Ognl.setValue() to handle type conversion for collection elements. Ideally, this should be handled by OGNL directly.

Throws:
ognl.OgnlException

getValue

public Object getValue(String name,
                       Map context,
                       Object root)
                throws ognl.OgnlException
Throws:
ognl.OgnlException

getValue

public Object getValue(String name,
                       Map context,
                       Object root,
                       Class resultType)
                throws ognl.OgnlException
Throws:
ognl.OgnlException

compile

public Object compile(String expression)
               throws ognl.OgnlException
Throws:
ognl.OgnlException

copy

public void copy(Object from,
                 Object to,
                 Map context,
                 Collection exclusions,
                 Collection inclusions)
Copies the properties in the object "from" and sets them in the object "to" using specified type converter, or XWorkConverter if none is specified.

Parameters:
from - the source object
to - the target object
context - the action context we're running under
exclusions - collection of method names to excluded from copying ( can be null)
inclusions - collection of method names to included copying (can be null) note if exclusions AND inclusions are supplied and not null nothing will get copied.

copy

public void copy(Object from,
                 Object to,
                 Map context)
Copies the properties in the object "from" and sets them in the object "to" using specified type converter, or XWorkConverter if none is specified.

Parameters:
from - the source object
to - the target object
context - the action context we're running under

getPropertyDescriptors

public PropertyDescriptor[] getPropertyDescriptors(Object source)
                                            throws IntrospectionException
Get's the java beans property descriptors for the given source.

Parameters:
source - the source object.
Returns:
property descriptors.
Throws:
IntrospectionException - is thrown if an exception occurs during introspection.

getPropertyDescriptors

public PropertyDescriptor[] getPropertyDescriptors(Class clazz)
                                            throws IntrospectionException
Get's the java beans property descriptors for the given class.

Parameters:
clazz - the source object.
Returns:
property descriptors.
Throws:
IntrospectionException - is thrown if an exception occurs during introspection.

getBeanMap

public Map getBeanMap(Object source)
               throws IntrospectionException,
                      ognl.OgnlException
Creates a Map with read properties for the given source object.

If the source object does not have a read property (i.e. write-only) then the property is added to the map with the value here is no read method for property-name.

Parameters:
source - the source object.
Returns:
a Map with (key = read property name, value = value of read property).
Throws:
IntrospectionException - is thrown if an exception occurs during introspection.
ognl.OgnlException - is thrown by OGNL if the property value could not be retrieved

getBeanInfo

public BeanInfo getBeanInfo(Object from)
                     throws IntrospectionException
Get's the java bean info for the given source object. Calls getBeanInfo(Class c).

Parameters:
from - the source object.
Returns:
java bean info.
Throws:
IntrospectionException - is thrown if an exception occurs during introspection.

getBeanInfo

public BeanInfo getBeanInfo(Class clazz)
                     throws IntrospectionException
Get's the java bean info for the given source.

Parameters:
clazz - the source class.
Returns:
java bean info.
Throws:
IntrospectionException - is thrown if an exception occurs during introspection.

internalSetProperty

void internalSetProperty(String name,
                         Object value,
                         Object o,
                         Map context,
                         boolean throwPropertyExceptions)

getTypeConverterFromContext

ognl.TypeConverter getTypeConverterFromContext(Map context)


Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.