Package com.sun.el.util
Class ReflectionUtil
- java.lang.Object
-
- com.sun.el.util.ReflectionUtil
-
public class ReflectionUtil extends java.lang.Object
Utilities for Managing Serialization and Reflection- Version:
- $Change: 181177 $$DateTime: 2001/06/26 08:45:09 $$Author: kchung $
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ReflectionUtil.ConstructorWrapper
private static class
ReflectionUtil.MethodWrapper
private static class
ReflectionUtil.Wrapper
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String[]
EMPTY_STRING
protected static java.lang.String[]
PRIMITIVE_NAMES
protected static java.lang.Class[]
PRIMITIVES
-
Constructor Summary
Constructors Modifier Constructor Description private
ReflectionUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description (package private) static java.lang.Object[]
buildParameters(ELContext context, java.lang.Class<?>[] parameterTypes, boolean isVarArgs, java.lang.Object[] params)
static java.lang.reflect.Method
findMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>[] paramTypes, java.lang.Object[] paramValues)
private static ReflectionUtil.Wrapper
findMostSpecificWrapper(java.util.List<ReflectionUtil.Wrapper> candidates, java.lang.Class<?>[] matchingTypes, boolean elSpecific, java.lang.String errorMsg)
private static ReflectionUtil.Wrapper
findWrapper(java.lang.Class<?> clazz, java.util.List<ReflectionUtil.Wrapper> wrappers, java.lang.String name, java.lang.Class<?>[] paramTypes, java.lang.Object[] paramValues)
static java.lang.Class
forName(java.lang.String name)
protected static java.lang.Class
forNamePrimitive(java.lang.String name)
private static java.lang.Class<?>
getBoxingTypeIfPrimitive(java.lang.Class<?> clazz)
private static java.lang.Class<?>[]
getComparingParamTypesForVarArgsMethod(java.lang.Class<?>[] paramTypes, int length)
(package private) static java.lang.reflect.Constructor<?>
getConstructor(java.lang.Class<?> type, java.lang.reflect.Constructor<?> c)
(package private) static java.lang.reflect.Method
getMethod(java.lang.Class<?> type, java.lang.reflect.Method m)
static java.beans.PropertyDescriptor
getPropertyDescriptor(java.lang.Object base, java.lang.Object property)
private static java.lang.Class<?>[]
getTypesFromValues(java.lang.Object[] values)
static java.lang.Object
invokeMethod(ELContext context, java.lang.reflect.Method m, java.lang.Object base, java.lang.Object[] params)
(package private) static boolean
isAssignableFrom(java.lang.Class<?> src, java.lang.Class<?> target)
private static boolean
isCoercibleFrom(java.lang.Object src, java.lang.Class<?> target)
private static int
isMoreSpecific(ReflectionUtil.Wrapper wrapper1, ReflectionUtil.Wrapper wrapper2, java.lang.Class<?>[] matchingTypes, boolean elSpecific)
private static int
isMoreSpecific(java.lang.Class<?> type1, java.lang.Class<?> type2, java.lang.Class<?> matchingType, boolean elSpecific)
private static java.lang.String
paramString(java.lang.Class<?>[] types)
static java.lang.Class[]
toTypeArray(java.lang.String[] s)
Converts an array of Class names to Class typesstatic java.lang.String[]
toTypeNameArray(java.lang.Class[] c)
Converts an array of Class types to Class names
-
-
-
Method Detail
-
forName
public static java.lang.Class forName(java.lang.String name) throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
-
forNamePrimitive
protected static java.lang.Class forNamePrimitive(java.lang.String name)
-
toTypeArray
public static java.lang.Class[] toTypeArray(java.lang.String[] s) throws java.lang.ClassNotFoundException
Converts an array of Class names to Class types- Parameters:
s
-- Returns:
- The array of Classes
- Throws:
java.lang.ClassNotFoundException
-
toTypeNameArray
public static java.lang.String[] toTypeNameArray(java.lang.Class[] c)
Converts an array of Class types to Class names- Parameters:
c
-- Returns:
- The array of Classes
-
getPropertyDescriptor
public static java.beans.PropertyDescriptor getPropertyDescriptor(java.lang.Object base, java.lang.Object property) throws ELException, PropertyNotFoundException
- Parameters:
base
- The base objectproperty
- The property- Returns:
- The PropertyDescriptor for the base with the given property
- Throws:
ELException
PropertyNotFoundException
-
invokeMethod
public static java.lang.Object invokeMethod(ELContext context, java.lang.reflect.Method m, java.lang.Object base, java.lang.Object[] params)
-
findMethod
public static java.lang.reflect.Method findMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>[] paramTypes, java.lang.Object[] paramValues)
-
findWrapper
private static ReflectionUtil.Wrapper findWrapper(java.lang.Class<?> clazz, java.util.List<ReflectionUtil.Wrapper> wrappers, java.lang.String name, java.lang.Class<?>[] paramTypes, java.lang.Object[] paramValues)
-
findMostSpecificWrapper
private static ReflectionUtil.Wrapper findMostSpecificWrapper(java.util.List<ReflectionUtil.Wrapper> candidates, java.lang.Class<?>[] matchingTypes, boolean elSpecific, java.lang.String errorMsg)
-
isMoreSpecific
private static int isMoreSpecific(ReflectionUtil.Wrapper wrapper1, ReflectionUtil.Wrapper wrapper2, java.lang.Class<?>[] matchingTypes, boolean elSpecific)
-
isMoreSpecific
private static int isMoreSpecific(java.lang.Class<?> type1, java.lang.Class<?> type2, java.lang.Class<?> matchingType, boolean elSpecific)
-
getBoxingTypeIfPrimitive
private static java.lang.Class<?> getBoxingTypeIfPrimitive(java.lang.Class<?> clazz)
-
getComparingParamTypesForVarArgsMethod
private static java.lang.Class<?>[] getComparingParamTypesForVarArgsMethod(java.lang.Class<?>[] paramTypes, int length)
-
paramString
private static final java.lang.String paramString(java.lang.Class<?>[] types)
-
isAssignableFrom
static boolean isAssignableFrom(java.lang.Class<?> src, java.lang.Class<?> target)
-
isCoercibleFrom
private static boolean isCoercibleFrom(java.lang.Object src, java.lang.Class<?> target)
-
getTypesFromValues
private static java.lang.Class<?>[] getTypesFromValues(java.lang.Object[] values)
-
getMethod
static java.lang.reflect.Method getMethod(java.lang.Class<?> type, java.lang.reflect.Method m)
-
getConstructor
static java.lang.reflect.Constructor<?> getConstructor(java.lang.Class<?> type, java.lang.reflect.Constructor<?> c)
-
buildParameters
static java.lang.Object[] buildParameters(ELContext context, java.lang.Class<?>[] parameterTypes, boolean isVarArgs, java.lang.Object[] params)
-
-