Package tigase.kernel.beans.config

## Interface BeanConfigurator

- All Known Implementing Classes:
    `AbstractBeanConfigurator`, `DSLBeanConfigurator`, `DSLBeanConfiguratorWithBackwardCompatibility`

      public interface BeanConfigurator

  Bean configurator.

  Newly created beans should be configured: it means put specific values to fields, etc. Configurator no need to inject dependencies. This interface allows to create any kind of configurator for beans.

  Note, that `BeanConfig` parameter is just internal metadata used to identify and keep dependencies, etc.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `DEFAULT_CONFIGURATOR_NAME` | Name of default configurator.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `configurationChanged()` | Notify bean configurator that configuration was changed and beans needs to be reconfigured
    `void` | `configure​(BeanConfig beanConfig, java.lang.Object bean)` | Configure bean.
    `void` | `registerBeans​(BeanConfig beanConfig, java.lang.Object bean, java.util.Map<java.lang.String,​java.lang.Object> valeus)` | Looks for and registers beans which should be registered due to initialization of passed bean.

- - ### Field Detail

    - #### DEFAULT_CONFIGURATOR_NAME

          static final java.lang.String DEFAULT_CONFIGURATOR_NAME

      Name of default configurator. It will be used by default during creating new beans by Kernel.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### configurationChanged

          void configurationChanged()

      Notify bean configurator that configuration was changed and beans needs to be reconfigured

    - #### configure

          void configure​(BeanConfig beanConfig,
                         java.lang.Object bean)

      Configure bean.
      Parameters:
        `beanConfig` - internal bean configuration.
        `bean` - bean to configure.

    - #### registerBeans

          void registerBeans​(BeanConfig beanConfig,
                             java.lang.Object bean,
                             java.util.Map<java.lang.String,​java.lang.Object> valeus)

      Looks for and registers beans which should be registered due to initialization of passed bean. List of beans to register may come from config (`values`), annotations, etc.
      Parameters:
        `beanConfig` - bean config of initializing bean
        `bean` - instance of initializing bean
        `valeus` - configuration for the initializing bean