Class 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 $
    • 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 types
      static java.lang.String[] toTypeNameArray​(java.lang.Class[] c)
      Converts an array of Class types to Class names
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • EMPTY_STRING

        protected static final java.lang.String[] EMPTY_STRING
      • PRIMITIVE_NAMES

        protected static final java.lang.String[] PRIMITIVE_NAMES
      • PRIMITIVES

        protected static final java.lang.Class[] PRIMITIVES
    • Constructor Detail

      • ReflectionUtil

        private ReflectionUtil()
    • 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 object
        property - 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​(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)