org.apache.tomcat.util

Class IntrospectionUtils

public final class IntrospectionUtils extends Object

Utils for introspection and reflection
Nested Class Summary
static interfaceIntrospectionUtils.AttributeHolder
static interfaceIntrospectionUtils.PropertySource
Field Summary
static StringPATH_SEPARATOR
Method Summary
static voidaddJarsFromClassPath(Vector jars, String cp)
Add elements from the classpath cp to a Vector jars as file URLs (We use Vector for JDK 1.1 compat).
static voidaddToClassPath(Vector cpV, String dir)
Add all the jar files in a dir to the classpath, represented as a Vector of URLs.
static voidaddToolsJar(Vector v)
static voidcallMain(Class c, String[] args)
static ObjectcallMethod0(Object target, String methodN)
static ObjectcallMethod1(Object target, String methodN, Object param1, String typeParam1, ClassLoader cl)
static ObjectcallMethodN(Object target, String methodN, Object[] params, Class[] typeParams)
static Stringcapitalize(String name)
Reverse of Introspector.decapitalize
static StringclassPathAdd(URL[] urls, String cp)
Adds classpath entries from a vector of URL's to the "tc_path_add" System property.
static voidclear()
static Objectconvert(String object, Class paramType)
static voiddisplayClassPath(String msg, URL[] cp)
Debug method, display the classpath
static voidexecute(Object proxy, String method)
Call execute() - any ant-like task should work
static String[]findBooleanSetters(Class c)
static MethodfindMethod(Class c, String name, Class[] params)
static Method[]findMethods(Class c)
static String[]findVoidSetters(Class c)
static ObjectgetAttribute(Object proxy, String n)
Call void getAttribute( String )
static URL[]getClassPath(Vector v)
Return a URL[] that can be used to construct a class loader
static URL[]getClassPath(String dir, String cpath, String cpathProp, boolean addTools)
Construct a URL classpath from files in a directory, a cpath property, and tools.jar.
static String[]getFilesByExt(String ld, String ext)
Return all files with a given extension in a dir
static ObjectgetProperty(Object o, String name)
static URLgetURL(String base, String file)
Construct a file url from a file, using a base dir
static ClassLoadergetURLClassLoader(URL[] urls, ClassLoader parent)
Construct a URLClassLoader.
static StringguessInstall(String installSysProp, String homeSysProp, String jarName)
static StringguessInstall(String installSysProp, String homeSysProp, String jarName, String classFile)
Guess a product install/home by analyzing the class path.
static booleanhasHook(Object obj, String methodN)
Test if the object implements a particular method
static booleanprocessArgs(Object proxy, String[] args)
static booleanprocessArgs(Object proxy, String[] args, String[] args0, String[] args1, Hashtable aliases)
static StringreplaceProperties(String value, Object getter)
Replace ${NAME} with the property value
static StringreplaceProperties(String value, Hashtable staticProp, IntrospectionUtils.PropertySource[] dynamicProp)
Replace ${NAME} with the property value
static voidsetAttribute(Object proxy, String n, Object v)
Call void setAttribute( String ,Object )
static booleansetProperty(Object o, String name, String value)
Find a method with the right name If found, call the method ( if param is int or boolean we'll convert value to the right type before) - that means you can have setDebug(1).
static booleansetProperty(Object o, String name, String value, boolean invokeSetProperty)
static voidsetProperty(Object o, String name)
static StringunCapitalize(String name)

Field Detail

PATH_SEPARATOR

public static String PATH_SEPARATOR

Method Detail

addJarsFromClassPath

public static void addJarsFromClassPath(Vector jars, String cp)
Add elements from the classpath cp to a Vector jars as file URLs (We use Vector for JDK 1.1 compat).

Parameters: jars The jar list cp a String classpath of directory or jar file elements separated by path.separator delimiters.

Throws: IOException If an I/O error occurs MalformedURLException Doh ;)

