Package org.apache.tomcat.util

## Class IntrospectionUtils

- java.lang.Object
- - org.apache.tomcat.util.IntrospectionUtils

    public final class IntrospectionUtils
    extends java.lang.Object

Utils for introspection and reflection

### Nested Class Summary

Nested Classes
`static interface` `IntrospectionUtils.PropertySource`
`static interface` `IntrospectionUtils.SecurePropertySource`

### Constructor Summary

Constructors
`IntrospectionUtils()`

### Method Summary

All Methods Static Methods Concrete Methods Deprecated Methods
`static java.lang.Object` `callMethod1​(java.lang.Object target, java.lang.String methodN, java.lang.Object param1, java.lang.String typeParam1, java.lang.ClassLoader cl)`
`static java.lang.Object` `callMethodN​(java.lang.Object target, java.lang.String methodN, java.lang.Object[] params, java.lang.Class<?>[] typeParams)`
`static java.lang.String` `capitalize​(java.lang.String name)` Reverse of Introspector.decapitalize.
`static void` `clear()`
`static java.lang.Object` `convert​(java.lang.String object, java.lang.Class<?> paramType)`
`static java.lang.reflect.Method` `findMethod​(java.lang.Class<?> c, java.lang.String name, java.lang.Class<?>[] params)`
`static java.lang.reflect.Method[]` `findMethods​(java.lang.Class<?> c)`
`static java.lang.Object` `getProperty​(java.lang.Object o, java.lang.String name)`
`static boolean` `isInstance​(java.lang.Class<?> clazz, java.lang.String type)` Checks to see if the specified class is an instance of or assignable from the specified type.
`static java.lang.String` `replaceProperties​(java.lang.String value, java.util.Hashtable<java.lang.Object,​java.lang.Object> staticProp, IntrospectionUtils.PropertySource[] dynamicProp)` Deprecated. Use `replaceProperties(String, Hashtable, PropertySource[], ClassLoader)`
`static java.lang.String` `replaceProperties​(java.lang.String value, java.util.Hashtable<java.lang.Object,​java.lang.Object> staticProp, IntrospectionUtils.PropertySource[] dynamicProp, java.lang.ClassLoader classLoader)` Replace ${NAME} with the property value.
`static boolean` `setProperty​(java.lang.Object o, java.lang.String name, java.lang.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 boolean` `setProperty​(java.lang.Object o, java.lang.String name, java.lang.String value, boolean invokeSetProperty)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### IntrospectionUtils

    public IntrospectionUtils()

### Method Detail

#### setProperty

    public static boolean setProperty​(java.lang.Object o,
                                      java.lang.String name,
                                      java.lang.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).

Parameters:
  `o` - The object to set a property on
  `name` - The property name
  `value` - The property value
Returns:
  `true` if operation was successful

#### setProperty

    public static boolean setProperty​(java.lang.Object o,
                                      java.lang.String name,
                                      java.lang.String value,
                                      boolean invokeSetProperty)

#### getProperty

    public static java.lang.Object getProperty​(java.lang.Object o,
                                               java.lang.String name)

#### replaceProperties

    @Deprecated
    public static java.lang.String replaceProperties​(java.lang.String value,
                                                     java.util.Hashtable<java.lang.Object,​java.lang.Object> staticProp,
                                                     IntrospectionUtils.PropertySource[] dynamicProp)

Deprecated.
Use `replaceProperties(String, Hashtable, PropertySource[], ClassLoader)`
Replaces ${NAME} in the value with the value of the property 'NAME'. Replaces ${NAME:DEFAULT} with the value of the property 'NAME:DEFAULT', if the property 'NAME:DEFAULT' is not set, the expression is replaced with the value of the property 'NAME', if the property 'NAME' is not set, the expression is replaced with 'DEFAULT'. If the property is not set and there is no default the value will be returned unmodified.

Parameters:
  `value` - The value
  `staticProp` - Replacement properties
  `dynamicProp` - Replacement properties
Returns:
  the replacement value

#### replaceProperties

    public static java.lang.String replaceProperties​(java.lang.String value,
                                                     java.util.Hashtable<java.lang.Object,​java.lang.Object> staticProp,
                                                     IntrospectionUtils.PropertySource[] dynamicProp,
                                                     java.lang.ClassLoader classLoader)

Replace ${NAME} with the property value.

Parameters:
  `value` - The value
  `staticProp` - Replacement properties
  `dynamicProp` - Replacement properties
  `classLoader` - Class loader associated with the code requesting the property
Returns:
  the replacement value

#### capitalize

    public static java.lang.String capitalize​(java.lang.String name)

Reverse of Introspector.decapitalize.

Parameters:
  `name` - The name
Returns:
  the capitalized string

#### clear

    public static void clear()

#### findMethods

    public static java.lang.reflect.Method[] findMethods​(java.lang.Class<?> c)

#### findMethod

    public static java.lang.reflect.Method findMethod​(java.lang.Class<?> c,
                                                      java.lang.String name,
                                                      java.lang.Class<?>[] params)

#### callMethod1

    public static java.lang.Object callMethod1​(java.lang.Object target,
                                               java.lang.String methodN,
                                               java.lang.Object param1,
                                               java.lang.String typeParam1,
                                               java.lang.ClassLoader cl)
                                        throws java.lang.Exception

Throws:
  `java.lang.Exception`

#### callMethodN

    public static java.lang.Object callMethodN​(java.lang.Object target,
                                               java.lang.String methodN,
                                               java.lang.Object[] params,
                                               java.lang.Class<?>[] typeParams)
                                        throws java.lang.Exception

Throws:
  `java.lang.Exception`

#### convert

    public static java.lang.Object convert​(java.lang.String object,
                                           java.lang.Class<?> paramType)

#### isInstance

    public static boolean isInstance​(java.lang.Class<?> clazz,
                                     java.lang.String type)

Checks to see if the specified class is an instance of or assignable from the specified type. The class `clazz`, all its superclasses, interfaces and those superinterfaces are tested for a match against the type name `type`. This is similar to `instanceof` or `Class.isAssignableFrom(java.lang.Class<?>)` except that the target type will not be resolved into a Class object, which provides some security and memory benefits.

Parameters:
  `clazz` - The class to test for a match.
  `type` - The name of the type that `clazz` must be.
Returns:
  `true` if the `clazz` tested is an instance of the specified `type`, `false` otherwise.