ReflectionUtils (Bean Scripting Framework API)
Keywords: org.apache.bsf.util.ReflectionUtils class

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.bsf.util
Class ReflectionUtils

    java.lang.Object
      org.apache.bsf.util.ReflectionUtils

public class ReflectionUtils
extends java.lang.Object

This file is a collection of reflection utilities. There are utilities for creating beans, getting bean infos, setting/getting properties, and binding events.

Author:
  Sanjiva Weerawarana, Joseph Kesselman

Constructor Summary
`ReflectionUtils()`

Method Summary
`static void` | `addEventListener(java.lang.Object source, java.lang.String eventSetName, EventProcessor processor)` Add an event processor as a listener to some event coming out of an object.
`static Bean` | `createBean(java.lang.ClassLoader cld, java.lang.String className, java.lang.Class[] argTypes, java.lang.Object[] args)` Create a bean using given class loader and using the appropriate constructor for the given args of the given arg types.
`static Bean` | `createBean(java.lang.ClassLoader cld, java.lang.String className, java.lang.Object[] args)` Create a bean using given class loader and using the appropriate constructor for the given args.
`static Bean` | `getField(java.lang.Object target, java.lang.String fieldName)`
`static Bean` | `getProperty(java.lang.Object target, java.lang.String propName, java.lang.Integer index)` Get a property of a bean.
`static void` | `setField(java.lang.Object target, java.lang.String fieldName, Bean value, TypeConvertorRegistry tcr)`
`static void` | `setProperty(java.lang.Object target, java.lang.String propName, java.lang.Integer index, java.lang.Object value, java.lang.Class valueType, TypeConvertorRegistry tcr)` Set a property of a bean to a given value.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ReflectionUtils

    public ReflectionUtils()

Method Detail

### addEventListener

    public static void addEventListener(java.lang.Object source,
                                        java.lang.String eventSetName,
                                        EventProcessor processor)
                                 throws java.beans.IntrospectionException,
                                        java.lang.IllegalArgumentException,
                                        java.lang.IllegalAccessException,
                                        java.lang.InstantiationException,
                                        java.lang.reflect.InvocationTargetException

  Add an event processor as a listener to some event coming out of an object.

  Parameters:
    `source` - event source
    `eventSetName` - name of event set from event src to bind to
    `processor` - event processor the event should be delegated to when it occurs; either via processEvent or processExceptionableEvent.
  Throws:
    `java.beans.IntrospectionException` - if unable to introspect
    `java.lang.IllegalArgumentException` - if event set is unknown
    `java.lang.IllegalAccessException` - if the event adapter class or initializer is not accessible.
    `java.lang.InstantiationException` - if event adapter instantiation fails
    `java.lang.reflect.InvocationTargetException` - if something goes wrong while running add event listener method

### createBean

    public static Bean createBean(java.lang.ClassLoader cld,
                                  java.lang.String className,
                                  java.lang.Class[] argTypes,
                                  java.lang.Object[] args)
                           throws java.lang.ClassNotFoundException,
                                  java.lang.NoSuchMethodException,
                                  java.lang.InstantiationException,
                                  java.lang.IllegalAccessException,
                                  java.lang.IllegalArgumentException,
                                  java.lang.reflect.InvocationTargetException,
                                  java.io.IOException

  Create a bean using given class loader and using the appropriate constructor for the given args of the given arg types.

  Parameters:
    `cld` - the class loader to use. If null, Class.forName is used.
    `className` - name of class to instantiate
    `argTypes` - array of argument types
    `args` - array of arguments
  Returns:
    the newly created bean
  Throws:
    `java.lang.ClassNotFoundException` - if class is not loaded
    `java.lang.NoSuchMethodException` - if constructor can't be found
    `java.lang.InstantiationException` - if class can't be instantiated
    `java.lang.IllegalAccessException` - if class is not accessible
    `java.lang.IllegalArgumentException` - if argument problem
    `java.lang.reflect.InvocationTargetException` - if constructor excepted
    `java.io.IOException` - if I/O error in beans.instantiate

