Package org.apache.velocity.tools
Class ClassUtils
- java.lang.Object
-
- org.apache.velocity.tools.ClassUtils
-
public class ClassUtils extends java.lang.ObjectRepository for common class and reflection methods.- Version:
- $Id: ClassUtils.java 511959 2007-02-26 19:24:39Z nbubna $
- Author:
- Nathan Bubna
-
-
Field Summary
Fields Modifier and Type Field Description static ClassUtilsINSTANCE
-
Constructor Summary
Constructors Modifier Constructor Description privateClassUtils()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static voidaddResource(java.lang.String name, java.util.Set<java.lang.String> urls, java.lang.Class c)private static booleanaddResources(java.lang.String name, java.util.Set<java.lang.String> urls, java.lang.ClassLoader loader)static java.lang.reflect.MethodfindDeclaredMethod(java.lang.Class clazz, java.lang.String name, java.lang.Class[] params)static java.lang.reflect.MethodfindMethod(java.lang.Class clazz, java.lang.String name, java.lang.Class[] params)private static java.lang.ClassLoadergetCallerLoader(java.lang.Object caller)static java.lang.ClassgetClass(java.lang.String name)Load a class with a given name.private static java.lang.ClassLoadergetClassLoader()static java.lang.ObjectgetFieldValue(java.lang.Class clazz, java.lang.String fieldname)static java.lang.ObjectgetFieldValue(java.lang.String fieldPath)ClassUtilsgetInstance()static java.lang.ObjectgetInstance(java.lang.String classname)static java.util.IteratorgetIterator(java.lang.Object obj)Retrieves an Iterator from or creates and Iterator for the specified object.static java.net.URLgetResource(java.lang.String name, java.lang.Object caller)Load a given resource.static java.io.InputStreamgetResourceAsStream(java.lang.String name, java.lang.Object caller)This is a convenience method to load a resource as a stream.static java.util.List<java.net.URL>getResources(java.lang.String name, java.lang.Object caller)Load all resources with the specified name.private static java.lang.ClassLoadergetThreadContextLoader()
-
-
-
Field Detail
-
INSTANCE
public static final ClassUtils INSTANCE
-
-
Method Detail
-
getInstance
public ClassUtils getInstance()
-
getThreadContextLoader
private static final java.lang.ClassLoader getThreadContextLoader()
-
getClassLoader
private static final java.lang.ClassLoader getClassLoader()
-
getCallerLoader
private static final java.lang.ClassLoader getCallerLoader(java.lang.Object caller)
-
getClass
public static java.lang.Class getClass(java.lang.String name) throws java.lang.ClassNotFoundExceptionLoad a class with a given name. It will try to load the class in the following order:- From
Thread.currentThread().getContextClassLoader() - Using the basic
Class.forName(java.lang.String) - From
ClassUtils.class.getClassLoader()
- Parameters:
name- Fully qualified class name to be loaded- Returns:
- Class object
- Throws:
java.lang.ClassNotFoundException- if the class cannot be found
- From
-
getInstance
public static java.lang.Object getInstance(java.lang.String classname) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException- Throws:
java.lang.ClassNotFoundExceptionjava.lang.IllegalAccessExceptionjava.lang.InstantiationException
-
getResources
public static java.util.List<java.net.URL> getResources(java.lang.String name, java.lang.Object caller)Load all resources with the specified name. If none are found, we prepend the name with '/' and try again. This will attempt to load the resources from the following methods (in order):- Thread.currentThread().getContextClassLoader().getResources(name)
ClassUtils.class.getClassLoader().getResources(name)ClassUtils.class.getResource(name)getCallerLoader(Object caller).getResources(name)- caller.getClass().getResource(name)
- Parameters:
name- The name of the resources to loadcaller- The instance orClasscalling this method
-
addResource
private static final void addResource(java.lang.String name, java.util.Set<java.lang.String> urls, java.lang.Class c)
-
addResources
private static final boolean addResources(java.lang.String name, java.util.Set<java.lang.String> urls, java.lang.ClassLoader loader)
-
getResource
public static java.net.URL getResource(java.lang.String name, java.lang.Object caller)Load a given resource. This method will try to load the resource using the following methods (in order):- Thread.currentThread().getContextClassLoader().getResource(name)
ClassUtils.class.getClassLoader().getResource(name)ClassUtils.class.getResource(name)- caller.getClass().getResource(name) or, if caller is a Class, caller.getResource(name)
- Parameters:
name- The name of the resource to loadcaller- The instance orClasscalling this method
-
getResourceAsStream
public static java.io.InputStream getResourceAsStream(java.lang.String name, java.lang.Object caller)This is a convenience method to load a resource as a stream. The algorithm used to find the resource is given in getResource()- Parameters:
name- The name of the resource to loadcaller- The instance orClasscalling this method
-
findMethod
public static java.lang.reflect.Method findMethod(java.lang.Class clazz, java.lang.String name, java.lang.Class[] params) throws java.lang.SecurityException- Throws:
java.lang.SecurityException
-
findDeclaredMethod
public static java.lang.reflect.Method findDeclaredMethod(java.lang.Class clazz, java.lang.String name, java.lang.Class[] params) throws java.lang.SecurityException- Throws:
java.lang.SecurityException
-
getFieldValue
public static java.lang.Object getFieldValue(java.lang.String fieldPath) throws java.lang.ClassNotFoundException, java.lang.NoSuchFieldException, java.lang.SecurityException, java.lang.IllegalAccessException- Throws:
java.lang.ClassNotFoundExceptionjava.lang.NoSuchFieldExceptionjava.lang.SecurityExceptionjava.lang.IllegalAccessException
-
getFieldValue
public static java.lang.Object getFieldValue(java.lang.Class clazz, java.lang.String fieldname) throws java.lang.NoSuchFieldException, java.lang.SecurityException, java.lang.IllegalAccessException- Throws:
java.lang.NoSuchFieldExceptionjava.lang.SecurityExceptionjava.lang.IllegalAccessException
-
getIterator
public static java.util.Iterator getIterator(java.lang.Object obj) throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetExceptionRetrieves an Iterator from or creates and Iterator for the specified object. This method is almost entirely copied from Engine's UberspectImpl class.- Throws:
java.lang.NoSuchMethodExceptionjava.lang.IllegalAccessExceptionjava.lang.reflect.InvocationTargetException
-
-