Save This Page
Home » bundlor-1.0.0.RELEASE » org.springframework » util » [javadoc | source]
org.springframework.util
abstract public class: ClassUtils [javadoc | source]
java.lang.Object
   org.springframework.util.ClassUtils
Miscellaneous class utility methods. Mainly for internal use within the framework; consider Jakarta's Commons Lang for a more comprehensive suite of class utilities.
Field Summary
public static final  String ARRAY_SUFFIX    Suffix for array class names: "[]" 
public static final  String CGLIB_CLASS_SEPARATOR    The CGLIB class separator character "$$" 
public static final  String CLASS_FILE_SUFFIX    The ".class" file suffix 
Method from org.springframework.util.ClassUtils Summary:
addResourcePathToPackagePath,   classNamesToString,   classNamesToString,   classPackageAsResourcePath,   convertClassNameToResourcePath,   convertResourcePathToClassName,   createCompositeInterface,   forName,   forName,   getAllInterfaces,   getAllInterfacesAsSet,   getAllInterfacesForClass,   getAllInterfacesForClass,   getAllInterfacesForClassAsSet,   getAllInterfacesForClassAsSet,   getClassFileName,   getConstructorIfAvailable,   getDefaultClassLoader,   getDescriptiveType,   getMethodCountForName,   getMethodIfAvailable,   getMostSpecificMethod,   getPackageName,   getQualifiedMethodName,   getQualifiedName,   getShortName,   getShortName,   getShortNameAsProperty,   getStaticMethod,   getUserClass,   getUserClass,   hasAtLeastOneMethodWithName,   hasConstructor,   hasMethod,   isAssignable,   isAssignableValue,   isCacheSafe,   isPresent,   isPresent,   isPrimitiveArray,   isPrimitiveOrWrapper,   isPrimitiveWrapper,   isPrimitiveWrapperArray,   isVisible,   overrideThreadContextClassLoader,   resolveClassName,   resolvePrimitiveClassName
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.springframework.util.ClassUtils Detail:
 public static String addResourcePathToPackagePath(Class clazz,
    String resourceName) 
    Return a path suitable for use with ClassLoader.getResource (also suitable for use with Class.getResource by prepending a slash ('/') to the return value. Built by taking the package of the specified class file, converting all dots ('.') to slashes ('/'), adding a trailing slash if necesssary, and concatenating the specified resource name to this.
    As such, this function may be used to build a path suitable for loading a resource file that is in the same package as a class file, although org.springframework.core.io.ClassPathResource is usually even more convenient.
 public static String classNamesToString(Class[] classes) 
    Build a String that consists of the names of the classes/interfaces in the given array.

    Basically like AbstractCollection.toString(), but stripping the "class "/"interface " prefix before every class name.

 public static String classNamesToString(Collection classes) 
    Build a String that consists of the names of the classes/interfaces in the given collection.

    Basically like AbstractCollection.toString(), but stripping the "class "/"interface " prefix before every class name.

 public static String classPackageAsResourcePath(Class clazz) 
    Given an input class object, return a string which consists of the class's package name as a pathname, i.e., all dots ('.') are replaced by slashes ('/'). Neither a leading nor trailing slash is added. The result could be concatenated with a slash and the name of a resource, and fed directly to ClassLoader.getResource(). For it to be fed to Class.getResource instead, a leading slash would also have to be prepended to the returned value.
 public static String convertClassNameToResourcePath(String className) 
    Convert a "."-based fully qualified class name to a "/"-based resource path.
 public static String convertResourcePathToClassName(String resourcePath) 
    Convert a "/"-based resource path to a "."-based fully qualified class name.
 public static Class createCompositeInterface(Class[] interfaces,
    ClassLoader classLoader) 
    Create a composite interface Class for the given interfaces, implementing the given interfaces in one single Class.

    This implementation builds a JDK proxy class for the given interfaces.

 public static Class forName(String name) throws ClassNotFoundException, LinkageError 
    Replacement for Class.forName() that also returns Class instances for primitives (like "int") and array class names (like "String[]").

    Always uses the default class loader: that is, preferably the thread context class loader, or the ClassLoader that loaded the ClassUtils class as fallback.

 public static Class forName(String name,
    ClassLoader classLoader) throws ClassNotFoundException, LinkageError 
    Replacement for Class.forName() that also returns Class instances for primitives (like "int") and array class names (like "String[]").
 public static Class[] getAllInterfaces(Object instance) 
    Return all interfaces that the given instance implements as array, including ones implemented by superclasses.
 public static Set getAllInterfacesAsSet(Object instance) 
    Return all interfaces that the given instance implements as Set, including ones implemented by superclasses.
 public static Class[] getAllInterfacesForClass(Class clazz) 
    Return all interfaces that the given class implements as array, including ones implemented by superclasses.

    If the class itself is an interface, it gets returned as sole interface.

 public static Class[] getAllInterfacesForClass(Class clazz,
    ClassLoader classLoader) 
    Return all interfaces that the given class implements as array, including ones implemented by superclasses.

    If the class itself is an interface, it gets returned as sole interface.

 public static Set getAllInterfacesForClassAsSet(Class clazz) 
    Return all interfaces that the given class implements as Set, including ones implemented by superclasses.

    If the class itself is an interface, it gets returned as sole interface.

 public static Set getAllInterfacesForClassAsSet(Class clazz,
    ClassLoader classLoader) 
    Return all interfaces that the given class implements as Set, including ones implemented by superclasses.

    If the class itself is an interface, it gets returned as sole interface.

 public static String getClassFileName(Class clazz) 
    Determine the name of the class file, relative to the containing package: e.g. "String.class"
 public static Constructor getConstructorIfAvailable(Class clazz,
    Class[] paramTypes) 
    Determine whether the given class has a constructor with the given signature, and return it if available (else return null).

    Essentially translates NoSuchMethodException to null.

 public static ClassLoader getDefaultClassLoader() 
    Return the default ClassLoader to use: typically the thread context ClassLoader, if available; the ClassLoader that loaded the ClassUtils class will be used as fallback.

    Call this method if you intend to use the thread context ClassLoader in a scenario where you absolutely need a non-null ClassLoader reference: for example, for class path resource loading (but not necessarily for Class.forName, which accepts a null ClassLoader reference as well).

 public static String getDescriptiveType(Object value) 
    Return a descriptive name for the given object's type: usually simply the class name, but component type class name + "[]" for arrays, and an appended list of implemented interfaces for JDK proxies.
 public static int getMethodCountForName(Class clazz,
    String methodName) 
    Return the number of methods with a given name (with any argument types), for the given class and/or its superclasses. Includes non-public methods.
 public static Method getMethodIfAvailable(Class clazz,
    String methodName,
    Class[] paramTypes) 
    Determine whether the given class has a method with the given signature, and return it if available (else return null).

    Essentially translates NoSuchMethodException to null.

 public static Method getMostSpecificMethod(Method method,
    Class targetClass) 
    Given a method, which may come from an interface, and a target class used in the current reflective invocation, find the corresponding target method if there is one. E.g. the method may be IFoo.bar() and the target class may be DefaultFoo. In this case, the method may be DefaultFoo.bar(). This enables attributes on that method to be found.

    NOTE: In contrast to org.springframework.aop.support.AopUtils#getMostSpecificMethod , this method does not resolve Java 5 bridge methods automatically. Call org.springframework.core.BridgeMethodResolver#findBridgedMethod if bridge method resolution is desirable (e.g. for obtaining metadata from the original method definition).

 public static String getPackageName(Class clazz) 
    Determine the name of the package of the given class: e.g. "java.lang" for the java.lang.String class.
 public static String getQualifiedMethodName(Method method) 
    Return the qualified name of the given method, consisting of fully qualified interface/class name + "." + method name.
 public static String getQualifiedName(Class clazz) 
    Return the qualified name of the given class: usually simply the class name, but component type class name + "[]" for arrays.
 public static String getShortName(String className) 
    Get the class name without the qualified package name.
 public static String getShortName(Class clazz) 
    Get the class name without the qualified package name.
 public static String getShortNameAsProperty(Class clazz) 
    Return the short string name of a Java class in decapitalized JavaBeans property format. Strips the outer class name in case of an inner class.
 public static Method getStaticMethod(Class clazz,
    String methodName,
    Class[] args) 
    Return a static method of a class.
 public static Class getUserClass(Object instance) 
    Return the user-defined class for the given instance: usually simply the class of the given instance, but the original class in case of a CGLIB-generated subclass.
 public static Class getUserClass(Class clazz) 
    Return the user-defined class for the given class: usually simply the given class, but the original class in case of a CGLIB-generated subclass.
 public static boolean hasAtLeastOneMethodWithName(Class clazz,
    String methodName) 
    Does the given class and/or its superclasses at least have one or more methods (with any argument types)? Includes non-public methods.
 public static boolean hasConstructor(Class clazz,
    Class[] paramTypes) 
    Determine whether the given class has a constructor with the given signature.

    Essentially translates NoSuchMethodException to "false".

 public static boolean hasMethod(Class clazz,
    String methodName,
    Class[] paramTypes) 
    Determine whether the given class has a method with the given signature.

    Essentially translates NoSuchMethodException to "false".

 public static boolean isAssignable(Class lhsType,
    Class rhsType) 
    Check if the right-hand side type may be assigned to the left-hand side type, assuming setting by reflection. Considers primitive wrapper classes as assignable to the corresponding primitive types.
 public static boolean isAssignableValue(Class type,
    Object value) 
    Determine if the given type is assignable from the given value, assuming setting by reflection. Considers primitive wrapper classes as assignable to the corresponding primitive types.
 public static boolean isCacheSafe(Class clazz,
    ClassLoader classLoader) 
    Check whether the given class is cache-safe in the given context, i.e. whether it is loaded by the given ClassLoader or a parent of it.
 public static boolean isPresent(String className) 
    Determine whether the Class identified by the supplied name is present and can be loaded. Will return false if either the class or one of its dependencies is not present or cannot be loaded.
 public static boolean isPresent(String className,
    ClassLoader classLoader) 
    Determine whether the Class identified by the supplied name is present and can be loaded. Will return false if either the class or one of its dependencies is not present or cannot be loaded.
 public static boolean isPrimitiveArray(Class clazz) 
    Check if the given class represents an array of primitives, i.e. boolean, byte, char, short, int, long, float, or double.
 public static boolean isPrimitiveOrWrapper(Class clazz) 
    Check if the given class represents a primitive (i.e. boolean, byte, char, short, int, long, float, or double) or a primitive wrapper (i.e. Boolean, Byte, Character, Short, Integer, Long, Float, or Double).
 public static boolean isPrimitiveWrapper(Class clazz) 
    Check if the given class represents a primitive wrapper, i.e. Boolean, Byte, Character, Short, Integer, Long, Float, or Double.
 public static boolean isPrimitiveWrapperArray(Class clazz) 
    Check if the given class represents an array of primitive wrappers, i.e. Boolean, Byte, Character, Short, Integer, Long, Float, or Double.
 public static boolean isVisible(Class clazz,
    ClassLoader classLoader) 
    Check whether the given class is visible in the given ClassLoader.
 public static ClassLoader overrideThreadContextClassLoader(ClassLoader classLoaderToUse) 
    Override the thread context ClassLoader with the environment's bean ClassLoader if necessary, i.e. if the bean ClassLoader is not equivalent to the thread context ClassLoader already.
 public static Class resolveClassName(String className,
    ClassLoader classLoader) throws IllegalArgumentException 
    Resolve the given class name into a Class instance. Supports primitives (like "int") and array class names (like "String[]").

    This is effectively equivalent to the forName method with the same arguments, with the only difference being the exceptions thrown in case of class loading failure.

 public static Class resolvePrimitiveClassName(String name) 
    Resolve the given class name as primitive class, if appropriate, according to the JVM's naming rules for primitive classes.

    Also supports the JVM's internal class names for primitive arrays. Does not support the "[]" suffix notation for primitive arrays; this is only supported by #forName .