### createBean

    public static Bean createBean(java.lang.ClassLoader cld,
                                  java.lang.String className,
                                  java.lang.Object[] args)
                           throws java.lang.ClassNotFoundException,
                                  java.lang.NoSuchMethodException,
                                  java.lang.InstantiationException,
                                  java.lang.IllegalAccessException,
                                  java.lang.IllegalArgumentException,
                                  java.lang.reflect.InvocationTargetException,
                                  java.io.IOException

  Create a bean using given class loader and using the appropriate constructor for the given args. Figures out the arg types and calls above.

  Parameters:
    `cld` - the class loader to use. If null, Class.forName is used.
    `className` - name of class to instantiate
    `args` - array of arguments
  Returns:
    the newly created bean
  Throws:
    `java.lang.ClassNotFoundException` - if class is not loaded
    `java.lang.NoSuchMethodException` - if constructor can't be found
    `java.lang.InstantiationException` - if class can't be instantiated
    `java.lang.IllegalAccessException` - if class is not accessible
    `java.lang.IllegalArgumentException` - if argument problem
    `java.lang.reflect.InvocationTargetException` - if constructor excepted
    `java.io.IOException` - if I/O error in beans.instantiate

### getField

    public static Bean getField(java.lang.Object target,
                                java.lang.String fieldName)
                         throws java.lang.IllegalArgumentException,
                                java.lang.IllegalAccessException

  Throws:
    `java.lang.IllegalArgumentException`
    `java.lang.IllegalAccessException`

### getProperty

    public static Bean getProperty(java.lang.Object target,
                                   java.lang.String propName,
                                   java.lang.Integer index)
                            throws java.beans.IntrospectionException,
                                   java.lang.IllegalArgumentException,
                                   java.lang.IllegalAccessException,
                                   java.lang.reflect.InvocationTargetException

  Get a property of a bean.

  Parameters:
    `target` - the object whose prop is to be gotten
    `propName` - name of the property to set
    `index` - index to get (if property is indexed)
  Throws:
    `java.beans.IntrospectionException` - if unable to introspect
    `java.lang.IllegalArgumentException` - if problems with args: if the property is unknown, or if the property is given an index when its not, or if the property is not writeable, or if the given value cannot be assigned to the it (type mismatch).
    `java.lang.IllegalAccessException` - if read method is not accessible
    `java.lang.reflect.InvocationTargetException` - if read method excepts

### setField

    public static void setField(java.lang.Object target,
                                java.lang.String fieldName,
                                Bean value,
                                TypeConvertorRegistry tcr)
                         throws java.lang.IllegalArgumentException,
                                java.lang.IllegalAccessException

  Throws:
    `java.lang.IllegalArgumentException`
    `java.lang.IllegalAccessException`

### setProperty

    public static void setProperty(java.lang.Object target,
                                   java.lang.String propName,
                                   java.lang.Integer index,
                                   java.lang.Object value,
                                   java.lang.Class valueType,
                                   TypeConvertorRegistry tcr)
                            throws java.beans.IntrospectionException,
                                   java.lang.IllegalArgumentException,
                                   java.lang.IllegalAccessException,
                                   java.lang.reflect.InvocationTargetException

  Set a property of a bean to a given value.

  Parameters:
    `target` - the object whose prop is to be set
    `propName` - name of the property to set
    `index` - index to set (if property is indexed)
    `value` - the property value
    `valueType` - the type of the above (needed when its null)
    `tcr` - type convertor registry to use to convert value type to property type if necessary
  Throws:
    `java.beans.IntrospectionException` - if unable to introspect
    `java.lang.IllegalArgumentException` - if problems with args: if the property is unknown, or if the property is given an index when its not, or if the property is not writeable, or if the given value cannot be assigned to the it (type mismatch).
    `java.lang.IllegalAccessException` - if write method is not accessible
    `java.lang.reflect.InvocationTargetException` - if write method excepts

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD