## org.codehaus.groovy.grails.commons.spring
Interface RuntimeSpringConfiguration

All Known Implementing Classes:
  DefaultRuntimeSpringConfiguration, WebRuntimeSpringConfiguration

    public interface RuntimeSpringConfiguration

A programmable runtime Spring configuration that allows a spring ApplicationContext to be constructed at runtime Credit must go to Solomon Duskis and the article: http://jroller.com/page/Solomon?entry=programmatic_configuration_in_spring

Since:
  0.3
Author:
  Graeme

Method Summary
`BeanConfiguration` `addAbstractBean(String name)` Adds an abstract bean definition to the bean factory and returns the BeanConfiguration object
`void` `addAlias(String alias, String beanName)` Adds an alias to a given bean name
`void` `addBeanConfiguration(String beanName, BeanConfiguration beanConfiguration)` Adds a bean configuration to the list of beans to be created
`void` `addBeanDefinition(String name, BeanDefinition bd)` Adds a Spring BeanDefinition.
`BeanConfiguration` `addPrototypeBean(String name)` Adds an empty prototype bean configuration
`BeanConfiguration` `addPrototypeBean(String name, Class clazz)` Adds a prototype bean definition
`BeanConfiguration` `addSingletonBean(String name)` Adds an empty singleton bean configuration
`BeanConfiguration` `addSingletonBean(String name, Class clazz)` Adds a singleton bean definition
`BeanConfiguration` `addSingletonBean(String name, Class clazz, Collection args)` Creates a new singleton bean and adds it to the list of bean references
`boolean` `containsBean(String name)` Returns whether the runtime spring config contains the specified bean
`AbstractBeanDefinition` `createBeanDefinition(String name)` Creates and returns the BeanDefinition that is regsitered within the given name or returns null
`BeanConfiguration` `createPrototypeBean(String name)` Creates a new prototype bean configuration.
`BeanConfiguration` `createSingletonBean(Class clazz)` Creates a singleton bean configuration.
`BeanConfiguration` `createSingletonBean(Class clazz, Collection constructorArguments)` Creates a singleton bean configuration.
`BeanConfiguration` `createSingletonBean(String name)` Creates a new singleton bean configuration.
`ApplicationContext` `getApplicationContext()` Retrieves the application context from the current state
`BeanConfiguration` `getBeanConfig(String name)` Returns the BeanConfiguration for the specified name
`BeanDefinition` `getBeanDefinition(String beanName)` Obtains a BeanDefinition instance for the given beanName
`List` `getBeanNames()`
`ApplicationContext` `getUnrefreshedApplicationContext()`
`void` `registerBeansWithConfig(RuntimeSpringConfiguration targetSpringConfig)` Registers the beans held within this RuntimeSpringConfiguration instance with the given RuntimeSpringConfiguration
`void` `registerBeansWithContext(GenericApplicationContext applicationContext)` Registers the beans held within this RuntimeSpringConfiguration instance with the given ApplicationContext
`void` `registerBeansWithRegistry(BeanDefinitionRegistry registry)` Registers the beans held within this RuntimeSpringConfiguration instance with the given BeanDefinitionRegistry
`void` `registerPostProcessor(BeanFactoryPostProcessor processor)` Registers a bean factory post processor with the context

Method Detail

### addSingletonBean

    BeanConfiguration addSingletonBean(String name,
                                       Class clazz)

  Adds a singleton bean definition

  Parameters:
    `name` - The name of the bean
    `clazz` - The class of the bean
  Returns:
    A BeanConfiguration instance

### getUnrefreshedApplicationContext

    ApplicationContext getUnrefreshedApplicationContext()

### addPrototypeBean

    BeanConfiguration addPrototypeBean(String name,
                                       Class clazz)

  Adds a prototype bean definition

  Parameters:
    `name` - The name of the bean
    `clazz` - The class of the bean
  Returns:
    A BeanConfiguration instance

### getApplicationContext

    ApplicationContext getApplicationContext()

  Retrieves the application context from the current state

  Returns:
    The ApplicationContext instance

### addSingletonBean

    BeanConfiguration addSingletonBean(String name)

  Adds an empty singleton bean configuration

  Parameters:
    `name` - The name of the singleton bean
  Returns:
    A BeanConfiguration instance

### addPrototypeBean

    BeanConfiguration addPrototypeBean(String name)

  Adds an empty prototype bean configuration

  Parameters:
    `name` - The name of the prototype bean
  Returns:
    A BeanConfiguration instance

### createSingletonBean

    BeanConfiguration createSingletonBean(Class clazz)

  Creates a singleton bean configuration. Differs from addSingletonBean in that it doesn't add the bean to the list of bean references. Hence should be used for creating nested beans

  Parameters:
    `clazz` -
  Returns:
    A BeanConfiguration instance

### addSingletonBean

    BeanConfiguration addSingletonBean(String name,
                                       Class clazz,
                                       Collection args)

  Creates a new singleton bean and adds it to the list of bean references

  Parameters:
    `name` - The name of the bean
    `clazz` - The class of the bean
    `args` - The constructor arguments of the bean
  Returns:
    A BeanConfiguration instance

### createSingletonBean

    BeanConfiguration createSingletonBean(Class clazz,
                                          Collection constructorArguments)

  Creates a singleton bean configuration. Differs from addSingletonBean in that it doesn't add the bean to the list of bean references. Hence should be used for creating nested beans

  Parameters:
    `clazz` - The bean class
    `constructorArguments` - The constructor arguments
  Returns:
    A BeanConfiguration instance

### createPrototypeBean

    BeanConfiguration createPrototypeBean(String name)

  Creates a new prototype bean configuration. Differs from addPrototypeBean in that it doesn't add the bean to the list of bean references to be created via the getApplicationContext() method, hence can be used for creating nested beans

  Parameters:
    `name` - The bean name
  Returns:
    A BeanConfiguration instance

### createSingletonBean

    BeanConfiguration createSingletonBean(String name)

  Creates a new singleton bean configuration. Differs from addSingletonBean in that it doesn't add the bean to the list of bean references to be created via the getApplicationContext() method, hence can be used for creating nested beans

  Parameters:
    `name` - The bean name
  Returns:
    A BeanConfiguration instance

### addBeanConfiguration

    void addBeanConfiguration(String beanName,
                              BeanConfiguration beanConfiguration)

  Adds a bean configuration to the list of beans to be created

  Parameters:
    `beanName` - The name of the bean in the context
    `beanConfiguration` - The BeanConfiguration instance

### addBeanDefinition

    void addBeanDefinition(String name,
                           BeanDefinition bd)

  Adds a Spring BeanDefinition. Differs from BeanConfiguration which is a factory class for creating BeanDefinition instances

  Parameters:
    `name` - The name of the bean
    `bd` - The BeanDefinition instance

### containsBean

    boolean containsBean(String name)

  Returns whether the runtime spring config contains the specified bean

  Parameters:
    `name` - The bean name
  Returns:
    True if it does

### getBeanConfig

    BeanConfiguration getBeanConfig(String name)

  Returns the BeanConfiguration for the specified name

  Parameters:
    `name` - The name of the bean configuration
  Returns:
    The BeanConfiguration

### createBeanDefinition

    AbstractBeanDefinition createBeanDefinition(String name)

  Creates and returns the BeanDefinition that is regsitered within the given name or returns null

  Parameters:
    `name` - The name of the bean definition
  Returns:
    A BeanDefinition

### registerPostProcessor

    void registerPostProcessor(BeanFactoryPostProcessor processor)

  Registers a bean factory post processor with the context

  Parameters:
    `processor` - The BeanFactoryPostProcessor instance

### getBeanNames

    List getBeanNames()

### registerBeansWithContext

    void registerBeansWithContext(GenericApplicationContext applicationContext)

  Registers the beans held within this RuntimeSpringConfiguration instance with the given ApplicationContext

  Parameters:
    `applicationContext` - The ApplicationContext instance

### registerBeansWithRegistry

    void registerBeansWithRegistry(BeanDefinitionRegistry registry)

  Registers the beans held within this RuntimeSpringConfiguration instance with the given BeanDefinitionRegistry

  Parameters:
    `registry` - The BeanDefinitionRegistry instance

### registerBeansWithConfig

    void registerBeansWithConfig(RuntimeSpringConfiguration targetSpringConfig)

  Registers the beans held within this RuntimeSpringConfiguration instance with the given RuntimeSpringConfiguration

  Parameters:
    `targetSpringConfig` - The RuntimeSpringConfiguration instance

### addAbstractBean

    BeanConfiguration addAbstractBean(String name)

  Adds an abstract bean definition to the bean factory and returns the BeanConfiguration object

  Parameters:
    `name` - The name of the bean
  Returns:
    The BeanConfiguration object

### addAlias

    void addAlias(String alias,
                  String beanName)

  Adds an alias to a given bean name

  Parameters:
    `alias` - The alias
    `beanName` - The bean

### getBeanDefinition

    BeanDefinition getBeanDefinition(String beanName)

  Obtains a BeanDefinition instance for the given beanName

  Parameters:
    `beanName` - The beanName
  Returns:
    The BeanDefinition or null if it doesn't exit

Copyright (c) 2005-2009 The Grails project