public class ClassUtils
extends org.apache.commons.lang.ClassUtils
This class is useful for loading resources and classes in a fault tolerant manner that works across different applications servers. The resource and classloading methods are SecurityManager friendly.
Modifier and Type | Field and Description |
---|---|
static Object[] |
NO_ARGS |
static Class<?>[] |
NO_ARGS_TYPE |
Constructor and Description |
---|
ClassUtils() |
Modifier and Type | Method and Description |
---|---|
static void |
addLibrariesToClasspath(List urls) |
static boolean |
compare(Class[] c1,
Class[] c2,
boolean matchOnObject) |
static boolean |
compare(Class[] c1,
Class[] c2,
boolean matchOnObject,
boolean acceptNulls)
Returns true if the types from array c2 are assignable to the types from c1
and the arrays are the same size.
|
static boolean |
equal(Object a,
Object b)
Simple helper for writing object equalities.
|
static String |
getClassName(Class clazz) |
static URL |
getClassPathRoot(Class clazz) |
static Class<?>[] |
getClassTypes(Object object)
Used for creating an array of class types for an array or single object
|
static Constructor |
getConstructor(Class clazz,
Class[] paramTypes) |
static Constructor |
getConstructor(Class clazz,
Class[] paramTypes,
boolean exactMatch)
Returns available constructor in the target class that as the parameters specified.
|
static <T> T |
getFieldValue(Object target,
String fieldName,
boolean recursive) |
static Method |
getMethod(Class<?> clazz,
String name,
Class<?>[] parameterTypes)
Returns a matching method for the given name and parameters on the given class
If the parameterTypes arguments is null it will return the first matching
method on the class.
|
static Method |
getMethod(Class clazz,
String name,
Class[] parameterTypes,
boolean acceptNulls) |
static Class<?>[] |
getParameterTypes(Object bean,
String methodName) |
static URL |
getResource(String resourceName,
Class<?> callingClass)
Load a given resource.
|
static Enumeration<URL> |
getResources(String resourceName,
Class<?> callingClass) |
static List<Method> |
getSatisfiableMethods(Class<?> implementation,
Class<?>[] parameterTypes,
boolean voidOk,
boolean matchOnObject,
Collection<String> ignoredMethodNames,
WildcardFilter filter)
A helper method that will find all matching methods on a class with the given
parameter type
|
static List<Method> |
getSatisfiableMethods(Class<?> implementation,
Class<?>[] parameterTypes,
boolean voidOk,
boolean matchOnObject,
Set<String> ignoredMethodNames)
A helper method that will find all matching methods on a class with the given
parameter type
|
static List<Method> |
getSatisfiableMethodsWithReturnType(Class implementation,
Class returnType,
boolean matchOnObject,
Set<String> ignoredMethodNames)
Match all method son a class with a defined return type
|
static String |
getSimpleName(Class clazz)
Provide a simple-to-understand class name (with access to only Java 1.4 API).
|
static int |
hash(Object[] state) |
static Class<?> |
initializeClass(Class<?> clazz)
Ensure that the given class is properly initialized when the argument is passed in
as .class literal.
|
static <T> T |
instanciateClass(Class<? extends T> clazz,
Object... constructorArgs) |
static Object |
instanciateClass(String name,
Object... constructorArgs) |
static Object |
instanciateClass(String name,
Object[] constructorArgs,
Class<?> callingClass) |
static Object |
instanciateClass(String name,
Object[] constructorArgs,
ClassLoader classLoader) |
static boolean |
isClassOnPath(String className,
Class currentClass)
Can be used by serice endpoints to select which service to use based on what's
loaded on the classpath
|
static boolean |
isConcrete(Class<?> clazz) |
static boolean |
isConsumable(Class<?> payloadClass)
Determines if the payload of this message is consumable i.e.
|
static <T> boolean |
isInstance(Class<T> type,
Object value)
Checks that
value is an instance of type . |
static Class |
loadClass(String className,
Class<?> callingClass)
Load a class with a given name.
|
static <T extends Class> |
loadClass(String className,
Class<?> callingClass,
T type)
Load a class with a given name.
|
static Class |
loadClass(String className,
ClassLoader classLoader)
Load a class with a given name from the given classloader.
|
static Class<? extends Annotation> |
resolveAnnotationClass(Annotation annotation) |
static void |
setFieldValue(Object target,
String fieldName,
Object value,
boolean recursive) |
static Class[] |
wrappersToPrimitives(Class[] wrappers) |
static Class |
wrapperToPrimitive(Class wrapper) |
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
public static final Object[] NO_ARGS
public static final Class<?>[] NO_ARGS_TYPE
public static boolean isConcrete(Class<?> clazz)
public static URL getResource(String resourceName, Class<?> callingClass)
resourceName
- The name of the resource to loadcallingClass
- The Class object of the calling objectpublic static Enumeration<URL> getResources(String resourceName, Class<?> callingClass)
public static Class loadClass(String className, Class<?> callingClass) throws ClassNotFoundException
Thread.currentThread().getContextClassLoader()
Class.forName(java.lang.String)
ClassLoaderUtil.class.getClassLoader()
callingClass.getClassLoader()
className
- The name of the class to loadcallingClass
- The Class object of the calling objectClassNotFoundException
- If the class cannot be found anywhere.public static <T extends Class> T loadClass(String className, Class<?> callingClass, T type) throws ClassNotFoundException
Thread.currentThread().getContextClassLoader()
Class.forName(java.lang.String)
ClassLoaderUtil.class.getClassLoader()
callingClass.getClassLoader()
className
- The name of the class to loadcallingClass
- The Class object of the calling objecttype
- the class type to expect to loadClassNotFoundException
- If the class cannot be found anywhere.public static Class loadClass(String className, ClassLoader classLoader) throws ClassNotFoundException
className
- the name of the class to loadclassLoader
- the loader to load it fromClassNotFoundException
- if the class is not available in the class loaderpublic static <T> T getFieldValue(Object target, String fieldName, boolean recursive) throws IllegalAccessException, NoSuchFieldException
public static void setFieldValue(Object target, String fieldName, Object value, boolean recursive) throws IllegalAccessException, NoSuchFieldException
public static Class<?> initializeClass(Class<?> clazz)
clazz
- the Class to be initializedpublic static <T> T instanciateClass(Class<? extends T> clazz, Object... constructorArgs) throws SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException
public static Object instanciateClass(String name, Object... constructorArgs) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException
public static Object instanciateClass(String name, Object[] constructorArgs, Class<?> callingClass) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException
public static Object instanciateClass(String name, Object[] constructorArgs, ClassLoader classLoader) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException
public static Method getMethod(Class<?> clazz, String name, Class<?>[] parameterTypes)
clazz
- the class to find the method onname
- the method name to findparameterTypes
- an array of argument types or nullpublic static Method getMethod(Class clazz, String name, Class[] parameterTypes, boolean acceptNulls)
public static Constructor getConstructor(Class clazz, Class[] paramTypes)
public static Constructor getConstructor(Class clazz, Class[] paramTypes, boolean exactMatch)
clazz
- the class to searchparamTypes
- the param types to match againstexactMatch
- should exact types be used (i.e. equals rather than isAssignableFrom.)public static List<Method> getSatisfiableMethods(Class<?> implementation, Class<?>[] parameterTypes, boolean voidOk, boolean matchOnObject, Set<String> ignoredMethodNames)
implementation
- the class to build methods onparameterTypes
- the argument param types to look forvoidOk
- whether void methods shouldbe included in the found listmatchOnObject
- determines whether parameters of Object type are matched
when they are of Object.class typeignoredMethodNames
- a Set of method names to ignore. Often 'equals' is
not a desired match. This argument can be null.public static List<Method> getSatisfiableMethods(Class<?> implementation, Class<?>[] parameterTypes, boolean voidOk, boolean matchOnObject, Collection<String> ignoredMethodNames, WildcardFilter filter)
implementation
- the class to build methods onparameterTypes
- the argument param types to look forvoidOk
- whether void methods shouldbe included in the found listmatchOnObject
- determines whether parameters of Object type are matched
when they are of Object.class typeignoredMethodNames
- a Set of method names to ignore. Often 'equals' is
not a desired match. This argument can be null.filter
- Wildcard expression filter that allows methods to be matched using wildcards i.e. 'get*'public static List<Method> getSatisfiableMethodsWithReturnType(Class implementation, Class returnType, boolean matchOnObject, Set<String> ignoredMethodNames)
implementation
- the class to searchreturnType
- the return type to matchmatchOnObject
- whether Object
methods should be matchedignoredMethodNames
- a set of method names to ignorepublic static boolean isClassOnPath(String className, Class currentClass)
className
- The class name to look forcurrentClass
- the calling classpublic static Class<?>[] getClassTypes(Object object)
object
- single object or array. If this parameter is null or a zero length
array then NO_ARGS_TYPE
is returnedpublic static boolean compare(Class[] c1, Class[] c2, boolean matchOnObject, boolean acceptNulls)
c1
- parameter types arrayc2
- parameter types arraymatchOnObject
- return false if there is a parameter of type Object in c1acceptNulls
- allows null parameter types in c2public static String getSimpleName(Class clazz)
clazz
- The class whose name we will generatepublic static boolean equal(Object a, Object b)
a
- object to compareb
- object to be compared topublic static int hash(Object[] state)
public static void addLibrariesToClasspath(List urls) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
public static Class<? extends Annotation> resolveAnnotationClass(Annotation annotation)
public static <T> boolean isInstance(Class<T> type, Object value)
value
is an instance of type
.
The value that this method adds over something like Class.isInstance(Object)
is that it also considers the case in which type
and value
are evaluate by isWrapperAndPrimitivePair(Class, Class)
as true
T
- the generic type of type
type
- the Class
you want to check the value against
value
- an instance you want to verify is instance of type
true
if value
is an instance of type
or if they are a wrapper-primitive pair.
false
otherwisepublic static boolean isConsumable(Class<?> payloadClass)
Copyright © 2003–2016 MuleSoft, Inc.. All rights reserved.