com.pmease.quickbuild.util
Class ClassUtils

java.lang.Object
  extended by org.apache.commons.lang.ClassUtils
      extended by com.pmease.quickbuild.util.ClassUtils

public class ClassUtils
extends org.apache.commons.lang.ClassUtils

Extend jakarta commons-lang class utility to add more functionality


Field Summary
 
Fields inherited from class org.apache.commons.lang.ClassUtils
INNER_CLASS_SEPARATOR, INNER_CLASS_SEPARATOR_CHAR, PACKAGE_SEPARATOR, PACKAGE_SEPARATOR_CHAR
 
Constructor Summary
ClassUtils()
           
 
Method Summary
static java.util.Collection<java.lang.Class<?>> findImplementations(java.lang.Class<?> superClass, java.lang.Class<?> packageClass)
           
static
<T> java.util.Collection<java.lang.Class<T>>
findSubClasses(java.lang.Class<T> superClass, java.lang.Class<?> packageClass)
          Find all sub classes inheriting from (or implementing) specified super class (or interface) in package containing the package class.
static java.io.File getClassFile(java.lang.Class<?> clazz)
           
static java.lang.Class<?> getCollectionElementType(java.lang.reflect.Type type)
           
static java.lang.reflect.Constructor<?> getConstructor(java.lang.Class<?> clazz, java.lang.Class<?> acceptableParamType)
           
static
<T> java.lang.reflect.Constructor<T>
getConstructor(java.lang.Class<T> clazz, java.lang.Class<?>[] expectedTypes)
           
static java.lang.Class<?> getDeclaringClass(java.lang.reflect.AnnotatedElement element)
           
static java.lang.Class<?> getMapKeyType(java.lang.reflect.Type type)
           
static java.lang.Class<?> getMapValueType(java.lang.reflect.Type type)
           
static java.lang.reflect.Method getMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... params)
          Find the declared method in nearest ancestor of specified class.
static java.lang.reflect.Method getMethodIfAvailable(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... params)
          Find the declared method in nearest ancestor of specified class.
static java.lang.String getMethodSignature(java.lang.reflect.Method method)
           
static
<T> java.util.List<java.lang.Class<?>>
getTypeArguments(java.lang.Class<T> baseClass, java.lang.Class<? extends T> childClass)
          Get the actual type arguments a child class has used to extend a generic base class.
static boolean hasMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... params)
           
static
<T> T
instantiateClass(java.lang.Class<T> cls, java.lang.Object... objects)
           
static java.lang.Object invokeStaticMethod(java.lang.Class<?> clazz, java.lang.String methodName)
           
static boolean isSystemType(java.lang.Class<?> type)
           
static java.lang.Class<?> unproxy(java.lang.Class<?> clazz)
           
 
Methods inherited from class org.apache.commons.lang.ClassUtils
convertClassesToClassNames, convertClassNamesToClasses, getAllInterfaces, getAllSuperclasses, getClass, getClass, getClass, getClass, getPackageCanonicalName, getPackageCanonicalName, getPackageCanonicalName, getPackageName, getPackageName, getPackageName, getPublicMethod, getShortCanonicalName, getShortCanonicalName, getShortCanonicalName, getShortClassName, getShortClassName, getShortClassName, isAssignable, isAssignable, isInnerClass, primitivesToWrappers, primitiveToWrapper, toClass, wrappersToPrimitives, wrapperToPrimitive
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClassUtils

public ClassUtils()
Method Detail

getMethodIfAvailable

public static java.lang.reflect.Method getMethodIfAvailable(java.lang.Class<?> clazz,
                                                            java.lang.String methodName,
                                                            java.lang.Class<?>... params)
Find the declared method in nearest ancestor of specified class. null if not available


getMethod

public static java.lang.reflect.Method getMethod(java.lang.Class<?> clazz,
                                                 java.lang.String methodName,
                                                 java.lang.Class<?>... params)
Find the declared method in nearest ancestor of specified class.

Throws:
java.lang.RuntimeException - if the method can not be found.

hasMethod

public static boolean hasMethod(java.lang.Class<?> clazz,
                                java.lang.String methodName,
                                java.lang.Class<?>... params)

isSystemType

public static boolean isSystemType(java.lang.Class<?> type)

unproxy

public static java.lang.Class<?> unproxy(java.lang.Class<?> clazz)

getCollectionElementType

public static java.lang.Class<?> getCollectionElementType(java.lang.reflect.Type type)

getMapKeyType

public static java.lang.Class<?> getMapKeyType(java.lang.reflect.Type type)

getMapValueType

public static java.lang.Class<?> getMapValueType(java.lang.reflect.Type type)

getConstructor

public static java.lang.reflect.Constructor<?> getConstructor(java.lang.Class<?> clazz,
                                                              java.lang.Class<?> acceptableParamType)

getDeclaringClass

public static java.lang.Class<?> getDeclaringClass(java.lang.reflect.AnnotatedElement element)

invokeStaticMethod

public static java.lang.Object invokeStaticMethod(java.lang.Class<?> clazz,
                                                  java.lang.String methodName)

getMethodSignature

public static java.lang.String getMethodSignature(java.lang.reflect.Method method)

instantiateClass

public static <T> T instantiateClass(java.lang.Class<T> cls,
                                     java.lang.Object... objects)

getConstructor

public static <T> java.lang.reflect.Constructor<T> getConstructor(java.lang.Class<T> clazz,
                                                                  java.lang.Class<?>[] expectedTypes)

findImplementations

public static java.util.Collection<java.lang.Class<?>> findImplementations(java.lang.Class<?> superClass,
                                                                           java.lang.Class<?> packageClass)

findSubClasses

public static <T> java.util.Collection<java.lang.Class<T>> findSubClasses(java.lang.Class<T> superClass,
                                                                          java.lang.Class<?> packageClass)
Find all sub classes inheriting from (or implementing) specified super class (or interface) in package containing the package class.

Parameters:
superClass - super class (or interface) to match.
packageClass - find sub classes in the same package or sub package as this class. Package will be searched recursively.
Returns:
collection of sub classes (not include the super class)

getTypeArguments

public static <T> java.util.List<java.lang.Class<?>> getTypeArguments(java.lang.Class<T> baseClass,
                                                                      java.lang.Class<? extends T> childClass)
Get the actual type arguments a child class has used to extend a generic base class. (Taken from http://www.artima.com/weblogs/viewpost.jsp?thread=208860. Thanks mathieu.grenonville for finding this solution!)

Parameters:
baseClass - the base class
childClass - the child class
Returns:
a list of the raw classes for the actual type arguments.

getClassFile

public static java.io.File getClassFile(java.lang.Class<?> clazz)


Copyright © 2005-2010 PMEase Inc. All Rights Reserved.