Package ognl
Class OgnlRuntime
java.lang.Object
ognl.OgnlRuntime
Utility class used by internal OGNL API to do various things like:
- Handles majority of reflection logic / caching.
- Utility methods for casting strings / various numeric types used by
OgnlExpressionCompiler.</li. - Core runtime configuration point for setting/using global
TypeConverter/OgnlExpressionCompiler/NullHandlerinstances / etc..
- Author:
- Luke Blanshard (blanshlu@netscape.net), Drew Davidson (drew@ognl.org)
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic intJavaBeans IndexedPropertystatic intNot an indexed propertystatic intOGNL ObjectIndexedPropertystatic final Object[]static final Class[]static final ObjectToken returned by TypeConverter for no conversion possiblestatic final ObjectConstant expression used to indicate that a given method / property couldn't be found during reflection operations.static final Liststatic final Mapstatic final StringConstant string representation of null string. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic booleanareArgsCompatible(Object[] args, Class[] classes) Tells whether the given array of objects is compatible with the given array of classes---that is, whether the given array of objects can be passed as arguments to a method or constructor whose parameter types are the given array of classes.static booleanareArgsCompatible(Object[] args, Class[] classes, Method m) static ObjectcallAppropriateMethod(OgnlContext context, Object source, Object target, String methodName, String propertyName, List methods, Object[] args) static ObjectcallConstructor(OgnlContext context, String className, Object[] args) static ObjectcallMethod(OgnlContext context, Object target, String methodName, Object[] args) Invokes the specified method against the target object.static ObjectcallMethod(OgnlContext context, Object target, String methodName, String propertyName, Object[] args) Deprecated.static ObjectcallStaticMethod(OgnlContext context, String className, String methodName, Object[] args) static ClassclassForName(OgnlContext context, String className) static voidClears all of the cached reflection information normally used to improve the speed of expressions that operate on the same classes or are executed multiple times.static voidcompileExpression(OgnlContext context, Node expression, Object root) static Class[]findParameterTypes(Class type, Method m) static MethodgetAppropriateMethod(OgnlContext context, Object source, Object target, String propertyName, List methods, Object[] args, Object[] actualArgs) Gets the appropriate method to be called for the given target, method name and arguments.static final ClassgetArgClass(Object arg) Gets the class for a method argument that is appropriate for looking up methods by reflection, by looking for the standard primitive wrapper classes and exchanging for them their underlying primitive class objects.static StringReturns the base name (the class name without the package name prepended) of the object given.static StringgetChildSource(OgnlContext context, Object target, Node child) Attempts to get the java source string represented by the specific child expression via theJavaSource.toGetSourceString(OgnlContext,Object)interface method.static StringgetChildSource(OgnlContext context, Object target, Node child, boolean forceConversion) Attempts to get the java source string represented by the specific child expression via theJavaSource.toGetSourceString(OgnlContext,Object)interface method.static StringReturns the base name (the class name without the package name prepended) of the class given.static StringgetClassName(Class c, boolean fullyQualified) static StringgetClassName(Object o, boolean fullyQualified) static StringReturns the package name of the class given.static OgnlExpressionCompilerstatic ListgetConstructors(Class targetClass) static ConstructorgetConvertedConstructorAndArgs(OgnlContext context, Object target, List constructors, Object[] args, Object[] newArgs) static MethodgetConvertedMethodAndArgs(OgnlContext context, Object target, String propertyName, List methods, Object[] args, Object[] newArgs) static ObjectgetConvertedType(OgnlContext context, Object target, Member member, String propertyName, Object value, Class type) static booleangetConvertedTypes(OgnlContext context, Object target, Member member, String propertyName, Class[] parameterTypes, Object[] args, Object[] newArgs) static ListgetDeclaredMethods(Class targetClass, String propertyName, boolean findSets) static ElementsAccessorgetElementsAccessor(Class cls) static EvaluationPoolstatic Fieldstatic Mapstatic ObjectgetFieldValue(OgnlContext context, Object target, String propertyName) static ObjectgetFieldValue(OgnlContext context, Object target, String propertyName, boolean checkAccessAndExistence) static MethodgetGetMethod(OgnlContext context, Class targetClass, String propertyName) static ObjectgetIndexedProperty(OgnlContext context, Object source, String name, Object index) static intgetIndexedPropertyType(OgnlContext context, Class sourceClass, String name) Determines the index property type, if any.static MethodgetMethod(OgnlContext context, Class target, String name, Node[] children, boolean includeStatic) static MethodAccessorgetMethodAccessor(Class cls) static MapgetMethods(Class targetClass, boolean staticMethods) static ListgetMethods(Class targetClass, String name, boolean staticMethods) static final ObjectgetMethodValue(OgnlContext context, Object target, String propertyName) static final ObjectgetMethodValue(OgnlContext context, Object target, String propertyName, boolean checkAccessAndExistence) If the checkAccessAndExistence flag is true this method will check to see if the method exists and if it is accessible according to the context's MemberAccess.static StringgetModifierString(int modifiers) static NullHandlergetNullHandler(Class cls) static StringgetNumericCast(Class type) static ObjectgetNumericDefaultValue(Class forClass) static StringgetNumericLiteral(Class type) static StringgetNumericValueGetter(Class type) static ObjectArrayPoolstatic StringReturns the package name of the object's class.static Class[]Returns the parameter types of the given method.static Class[]Returns the parameter types of the given method.static PermissiongetPermission(Method method) Permission will be named "invoke.<declaring-class>.<method-name>".static StringgetPointerString(int num) Returns a "pointer" string in the usual format for these things - 0x. static StringReturns a "pointer" string in the usual format for these things - 0xfor the object given. static ObjectgetPrimitiveDefaultValue(Class forClass) static ClassgetPrimitiveWrapperClass(Class primitiveClass) static PropertyDescriptorgetProperty(Class target, String name) static ObjectgetProperty(OgnlContext context, Object source, Object name) static PropertyAccessorgetPropertyAccessor(Class cls) static PropertyDescriptorgetPropertyDescriptor(Class targetClass, String propertyName) This method returns a PropertyDescriptor for the given class and property name using a Map lookup (using getPropertyDescriptorsMap()).static PropertyDescriptorgetPropertyDescriptorFromArray(Class targetClass, String name) Gets the property descriptor with the given name for the target class given.static MapgetPropertyDescriptors(Class targetClass) This method returns the property descriptors for the given class as a Map.static PropertyDescriptor[]getPropertyDescriptorsArray(Class targetClass) static MethodgetReadMethod(Class target, String name) Finds the best possible match for a method on the specified target class with a matching name.static MethodgetReadMethod(Class target, String name, int numParms) static SecurityManagerGets the SecurityManager that OGNL uses to determine permissions for invoking methods.static MethodgetSetMethod(OgnlContext context, Class targetClass, String propertyName) static ObjectgetStaticField(OgnlContext context, String className, String fieldName) static ClassGets the "target" class of an object for looking up accessors that are registered on the target.static StringgetUniqueDescriptor(Object object) Returns a unique descriptor string that includes the object's class' base name and a unique integer identifier.static StringgetUniqueDescriptor(Object object, boolean fullyQualified) Returns a unique descriptor string that includes the object's class and a unique integer identifier.static MethodgetWriteMethod(Class target, String name) static MethodgetWriteMethod(Class target, String name, int numParms) static booleanhasField(OgnlContext context, Object target, Class inClass, String propertyName) static booleanhasGetMethod(OgnlContext context, Object target, Class targetClass, String propertyName) static final booleanhasGetProperty(OgnlContext context, Object target, Object oname) static final booleanhasSetMethod(OgnlContext context, Object target, Class targetClass, String propertyName) static final booleanhasSetProperty(OgnlContext context, Object target, Object oname) static ObjectinvokeMethod(Object target, Method method, Object[] argsArray) static booleanstatic booleanisFieldAccessible(OgnlContext context, Object target, Class inClass, String propertyName) static booleanisFieldAccessible(OgnlContext context, Object target, Field field, String propertyName) static booleanisInstance(OgnlContext context, Object value, String className) static booleanisJdk15()Checks if the current jvm is java language >= 1.5 compatible.static booleanisMethodAccessible(OgnlContext context, Object target, Method method, String propertyName) static final booleanisMoreSpecific(Class[] classes1, Class[] classes2) Tells whether the first array of classes is more specific than the second.static final booleanisTypeCompatible(Object object, Class c) Tells whether the given object is compatible with the given class ---that is, whether the given object can be passed as an argument to a method or constructor whose parameter type is the given class.static voidsetClassCacheInspector(ClassCacheInspector inspector) Registers the specifiedClassCacheInspectorwith all class reflection based internal caches.static voidsetCompiler(OgnlExpressionCompiler compiler) static voidsetElementsAccessor(Class cls, ElementsAccessor accessor) static booleansetFieldValue(OgnlContext context, Object target, String propertyName, Object value) static voidsetIndexedProperty(OgnlContext context, Object source, String name, Object index, Object value) static voidsetMethodAccessor(Class cls, MethodAccessor accessor) static booleansetMethodValue(OgnlContext context, Object target, String propertyName, Object value) static booleansetMethodValue(OgnlContext context, Object target, String propertyName, Object value, boolean checkAccessAndExistence) static voidsetNullHandler(Class cls, NullHandler handler) static voidsetProperty(OgnlContext context, Object target, Object name, Object value) static voidsetPropertyAccessor(Class cls, PropertyAccessor accessor) static voidSets the SecurityManager that OGNL uses to determine permissions for invoking methods.static booleanshouldConvertNumericTypes(OgnlContext context) Compares theOgnlContext.getCurrentType()andOgnlContext.getPreviousType()class types on the stack to determine if a numeric expression should force object conversion.static Object[]Utility to convert a List into an Object[] array.
-
Field Details
-
NotFound
Constant expression used to indicate that a given method / property couldn't be found during reflection operations. -
NotFoundList
-
NotFoundMap
-
NoArguments
-
NoArgumentTypes
-
NoConversionPossible
Token returned by TypeConverter for no conversion possible -
INDEXED_PROPERTY_NONE
public static int INDEXED_PROPERTY_NONENot an indexed property -
INDEXED_PROPERTY_INT
public static int INDEXED_PROPERTY_INTJavaBeans IndexedProperty -
INDEXED_PROPERTY_OBJECT
public static int INDEXED_PROPERTY_OBJECTOGNL ObjectIndexedProperty -
NULL_STRING
Constant string representation of null string.
-
-
Constructor Details
-
OgnlRuntime
public OgnlRuntime()
-
-
Method Details
-
clearCache
public static void clearCache()Clears all of the cached reflection information normally used to improve the speed of expressions that operate on the same classes or are executed multiple times.Warning: Calling this too often can be a huge performance drain on your expressions - use with care.
-
isJdk15
public static boolean isJdk15()Checks if the current jvm is java language >= 1.5 compatible.- Returns:
- True if jdk15 features are present.
-
getNumericValueGetter
-
getPrimitiveWrapperClass
-
getNumericCast
-
getNumericLiteral
-
setCompiler
-
getCompiler
-
compileExpression
public static void compileExpression(OgnlContext context, Node expression, Object root) throws Exception - Throws:
Exception
-
getTargetClass
Gets the "target" class of an object for looking up accessors that are registered on the target. If the object is a Class object this will return the Class itself, else it will return object's getClass() result. -
getBaseName
Returns the base name (the class name without the package name prepended) of the object given. -
getClassBaseName
Returns the base name (the class name without the package name prepended) of the class given. -
getClassName
-
getClassName
-
getPackageName
Returns the package name of the object's class. -
getClassPackageName
Returns the package name of the class given. -
getPointerString
Returns a "pointer" string in the usual format for these things - 0x. -
getPointerString
Returns a "pointer" string in the usual format for these things - 0xfor the object given. This will always return a unique value for each object. -
getUniqueDescriptor
Returns a unique descriptor string that includes the object's class and a unique integer identifier. If fullyQualified is true then the class name will be fully qualified to include the package name, else it will be just the class' base name. -
getUniqueDescriptor
Returns a unique descriptor string that includes the object's class' base name and a unique integer identifier. -
toArray
Utility to convert a List into an Object[] array. If the list is zero elements this will return a constant array; toArray() on List always returns a new object and this is wasteful for our purposes. -
getParameterTypes
Returns the parameter types of the given method. -
findParameterTypes
Finds the appropriate parameter types for the givenMethodandClassinstance of the type the method is associated with. Correctly finds generic types if running in >= 1.5 jre as well.- Parameters:
type- The class type the method is being executed against.m- The method to find types for.- Returns:
- Array of parameter types for the given method.
-
getParameterTypes
Returns the parameter types of the given method. -
getSecurityManager
Gets the SecurityManager that OGNL uses to determine permissions for invoking methods.- Returns:
- SecurityManager for OGNL
-
setSecurityManager
Sets the SecurityManager that OGNL uses to determine permissions for invoking methods.- Parameters:
value- SecurityManager to set
-
getPermission
Permission will be named "invoke.<declaring-class>.<method-name>". -
invokeMethod
public static Object invokeMethod(Object target, Method method, Object[] argsArray) throws InvocationTargetException, IllegalAccessException -
getArgClass
Gets the class for a method argument that is appropriate for looking up methods by reflection, by looking for the standard primitive wrapper classes and exchanging for them their underlying primitive class objects. Other classes are passed through unchanged.- Parameters:
arg- an object that is being passed to a method- Returns:
- the class to use to look up the method
-
isTypeCompatible
Tells whether the given object is compatible with the given class ---that is, whether the given object can be passed as an argument to a method or constructor whose parameter type is the given class. If object is null this will return true because null is compatible with any type. -
areArgsCompatible
Tells whether the given array of objects is compatible with the given array of classes---that is, whether the given array of objects can be passed as arguments to a method or constructor whose parameter types are the given array of classes. -
areArgsCompatible
-
isMoreSpecific
Tells whether the first array of classes is more specific than the second. Assumes that the two arrays are of the same length. -
getModifierString
-
classForName
public static Class classForName(OgnlContext context, String className) throws ClassNotFoundException - Throws:
ClassNotFoundException
-
isInstance
public static boolean isInstance(OgnlContext context, Object value, String className) throws OgnlException - Throws:
OgnlException
-
getPrimitiveDefaultValue
-
getNumericDefaultValue
-
getConvertedType
-
getConvertedTypes
-
getConvertedMethodAndArgs
-
getConvertedConstructorAndArgs
public static Constructor getConvertedConstructorAndArgs(OgnlContext context, Object target, List constructors, Object[] args, Object[] newArgs) -
getAppropriateMethod
public static Method getAppropriateMethod(OgnlContext context, Object source, Object target, String propertyName, List methods, Object[] args, Object[] actualArgs) Gets the appropriate method to be called for the given target, method name and arguments. If successful this method will return the Method within the target that can be called and the converted arguments in actualArgs. If unsuccessful this method will return null and the actualArgs will be empty.- Parameters:
context- The current execution context.source- Target object to run against or method name.target- Instance of object to be run against.propertyName- Name of property to get method of.methods- List of current known methods.args- Arguments originally passed in.actualArgs- Converted arguments.- Returns:
- Best method match or null if none could be found.
-
callAppropriateMethod
public static Object callAppropriateMethod(OgnlContext context, Object source, Object target, String methodName, String propertyName, List methods, Object[] args) throws MethodFailedException - Throws:
MethodFailedException
-
callStaticMethod
public static Object callStaticMethod(OgnlContext context, String className, String methodName, Object[] args) throws OgnlException - Throws:
OgnlException
-
callMethod
public static Object callMethod(OgnlContext context, Object target, String methodName, String propertyName, Object[] args) throws OgnlException Deprecated.UsecallMethod(OgnlContext, Object, String, Object[])instead.Invokes the specified method against the target object.- Parameters:
context- The current execution context.target- The object to invoke the method on.methodName- Name of the method - as in "getValue" or "add", etc..propertyName- Name of the property to call instead?args- Optional arguments needed for method.- Returns:
- Result of invoking method.
- Throws:
OgnlException- For lots of different reasons.
-
callMethod
public static Object callMethod(OgnlContext context, Object target, String methodName, Object[] args) throws OgnlException Invokes the specified method against the target object.- Parameters:
context- The current execution context.target- The object to invoke the method on.methodName- Name of the method - as in "getValue" or "add", etc..args- Optional arguments needed for method.- Returns:
- Result of invoking method.
- Throws:
OgnlException- For lots of different reasons.
-
callConstructor
public static Object callConstructor(OgnlContext context, String className, Object[] args) throws OgnlException - Throws:
OgnlException
-
getMethodValue
public static final Object getMethodValue(OgnlContext context, Object target, String propertyName) throws OgnlException, IllegalAccessException, NoSuchMethodException, IntrospectionException -
getMethodValue
public static final Object getMethodValue(OgnlContext context, Object target, String propertyName, boolean checkAccessAndExistence) throws OgnlException, IllegalAccessException, NoSuchMethodException, IntrospectionException If the checkAccessAndExistence flag is true this method will check to see if the method exists and if it is accessible according to the context's MemberAccess. If neither test passes this will return NotFound. -
setMethodValue
public static boolean setMethodValue(OgnlContext context, Object target, String propertyName, Object value) throws OgnlException, IllegalAccessException, NoSuchMethodException, IntrospectionException -
setMethodValue
public static boolean setMethodValue(OgnlContext context, Object target, String propertyName, Object value, boolean checkAccessAndExistence) throws OgnlException, IllegalAccessException, NoSuchMethodException, IntrospectionException -
getConstructors
-
getMethods
-
getMethods
-
getFields
-
getField
-
getFieldValue
public static Object getFieldValue(OgnlContext context, Object target, String propertyName) throws NoSuchFieldException - Throws:
NoSuchFieldException
-
getFieldValue
public static Object getFieldValue(OgnlContext context, Object target, String propertyName, boolean checkAccessAndExistence) throws NoSuchFieldException - Throws:
NoSuchFieldException
-
setFieldValue
public static boolean setFieldValue(OgnlContext context, Object target, String propertyName, Object value) throws OgnlException - Throws:
OgnlException
-
isFieldAccessible
public static boolean isFieldAccessible(OgnlContext context, Object target, Class inClass, String propertyName) -
isFieldAccessible
public static boolean isFieldAccessible(OgnlContext context, Object target, Field field, String propertyName) -
hasField
public static boolean hasField(OgnlContext context, Object target, Class inClass, String propertyName) -
getStaticField
public static Object getStaticField(OgnlContext context, String className, String fieldName) throws OgnlException - Throws:
OgnlException
-
getDeclaredMethods
-
getGetMethod
public static Method getGetMethod(OgnlContext context, Class targetClass, String propertyName) throws IntrospectionException, OgnlException - Throws:
IntrospectionExceptionOgnlException
-
isMethodAccessible
public static boolean isMethodAccessible(OgnlContext context, Object target, Method method, String propertyName) -
hasGetMethod
public static boolean hasGetMethod(OgnlContext context, Object target, Class targetClass, String propertyName) throws IntrospectionException, OgnlException - Throws:
IntrospectionExceptionOgnlException
-
getSetMethod
public static Method getSetMethod(OgnlContext context, Class targetClass, String propertyName) throws IntrospectionException, OgnlException - Throws:
IntrospectionExceptionOgnlException
-
hasSetMethod
public static final boolean hasSetMethod(OgnlContext context, Object target, Class targetClass, String propertyName) throws IntrospectionException, OgnlException - Throws:
IntrospectionExceptionOgnlException
-
hasGetProperty
public static final boolean hasGetProperty(OgnlContext context, Object target, Object oname) throws IntrospectionException, OgnlException - Throws:
IntrospectionExceptionOgnlException
-
hasSetProperty
public static final boolean hasSetProperty(OgnlContext context, Object target, Object oname) throws IntrospectionException, OgnlException - Throws:
IntrospectionExceptionOgnlException
-
getPropertyDescriptors
public static Map getPropertyDescriptors(Class targetClass) throws IntrospectionException, OgnlException This method returns the property descriptors for the given class as a Map.- Parameters:
targetClass- The class to get the descriptors for.- Returns:
- Map map of property descriptors for class.
- Throws:
IntrospectionException- on errors usingIntrospector.OgnlException- On general errors.
-
getPropertyDescriptor
public static PropertyDescriptor getPropertyDescriptor(Class targetClass, String propertyName) throws IntrospectionException, OgnlException This method returns a PropertyDescriptor for the given class and property name using a Map lookup (using getPropertyDescriptorsMap()).- Throws:
IntrospectionExceptionOgnlException
-
getPropertyDescriptorsArray
public static PropertyDescriptor[] getPropertyDescriptorsArray(Class targetClass) throws IntrospectionException - Throws:
IntrospectionException
-
getPropertyDescriptorFromArray
public static PropertyDescriptor getPropertyDescriptorFromArray(Class targetClass, String name) throws IntrospectionException Gets the property descriptor with the given name for the target class given.- Parameters:
targetClass- Class for which property descriptor is desiredname- Name of property- Returns:
- PropertyDescriptor of the named property or null if the class has no property with the given name
- Throws:
IntrospectionException
-
setMethodAccessor
-
getMethodAccessor
- Throws:
OgnlException
-
setPropertyAccessor
-
getPropertyAccessor
- Throws:
OgnlException
-
getElementsAccessor
- Throws:
OgnlException
-
setElementsAccessor
-
getNullHandler
- Throws:
OgnlException
-
setNullHandler
-
getProperty
public static Object getProperty(OgnlContext context, Object source, Object name) throws OgnlException - Throws:
OgnlException
-
setProperty
public static void setProperty(OgnlContext context, Object target, Object name, Object value) throws OgnlException - Throws:
OgnlException
-
getIndexedPropertyType
public static int getIndexedPropertyType(OgnlContext context, Class sourceClass, String name) throws OgnlException Determines the index property type, if any. ReturnsINDEXED_PROPERTY_NONEif the property is not index-accessible as determined by OGNL or JavaBeans. If it is indexable then this will return whether it is a JavaBeans indexed property, conforming to the indexed property patterns (returnsINDEXED_PROPERTY_INT) or if it conforms to the OGNL arbitrary object indexable (returnsINDEXED_PROPERTY_OBJECT).- Throws:
OgnlException
-
getIndexedProperty
public static Object getIndexedProperty(OgnlContext context, Object source, String name, Object index) throws OgnlException - Throws:
OgnlException
-
setIndexedProperty
public static void setIndexedProperty(OgnlContext context, Object source, String name, Object index, Object value) throws OgnlException - Throws:
OgnlException
-
getEvaluationPool
-
getObjectArrayPool
-
setClassCacheInspector
Registers the specifiedClassCacheInspectorwith all class reflection based internal caches. This may have a significant performance impact so be careful using this in production scenarios.- Parameters:
inspector- The inspector instance that will be registered with all internal cache instances.
-
getMethod
public static Method getMethod(OgnlContext context, Class target, String name, Node[] children, boolean includeStatic) throws Exception - Throws:
Exception
-
getReadMethod
Finds the best possible match for a method on the specified target class with a matching name.The name matched will also try different combinations like
is + name, has + name, get + name, etc..- Parameters:
target- The class to find a matching method against.name- The name of the method.- Returns:
- The most likely matching
Method, or null if none could be found.
-
getReadMethod
-
getWriteMethod
-
getWriteMethod
-
getProperty
-
isBoolean
-
shouldConvertNumericTypes
Compares theOgnlContext.getCurrentType()andOgnlContext.getPreviousType()class types on the stack to determine if a numeric expression should force object conversion. Normally used in conjunction with theforceConversionparameter ofgetChildSource(OgnlContext,Object,Node,boolean).- Parameters:
context- The current context.- Returns:
- True, if the class types on the stack wouldn't be comparable in a pure numeric expression such as
o1 >= o2.
-
getChildSource
public static String getChildSource(OgnlContext context, Object target, Node child) throws OgnlException Attempts to get the java source string represented by the specific child expression via theJavaSource.toGetSourceString(OgnlContext,Object)interface method.- Parameters:
context- The ognl context to pass to the child.target- The current object target to use.child- The child expression.- Returns:
- The result of calling
JavaSource.toGetSourceString(OgnlContext,Object)plus additional enclosures ofOgnlOps.convertValue(Object,Class,boolean)for conversions. - Throws:
OgnlException- Mandatory exception throwing catching.. (blehh)
-
getChildSource
public static String getChildSource(OgnlContext context, Object target, Node child, boolean forceConversion) throws OgnlException Attempts to get the java source string represented by the specific child expression via theJavaSource.toGetSourceString(OgnlContext,Object)interface method.- Parameters:
context- The ognl context to pass to the child.target- The current object target to use.child- The child expression.forceConversion- If true, forcesOgnlOps.convertValue(Object,Class)conversions on the objects.- Returns:
- The result of calling
JavaSource.toGetSourceString(OgnlContext,Object)plus additional enclosures ofOgnlOps.convertValue(Object,Class,boolean)for conversions. - Throws:
OgnlException- Mandatory exception throwing catching.. (blehh)
-
callMethod(OgnlContext, Object, String, Object[])instead.