public class ClassUtils extends Object
Modifier and Type | Field and Description |
---|---|
protected static Map |
constructorsCache
caching for constructors - using caching, the perf is at least doubled
|
Constructor and Description |
---|
ClassUtils() |
Modifier and Type | Method and Description |
---|---|
static void |
assertClassForJarExistsInClasspath(ClassLoaderResolver clr,
String className,
String jarName)
Convenience method to throw a NucleusUserException if the specified class is not loadable
from the ClassLoaderResolver.
|
static boolean |
classesAreDescendents(ClassLoaderResolver clr,
String class_name_1,
String class_name_2)
Method to check if 2 classes are direct descendents.
|
static void |
clearFlags(boolean[] flags)
Utility to clear the supplied flags.
|
static void |
clearFlags(boolean[] flags,
int[] fields)
Utility to clear the supplied flags.
|
static Object |
convertValue(Object value,
Class cls)
Convenience method to convert the passed value to an object of the specified type (if possible).
|
static String |
createFullClassName(String pkg_name,
String cls_name)
Utility to create the full class name given the package and class name.
|
static void |
dumpClassInformation(Class cls)
Utility to use Reflection to dump out the details of a class.
|
static boolean |
getBitFromInt(int bits,
int bitIndex)
Convenience method to get the value of a bit from an int when we are storing (up to 32) boolean in an int
for memory utilisation purposes.
|
static Collection<File> |
getClassFilesForDirectory(File dir,
boolean normal_classes,
boolean inner_classes)
Method to return the class files below the specified directory.
|
static Class |
getClassForGenericType(Type genericType,
int pos)
Convenience method to attempt to return the class for the provided generic type.
|
static Class |
getClassForMemberOfClass(Class cls,
String memberName)
Method that returns the class type of a member of the specified class (if present).
|
static String |
getClassNameForClass(Class cls)
Utility to return the class name without the package name for a class.
|
static String |
getClassNameForFileName(String fileName,
ClassLoaderResolver clr)
Convenience method to try to find the class name stored in the specified file.
|
static String |
getClassNameForFileURL(URL fileURL)
Utility to find the class name of a class given the absolute file name of its class file.
|
static String[] |
getClassNamesForDirectoryAndBelow(File dir)
Convenience method to return the names of classes specified in the directory and below.
|
static String[] |
getClassNamesForJarFile(String jarFileName)
Convenience accessor for the names of all class files in the jar file with the specified name.
|
static String[] |
getClassNamesForJarFile(URI jarFileURI)
Convenience accessor for the names of all class files in the jar file with the specified URL.
|
static String[] |
getClassNamesForJarFile(URL jarFileURL)
Convenience accessor for the names of all class files in the jar file with the specified URL.
|
static Class |
getCollectionElementType(Class type,
Type genericType)
Convenience method to extract the element type of a collection when using JDK1.5 generics given the
input field.
|
static String |
getCollectionElementType(Field field)
Convenience method to extract the element type of a collection when using JDK1.5 generics given the
input field.
|
static String |
getCollectionElementType(Method method)
Convenience method to extract the element type of a collection when using JDK1.5 generics, given
the input method (getter).
|
static Constructor |
getConstructorWithArguments(Class cls,
Class[] argTypes)
Convenience method to return the constructor of the passed class that accepts the supplied argument types.
|
static Constructor |
getConstructorWithArguments(Class cls,
Class[] argTypes,
boolean[] argTypeCheck)
Convenience method to return the constructor of the passed class that accepts the supplied argument types.
|
static Field |
getFieldForClass(Class cls,
String fieldName)
Obtain a field from a class or superclasses using reflection.
|
static String |
getFieldNameForJavaBeanGetter(String methodName)
Generate a field name for JavaBeans compatible getter method
|
static String |
getFieldNameForJavaBeanSetter(String methodName)
Generate a field name for JavaBeans compatible setter method
|
static Collection<File> |
getFilesForDirectory(File dir)
Method to return the files below the specified directory.
|
static int[] |
getFlagsSetTo(boolean[] flags,
boolean state)
Returns an array of integers containing the indices of all elements in
flags that are in the state passed as argument.
|
static int[] |
getFlagsSetTo(boolean[] flags,
int[] indices,
boolean state)
Returns an array of integers containing the indices of all elements in
flags whose index occurs in indices and whose value is state.
|
static Method |
getGetterMethodForClass(Class cls,
String beanName)
Obtain a (Java bean) getter method from a class or superclasses using reflection.
|
static String |
getJavaBeanGetterName(String fieldName,
boolean isBoolean)
Generate a JavaBeans compatible getter name
|
static String |
getJavaBeanSetterName(String fieldName)
Generate a JavaBeans compatible setter name
|
static String |
getJavaLangClassForType(String type)
Convenience method to return the passed type as a java.lang type wherever possible.
|
static Class |
getMapKeyType(Class type,
Type genericType)
Convenience method to extract the key type of a map when using JDK1.5 generics given the
input field.
|
static String |
getMapKeyType(Field field)
Convenience method to extract the key type of a map when using JDK1.5 generics given the
input field.
|
static String |
getMapKeyType(Method method)
Convenience method to extract the key type of a map when using JDK1.5 generics given the
input method.
|
static Class |
getMapValueType(Class type,
Type genericType)
Convenience method to extract the value type of a map when using JDK1.5 generics given the
input field
|
static String |
getMapValueType(Field field)
Convenience method to extract the value type of a map when using JDK1.5 generics given the
input field
|
static String |
getMapValueType(Method method)
Convenience method to extract the value type of a map when using JDK1.5 generics given the
input method.
|
static Method |
getMethodForClass(Class cls,
String methodName,
Class[] argtypes)
Obtain a method from a class or superclasses using reflection
|
static Method |
getMethodWithArgument(Class cls,
String methodName,
Class argType)
Obtain a method from a class or superclasses using reflection.
|
static int |
getModifiersForFieldOfClass(ClassLoaderResolver clr,
String className,
String fieldName)
Convenience accessor for the modifiers of a field in a class.
|
static String[] |
getPackageJdoFilesForJarFile(String jarFileName)
Convenience accessor for the names of all "package.jdo" files in the jar file with the specified name.
|
static String[] |
getPackageJdoFilesForJarFile(URI jarFileURI)
Convenience accessor for the names of all "package.jdo" files in the jar file with the specified URL.
|
static String[] |
getPackageJdoFilesForJarFile(URL jarFileURL)
Convenience accessor for the names of all "package.jdo" files in the jar file with the specified URL.
|
static String |
getPackageNameForClass(Class cls)
Utility to return the package name for a class.
|
static String |
getPackageNameForClassName(String clsName)
Utility to return the package name for a class name.
|
static Class |
getPrimitiveTypeForType(Class type)
Method to return the primitive equivalent of the specified type (if any).
|
static Method |
getSetterMethodForClass(Class cls,
String beanName,
Class type)
Obtain a (Java bean) setter method from a class or superclasses using reflection.
|
static Collection<Class<?>> |
getSuperclasses(Class<?> the_class)
Method to return the superclasses for a class.
|
static Collection<Class<?>> |
getSuperinterfaces(Class<?> the_class)
Method to return the superinterfaces for a class.
|
static Object |
getValueForIdentityField(Object id,
String fieldName)
Method to find the value of a field of the provided user-defined identity.
|
static Object |
getValueOfFieldByReflection(Object object,
String fieldName)
Helper method to return the value of a field of an object using reflection.
|
static Object |
getValueOfMethodByReflection(Object object,
String methodName,
Object... args)
Helper method to return the value returned by a method on an object using reflection.
|
static Class |
getWrapperTypeForPrimitiveType(Class type)
Convenience method to return the object wrapper type for a primitive type.
|
static String |
getWrapperTypeNameForPrimitiveTypeName(String typeName)
Convenience method to return the object wrapper type for a primitive type name.
|
static boolean |
hasDefaultConstructor(Class the_class)
Method to check for a default constructor on a class.
|
static boolean |
isClassPresent(String className,
ClassLoaderResolver clr)
Convenience method to say whether a class is present.
|
static boolean |
isInnerClass(String class_name)
Method to check whether a classname is for an inner class.
|
static boolean |
isJavaBeanGetterMethod(Method method)
Convenience method to return if the supplied method is a valid java bean getter method.
|
static boolean |
isPrimitiveArrayType(String typeName)
Convenience method to return if the passed type (name) is a primitive array type.
|
static boolean |
isPrimitiveType(String typeName)
Convenience method to return if the passed type (name) is a primitive type.
|
static boolean |
isPrimitiveWrapperType(String typeName)
Convenience method to return if the passed type (name) is a primitive wrapper type.
|
static boolean |
isReferenceType(Class cls)
Method to return whether the passes type is a "reference" type.
|
static Object |
newInstance(Class type,
Class[] parameterTypes,
Object[] parameters)
Accessor for a new instance of an object.
|
static int |
setBitInInt(int bits,
int bitIndex,
boolean flag)
Convenience method to set a boolean as a bit in the specified int, for memory utilisation purposes.
|
static boolean |
stringArrayContainsValue(String[] array,
String value)
Convenience method to return if a String array contains a value.
|
static boolean |
typesAreCompatible(Class cls1,
Class cls2)
Convenience method to return if two types are compatible.
|
static boolean |
typesAreCompatible(Class cls1,
String clsName2,
ClassLoaderResolver clr)
Convenience method to return if two types are compatible.
|
protected static final Map constructorsCache
public static Object newInstance(Class type, Class[] parameterTypes, Object[] parameters)
type
- Type of object (the class).parameterTypes
- Classes of params for the constructorparameters
- The parameters for the constructorNucleusException
- If an error occurs creating the instancepublic static Constructor getConstructorWithArguments(Class cls, Class[] argTypes)
cls
- The classargTypes
- The constructor argument types. If we know we need a parameter yet don't know the type then this will have a null for that argument type.public static Constructor getConstructorWithArguments(Class cls, Class[] argTypes, boolean[] argTypeCheck)
cls
- The classargTypes
- The constructor argument types. If we know we need a parameter yet don't know the type then this will have a null for that argument type.argTypeCheck
- Whether to check the type of the different arguments. Useful where we don't know the result type of an argument until processing resultspublic static Method getMethodWithArgument(Class cls, String methodName, Class argType)
cls
- the class to find the declared fields and populate the mapmethodName
- the method name to findargType
- the argument typepublic static Method getMethodForClass(Class cls, String methodName, Class[] argtypes)
cls
- the class where to look for the methodmethodName
- the method name to findargtypes
- the classes argument of the methodpublic static Collection<File> getClassFilesForDirectory(File dir, boolean normal_classes, boolean inner_classes)
dir
- The directorynormal_classes
- Whether to include normal classesinner_classes
- Whether to include inner classespublic static Collection<File> getFilesForDirectory(File dir)
dir
- The directorypublic static String[] getClassNamesForJarFile(String jarFileName)
jarFileName
- Name of the jar filepublic static String[] getClassNamesForJarFile(URL jarFileURL)
jarFileURL
- URL for the jar filepublic static String[] getClassNamesForJarFile(URI jarFileURI)
jarFileURI
- URI for the jar filepublic static String[] getPackageJdoFilesForJarFile(String jarFileName)
jarFileName
- Name of the jar filepublic static String[] getPackageJdoFilesForJarFile(URL jarFileURL)
jarFileURL
- URL for the jar filepublic static String[] getPackageJdoFilesForJarFile(URI jarFileURI)
jarFileURI
- URI for the jar filepublic static String[] getClassNamesForDirectoryAndBelow(File dir)
dir
- Directory that we should look below (root of classpath)public static boolean isInnerClass(String class_name)
class_name
- The class namepublic static boolean hasDefaultConstructor(Class the_class)
the_class
- The classpublic static Collection<Class<?>> getSuperclasses(Class<?> the_class)
the_class
- The classpublic static Collection<Class<?>> getSuperinterfaces(Class<?> the_class)
the_class
- The classpublic static Field getFieldForClass(Class cls, String fieldName)
cls
- the class to find the field fromfieldName
- the field name to findpublic static Method getGetterMethodForClass(Class cls, String beanName)
cls
- the class to find the getter frombeanName
- the name of the java bean to find the getter forpublic static Method getSetterMethodForClass(Class cls, String beanName, Class type)
cls
- the class to find the setter frombeanName
- the name of the java bean to find the setter fortype
- the type of the java bean to find the setter forpublic static String getWrapperTypeNameForPrimitiveTypeName(String typeName)
typeName
- The primitive type namepublic static Class getWrapperTypeForPrimitiveType(Class type)
type
- The primitive typepublic static Class getPrimitiveTypeForType(Class type)
type
- The typepublic static boolean isPrimitiveWrapperType(String typeName)
typeName
- Name of the typepublic static boolean isPrimitiveArrayType(String typeName)
typeName
- Name of the typepublic static boolean isPrimitiveType(String typeName)
typeName
- Name of the typepublic static Object convertValue(Object value, Class cls)
value
- The valuecls
- The classpublic static boolean typesAreCompatible(Class cls1, String clsName2, ClassLoaderResolver clr)
cls1
- First classclsName2
- Name of the second classclr
- ClassLoader resolver to usepublic static boolean typesAreCompatible(Class cls1, Class cls2)
cls1
- First classcls2
- Second classpublic static String createFullClassName(String pkg_name, String cls_name)
packageName=test className=Test, returns result=test.Test packageName=test className=test1.Test, returns result=test1.Test packageName=<null> className=Test, returns result=Test packageName=<null> className=test1.Test, returns result=test1.Test
pkg_name
- package name.cls_name
- class name.public static String getJavaLangClassForType(String type)
type
- The type namepublic static boolean classesAreDescendents(ClassLoaderResolver clr, String class_name_1, String class_name_2)
clr
- ClassLoaderResolver for loading the classesclass_name_1
- Name of first classclass_name_2
- Name of second classpublic static void dumpClassInformation(Class cls)
cls
- The class to dump out to the logpublic static String getJavaBeanGetterName(String fieldName, boolean isBoolean)
fieldName
- the field nameisBoolean
- whether the field is primitive boolean typepublic static String getJavaBeanSetterName(String fieldName)
fieldName
- the field namepublic static String getFieldNameForJavaBeanGetter(String methodName)
methodName
- the method namepublic static String getFieldNameForJavaBeanSetter(String methodName)
methodName
- the method namepublic static String getClassNameForFileName(String fileName, ClassLoaderResolver clr)
fileName
- Name of fileclr
- ClassLoader resolverpublic static String getClassNameForFileURL(URL fileURL) throws ClassNotFoundException
fileURL
- URL for the class fileClassNotFoundException
- Thrown when the file is not foundpublic static String getPackageNameForClass(Class cls)
cls
- The classpublic static String getPackageNameForClassName(String clsName)
clsName
- The classpublic static String getClassNameForClass(Class cls)
cls
- The classpublic static Class getClassForGenericType(Type genericType, int pos)
genericType
- The generic typepos
- The position of the generic arg (in case of multiple)public static String getCollectionElementType(Field field)
field
- The fieldpublic static String getCollectionElementType(Method method)
method
- The methodpublic static Class getCollectionElementType(Class type, Type genericType)
type
- the field typegenericType
- the generic typepublic static String getMapKeyType(Field field)
field
- The fieldpublic static String getMapKeyType(Method method)
method
- The methodpublic static Class getMapKeyType(Class type, Type genericType)
type
- the field typegenericType
- the generic typepublic static String getMapValueType(Field field)
field
- The fieldpublic static String getMapValueType(Method method)
method
- The methodpublic static Class getMapValueType(Class type, Type genericType)
type
- the field typegenericType
- the generic typepublic static int getModifiersForFieldOfClass(ClassLoaderResolver clr, String className, String fieldName)
clr
- ClassLoader resolverclassName
- Name of the classfieldName
- Name of the fieldpublic static boolean isReferenceType(Class cls)
cls
- The typepublic static boolean isClassPresent(String className, ClassLoaderResolver clr)
className
- The class nameclr
- ClassLoader resolverpublic static void assertClassForJarExistsInClasspath(ClassLoaderResolver clr, String className, String jarName)
clr
- ClassLoader resolverclassName
- Name of the classjarName
- Name of the jar containing the classNucleusUserException
- if the class is not foundpublic static boolean stringArrayContainsValue(String[] array, String value)
array
- The String arrayvalue
- The valuepublic static Object getValueOfMethodByReflection(Object object, String methodName, Object... args)
object
- The objectmethodName
- Name of the methodargs
- The argumentspublic static Object getValueOfFieldByReflection(Object object, String fieldName)
object
- The objectfieldName
- Name of the fieldpublic static Object getValueForIdentityField(Object id, String fieldName)
id
- The identityfieldName
- Name of the fieldNucleusUserException
- if not possible to get the valuepublic static Class getClassForMemberOfClass(Class cls, String memberName)
cls
- The classmemberName
- The member namepublic static boolean isJavaBeanGetterMethod(Method method)
method
- The methodpublic static void clearFlags(boolean[] flags)
flags
- The flags array to clearpublic static void clearFlags(boolean[] flags, int[] fields)
flags
- Flags to clearfields
- fields numbers where the flags will be clearedpublic static int[] getFlagsSetTo(boolean[] flags, boolean state)
flags
- Array of flags (true or false)state
- The state to search (true or false)public static int[] getFlagsSetTo(boolean[] flags, int[] indices, boolean state)
flags
- the boolean arrayindices
- The positions in the arraystate
- The state that we want to matchpublic static boolean getBitFromInt(int bits, int bitIndex)
bits
- The int storing the bitsbitIndex
- The index of this bitpublic static int setBitInInt(int bits, int bitIndex, boolean flag)
bits
- The int storing the bitsbitIndex
- The index of this bitflag
- The boolean value to storeCopyright © 2019. All rights reserved.