## org.apache.commons.configuration.beanutils
Class DefaultBeanFactory

    java.lang.Object
      org.apache.commons.configuration.beanutils.DefaultBeanFactory

All Implemented Interfaces:
  BeanFactory

Direct Known Subclasses:
  DefaultConfigurationBuilder.ConfigurationProvider

    public class DefaultBeanFactory

extends Object
implements BeanFactory

The default implementation of the `BeanFactory` interface.

This class creates beans of arbitrary types using reflection. Each time the `createBean()` method is invoked, a new bean instance is created. A default bean class is not supported.

An instance of this factory class will be set as the default bean factory for the `BeanHelper` class. This means that if not bean factory is specified in a `BeanDeclaration`, this default instance will be used.

Since:
  1.3
Version:
  $Id: DefaultBeanFactory.java 1208758 2011-11-30 20:38:59Z oheger $
Author:
  Commons Configuration team

Field Summary
`static DefaultBeanFactory` `INSTANCE` Stores the default instance of this class.

Constructor Summary
`DefaultBeanFactory()`

Method Summary
`Object` `createBean(Class<?> beanClass, BeanDeclaration data, Object parameter)` Creates a new bean instance.
`protected Object` `createBeanInstance(Class<?> beanClass, BeanDeclaration data)` Creates the bean instance.
`Class<?>` `getDefaultBeanClass()` Returns the default bean class used by this factory.
`protected void` `initBeanInstance(Object bean, BeanDeclaration data)` Initializes the newly created bean instance.

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

Field Detail

### INSTANCE

    public static final DefaultBeanFactory INSTANCE

  Stores the default instance of this class.

Constructor Detail

### DefaultBeanFactory

    public DefaultBeanFactory()

Method Detail

### createBean

    public Object createBean(Class<?> beanClass,
                             BeanDeclaration data,
                             Object parameter)
                      throws Exception

  Creates a new bean instance. This implementation delegates to the protected methods `createBeanInstance()` and `initBeanInstance()` for creating and initializing the bean. This makes it easier for derived classes that need to change specific functionality of the base class.

  Specified by:
    `createBean` in interface `BeanFactory`
  Parameters:
    `beanClass` - the class of the bean, from which an instance is to be created
    `data` - the bean declaration object
    `parameter` - an additional parameter (ignored by this implementation)
  Returns:
    the new bean instance
  Throws:
    `Exception` - if an error occurs

### getDefaultBeanClass

    public Class<?> getDefaultBeanClass()

  Returns the default bean class used by this factory. This is always null for this implementation.

  Specified by:
    `getDefaultBeanClass` in interface `BeanFactory`
  Returns:
    the default bean class

### createBeanInstance

    protected Object createBeanInstance(Class<?> beanClass,
                                        BeanDeclaration data)
                                 throws Exception

  Creates the bean instance. This method is called by `createBean()`. It uses reflection to create a new instance of the specified class.

  Parameters:
    `beanClass` - the class of the bean to be created
    `data` - the bean declaration
  Returns:
    the new bean instance
  Throws:
    `Exception` - if an error occurs

### initBeanInstance

    protected void initBeanInstance(Object bean,
                                    BeanDeclaration data)
                             throws Exception

  Initializes the newly created bean instance. This method is called by `createBean()`. It calls the `initBean()` of `BeanHelper` for performing the initialization.

  Parameters:
    `bean` - the newly created bean instance
    `data` - the bean declaration object
  Throws:
    `Exception` - if an error occurs

Copyright © 2001-2012 The Apache Software Foundation. All Rights Reserved.