addToClassPath

public static void addToClassPath(Vector cpV, String dir)
Add all the jar files in a dir to the classpath, represented as a Vector of URLs.

addToolsJar

public static void addToolsJar(Vector v)

callMain

public static void callMain(Class c, String[] args)

callMethod0

public static Object callMethod0(Object target, String methodN)

callMethod1

public static Object callMethod1(Object target, String methodN, Object param1, String typeParam1, ClassLoader cl)

callMethodN

public static Object callMethodN(Object target, String methodN, Object[] params, Class[] typeParams)

capitalize

public static String capitalize(String name)
Reverse of Introspector.decapitalize

classPathAdd

public static String classPathAdd(URL[] urls, String cp)
Adds classpath entries from a vector of URL's to the "tc_path_add" System property. This System property lists the classpath entries common to web applications. This System property is currently used by Jasper when its JSP servlet compiles the Java file for a JSP.

clear

public static void clear()

convert

public static Object convert(String object, Class paramType)

displayClassPath

public static void displayClassPath(String msg, URL[] cp)
Debug method, display the classpath

execute

public static void execute(Object proxy, String method)
Call execute() - any ant-like task should work

findBooleanSetters

public static String[] findBooleanSetters(Class c)

findMethod

public static Method findMethod(Class c, String name, Class[] params)

findMethods

public static Method[] findMethods(Class c)

findVoidSetters

public static String[] findVoidSetters(Class c)

getAttribute

public static Object getAttribute(Object proxy, String n)
Call void getAttribute( String )

getClassPath

public static URL[] getClassPath(Vector v)
Return a URL[] that can be used to construct a class loader

getClassPath

public static URL[] getClassPath(String dir, String cpath, String cpathProp, boolean addTools)
Construct a URL classpath from files in a directory, a cpath property, and tools.jar.

getFilesByExt

public static String[] getFilesByExt(String ld, String ext)
Return all files with a given extension in a dir

getProperty

public static Object getProperty(Object o, String name)

getURL

public static URL getURL(String base, String file)
Construct a file url from a file, using a base dir

getURLClassLoader

public static ClassLoader getURLClassLoader(URL[] urls, ClassLoader parent)
Construct a URLClassLoader. Will compile and work in JDK1.1 too.

guessInstall

public static String guessInstall(String installSysProp, String homeSysProp, String jarName)

guessInstall

public static String guessInstall(String installSysProp, String homeSysProp, String jarName, String classFile)
Guess a product install/home by analyzing the class path. It works for product using the pattern: lib/executable.jar or if executable.jar is included in classpath by a shell script. ( java -jar also works ) Insures both "install" and "home" System properties are set. If either or both System properties are unset, "install" and "home" will be set to the same value. This value will be the other System property that is set, or the guessed value if neither is set.

hasHook

public static boolean hasHook(Object obj, String methodN)
Test if the object implements a particular method

processArgs

public static boolean processArgs(Object proxy, String[] args)

processArgs

public static boolean processArgs(Object proxy, String[] args, String[] args0, String[] args1, Hashtable aliases)

replaceProperties

public static String replaceProperties(String value, Object getter)

Deprecated: Use the explicit method

Replace ${NAME} with the property value

replaceProperties

public static String replaceProperties(String value, Hashtable staticProp, IntrospectionUtils.PropertySource[] dynamicProp)
Replace ${NAME} with the property value

setAttribute

public static void setAttribute(Object proxy, String n, Object v)
Call void setAttribute( String ,Object )

setProperty

public static boolean setProperty(Object o, String name, String value)
Find a method with the right name If found, call the method ( if param is int or boolean we'll convert value to the right type before) - that means you can have setDebug(1).

setProperty

public static boolean setProperty(Object o, String name, String value, boolean invokeSetProperty)

setProperty

public static void setProperty(Object o, String name)

unCapitalize

public static String unCapitalize(String name)
Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.