@ComponentSpecification public interface ReflectionUtil extends ReflectionUtilLimited
reflection. visitObjectRecursive see PojoUtil instead.AnnotationUtil,
ReflectionUtilImpl| Modifier and Type | Field and Description |
|---|---|
static Annotation[] |
NO_ANNOTATIONS
An empty
Annotation-array. |
static Type[] |
NO_TYPES
an empty
Type-array |
NO_ARGUMENTS, NO_PARAMETERS| Modifier and Type | Method and Description |
|---|---|
int |
compare(Class<?> class1,
Class<?> class2)
This method compares the given classes.
|
Set<String> |
findClassNames(String packageName,
boolean includeSubPackages)
This method finds all classes that are located in the package identified by the given
packageName. |
Set<String> |
findClassNames(String packageName,
boolean includeSubPackages,
Filter<? super String> filter)
This method finds all classes that are located in the package identified by the given
packageName. |
Set<String> |
findClassNames(String packageName,
boolean includeSubPackages,
Filter<? super String> filter,
ClassLoader classLoader)
This method finds all classes that are located in the package identified by the given
packageName. |
void |
findClassNames(String packageName,
boolean includeSubPackages,
Set<String> classSet)
This method finds all classes that are located in the package identified by the given
packageName. |
Set<String> |
findResourceNames(String packageName,
boolean includeSubPackages,
Filter<? super String> filter)
This method finds all resources that are located in the package identified by the given
packageName. |
Set<String> |
findResourceNames(String packageName,
boolean includeSubPackages,
Filter<? super String> filter,
ClassLoader classLoader)
This method finds all resources that are located in the package identified by the given
packageName. |
Set<DataResource> |
findResources(String absoluteClasspath)
This method finds all resources that match to the given
absoluteClasspath. |
Set<DataResource> |
findResources(String packageName,
boolean includeSubPackages,
Filter<? super String> filter)
This method finds all resources that are located in the package identified by the given
packageName. |
Set<DataResource> |
findResources(String packageName,
boolean includeSubPackages,
Filter<? super String> filter,
ClassLoader classLoader)
This method finds all resources that are located in the package identified by the given
packageName. |
Class<?> |
getArrayClass(Class<?> componentType)
|
Class<?>[] |
getClasses(Object[] objects)
This method gets the
classes of the given objects. |
Method |
getParentMethod(Class<?> inheritingClass,
String methodName,
Class<?>[] parameterTypes)
This method gets the method
identified by methodName and
parameterTypes that is NOT declared but inherited by the given
declaringClass. |
Method |
getParentMethod(Method method)
This method gets the parent method of the given
method. |
<T> T |
getStaticField(Class<?> type,
String fieldName,
Class<T> fieldType,
boolean exactTypeMatch,
boolean mustBeFinal,
boolean inherit)
|
<T> T |
getStaticFieldOrNull(Class<?> type,
String fieldName,
Class<T> fieldType,
boolean exactTypeMatch,
boolean mustBeFinal,
boolean inherit) |
boolean |
isMarkerInterface(Class<?> interfaceClass)
This method determines if the given
interfaceClass is a marker-interface (e.g. |
Set<Class<?>> |
loadClasses(Collection<String> qualifiedClassNames)
This method loads the classes given as
Collection of fully qualified names by
qualifiedClassNames and returns them as Set. |
Set<Class<?>> |
loadClasses(Collection<String> classNames,
ClassResolver classResolver,
Filter<? super Class<?>> filter)
This method loads the classes given as
Collection of names by classNames using the given
classResolver. |
Set<Class<?>> |
loadClasses(Collection<String> qualifiedClassNames,
Filter<? super Class<?>> filter)
|
String |
toString(Type type)
This method gets the string representation of a
Type. |
void |
toString(Type type,
Appendable appendable,
Visitor<Class<?>> classFormatter)
This method gets the string representation of a
Type. |
String |
toStringSimple(Type type)
This method gets a compact string representation of a
Type. |
Type |
toType(String type)
|
Type |
toType(String type,
ClassResolver resolver)
|
getNonPrimitiveTypecreateGenericType, createGenericType, createGenericType, createGenericType, createGenericTypeOfList, createGenericTypeOfMap, createGenericTypeOfSetstatic final Annotation[] NO_ANNOTATIONS
Annotation-array.Class<?>[] getClasses(Object[] objects)
classes of the given objects.objects - is an array containing the objects for that the classes are requested.class of the object from the given array at the same position or null, if
that object is null.Class<?> getArrayClass(Class<?> componentType)
componentType - is the component type .array-class.Type toType(String type) throws TypeNotFoundException, NlsIllegalArgumentException
type - is the string representation of the requested type.TypeNotFoundException - if a class could NOT be found (e.g. in java.util.Map<java.long.String> - what
should be lang instead of long).NlsIllegalArgumentException - if the given type could NOT be parsed (e.g.
java.util.Map<<String>).toType(String, ClassResolver)Type toType(String type, ClassResolver resolver) throws TypeNotFoundException, NlsIllegalArgumentException
type - is the string representation of the requested type.resolver - is used to resolve classes.TypeNotFoundException - if a class could NOT be found (e.g. in java.util.Map<java.long.String> - what
should be lang instead of long).NlsIllegalArgumentException - if the given type could NOT be parsed (e.g.
java.util.Map<<String>).String toString(Type type)
Type. Instead of Type.toString() it
returns Class.getName() if the type is a Class.type - is the type to get as string.type.String toStringSimple(Type type)
Type. Instead of toString(Type) this method
will write simple names of Classes.type - is the type to get as string.type.void toString(Type type, Appendable appendable, Visitor<Class<?>> classFormatter) throws RuntimeIoException
Type. Instead of Type.toString() it
returns Class.getName() if the type is a Class.type - is the type to get as string.appendable - is where to append the string representation to.classFormatter - is a Visitor that gets called for each Class and has to
append as string-representation of the visited Class to the
appendable.RuntimeIoException - if the Appendable caused an IOExceptionint compare(Class<?> class1, Class<?> class2)
class1 - is the first class.class2 - is the second class.0 if both classes are equal to each other.1 if class1 inherits from class2.-1 if class2 inherits from class1.Integer.MIN_VALUE otherwise.boolean isMarkerInterface(Class<?> interfaceClass)
interfaceClass is a marker-interface (e.g. Serializable
or Cloneable). A marker-interface is also called a tagging-interface.interfaceClass - is the Class reflecting the interface to check.true if the given interfaceClass is a marker-interface, false otherwise (if regular
interface or no interface at all).<T> T getStaticField(Class<?> type, String fieldName, Class<T> fieldType, boolean exactTypeMatch, boolean mustBeFinal, boolean inherit) throws NoSuchFieldException, IllegalAccessException, IllegalArgumentException
T - the templated type the requested field is assigned to.type - is the class or interface containing the requested field.fieldName - is the name of the requested field.fieldType - is the type the requested field is assigned to. Therefore the field declaration (!) must be
assignable to this type.exactTypeMatch - - if true, the fieldType must match exactly the type of the static field,
else if false the type of the field may be a sub-type of fieldType or one of the types may
be primitive while the other is the according object-type.mustBeFinal - - if true, an IllegalArgumentException is thrown if the specified static field
exists but is NOT final, false otherwise.inherit - if true the field may be inherited from a super-class or
super-interface of type, else if false the field is only
accepted if it is declared in type.NoSuchFieldException - if the given type has no field with the given fieldName.IllegalAccessException - if you do not have permission to read the field (e.g. field is private).IllegalArgumentException - if the field is NOT static (or final) or has the wrong type.<T> T getStaticFieldOrNull(Class<?> type, String fieldName, Class<T> fieldType, boolean exactTypeMatch, boolean mustBeFinal, boolean inherit) throws IllegalArgumentException
T - the templated type the requested field is assigned to.type - is the class or interface containing the requested field.fieldName - is the name of the requested field.fieldType - is the type the requested field is assigned to. Therefore the field declaration (!) must be
assignable to this type.exactTypeMatch - - if true, the fieldType must match exactly the type of the static field,
else if false the type of the field may be a sub-type of fieldType or one of the types may
be primitive while the other is the according object-type.mustBeFinal - - if true, an IllegalArgumentException is thrown if the specified static field
exists but is NOT final, false otherwise.inherit - if true the field may be inherited from a super-class or
super-interface of type, else if false the field is only
accepted if it is declared in type.null if the field does NOT exist or is NOT
accessible.IllegalArgumentException - if the field is NOT static (or final) or has the wrong type.Method getParentMethod(Method method) throws SecurityException
method. The parent method is the method overridden (is the
sense of Override) by the given method or directly inherited from an interface.method - is the method.null if no such method exists.SecurityException - if access has been denied by the SecurityManager.Method getParentMethod(Class<?> inheritingClass, String methodName, Class<?>[] parameterTypes) throws SecurityException
identified by methodName and
parameterTypes that is NOT declared but inherited by the given
declaringClass.inheritingClass - is the class inheriting the requested method.methodName - is the name of the requested method.parameterTypes - is the signature of the requested method.null if no such method exists.SecurityException - if access has been denied by the SecurityManager.getParentMethod(Class, String, Class[])Set<String> findClassNames(String packageName, boolean includeSubPackages) throws RuntimeIoException
packageName. packageName - is the name of the Package to scan.includeSubPackages - - if true all sub-packages of the specified Package will be included in
the search.Set with the fully qualified names of all requested classes.RuntimeIoException - if the operation failed with an I/O error.Set<String> findClassNames(String packageName, boolean includeSubPackages, Filter<? super String> filter) throws RuntimeIoException
packageName. packageName - is the name of the Package to scan.includeSubPackages - - if true all sub-packages of the specified Package will be included in
the search.filter - is used to filter the Class-names to be added to the resulting
Set. The Filter will receive fully qualified class-names as argument
(e.g. "net.sf.mmm.reflect.api.ReflectionUtil").Set with the fully qualified names of all requested classes.RuntimeIoException - if the operation failed with an I/O error.Set<String> findClassNames(String packageName, boolean includeSubPackages, Filter<? super String> filter, ClassLoader classLoader) throws RuntimeIoException
packageName. packageName - is the name of the Package to scan.includeSubPackages - - if true all sub-packages of the specified Package will be included in
the search.filter - is used to filter the Class-names to be added to the resulting
Set. The Filter will receive fully qualified class-names as argument
(e.g. "net.sf.mmm.reflect.api.ReflectionUtil").classLoader - is the explicit ClassLoader to use.Set with the fully qualified names of all requested classes.RuntimeIoException - if the operation failed with an I/O error.void findClassNames(String packageName, boolean includeSubPackages, Set<String> classSet) throws RuntimeIoException
packageName. packageName - is the name of the Package to scan.includeSubPackages - - if true all sub-packages of the specified Package will be included in
the search.classSet - is where to add the classes.RuntimeIoException - if the operation failed with an I/O error.Set<Class<?>> loadClasses(Collection<String> qualifiedClassNames) throws TypeNotFoundException
Collection of fully qualified names by
qualifiedClassNames and returns them as Set.qualifiedClassNames - is a collection containing the qualified names of the classes to
load.Set with all loaded classes.TypeNotFoundException - if one of the classes could NOT be loaded.Set<Class<?>> loadClasses(Collection<String> qualifiedClassNames, Filter<? super Class<?>> filter) throws TypeNotFoundException
Collection of fully qualified names by
qualifiedClassNames. It returns a Set containing only those loaded classes that are
accepted by the given filter.qualifiedClassNames - is a collection containing the qualified names of the classes to
load.filter - is used to filter the loaded classes.Set with all loaded classes that are accepted by the given
filter.TypeNotFoundException - if one of the classes could NOT be loaded.Set<Class<?>> loadClasses(Collection<String> classNames, ClassResolver classResolver, Filter<? super Class<?>> filter) throws TypeNotFoundException
Collection of names by classNames using the given
classResolver. It returns a Set containing only those loaded classes that are
accepted by the given filter.classNames - is a collection containing the names of the classes to load. The class names should typically be
the qualified names of the classes to load. But this may differ depending on the
classResolver.classResolver - is used to load/resolve the classes by their names.filter - is used to filter the loaded classes.Set with all loaded classes that are accepted by the given
filter.TypeNotFoundException - if one of the classes could NOT be loaded.Set<String> findResourceNames(String packageName, boolean includeSubPackages, Filter<? super String> filter) throws RuntimeIoException
packageName. packageName - is the name of the Package to scan. Both "." and "/" are accepted as separator (e.g.
"net.sf.mmm.util.reflect).includeSubPackages - - if true all sub-packages of the specified Package will be included in
the search.filter - is used to filter the resources. The Filter will receive fully
qualified classpath entries as argument (e.g. "net/sf/mmm/util/reflect/beans-util-reflect.xml"). Typically
you will exclude resources that end with ".class" or only accept resources that end with ".xml".Set with the fully qualified names of all requested resources (e.g.
"net/sf/mmm/util/reflect/beans-util-reflect.xml").RuntimeIoException - if the operation failed with an I/O error.Set<String> findResourceNames(String packageName, boolean includeSubPackages, Filter<? super String> filter, ClassLoader classLoader) throws RuntimeIoException
packageName. packageName - is the name of the Package to scan. Both "." and "/" are accepted as separator (e.g.
"net.sf.mmm.util.reflect).includeSubPackages - - if true all sub-packages of the specified Package will be included in
the search.filter - is used to filter the resources. The Filter will receive fully
qualified classpath entries as argument (e.g. "net/sf/mmm/util/reflect/beans-util-reflect.xml"). Typically
you will exclude resources that end with ".class" or only accept resources that end with ".xml".classLoader - is the explicit ClassLoader to use.Set with the fully qualified names of all requested resources (e.g.
"net/sf/mmm/util/reflect/beans-util-reflect.xml").RuntimeIoException - if the operation failed with an I/O error.Set<DataResource> findResources(String packageName, boolean includeSubPackages, Filter<? super String> filter) throws RuntimeIoException
packageName. packageName - is the name of the Package to scan. Both "." and "/" are accepted as separator (e.g.
"net.sf.mmm.util.reflect).includeSubPackages - - if true all sub-packages of the specified Package will be included in
the search.filter - is used to filter the resources. Typically you will exclude resources
that end with ".class" or only accept resources that end with ".xml".Set with all requested resources.RuntimeIoException - if the operation failed with an I/O error.Set<DataResource> findResources(String absoluteClasspath) throws RuntimeIoException
absoluteClasspath. Unlike
ClasspathResource.ClasspathResource(String) this method will return all
resources that with the given classpath (e.g. out of multiple JAR-files). absoluteClasspath - is the absolute path to the resource. E.g.
"net/sf/mmm/util/resource/ClasspathResource.txt".Set with all requested resources.RuntimeIoException - if the operation failed with an I/O error.Set<DataResource> findResources(String packageName, boolean includeSubPackages, Filter<? super String> filter, ClassLoader classLoader) throws RuntimeIoException
packageName. packageName - is the name of the Package to scan. Both "." and "/" are accepted as separator (e.g.
"net.sf.mmm.util.reflect).includeSubPackages - - if true all sub-packages of the specified Package will be included in
the search.filter - is used to filter the resources. Typically you will exclude resources
that end with ".class" or only accept resources that end with ".xml".classLoader - is the explicit ClassLoader to use.Set with all requested resources.RuntimeIoException - if the operation failed with an I/O error.Copyright © 2001–2016 mmm-Team. All rights reserved.