org.springframework.beans.factory.support

## Class BeanDefinitionReaderUtils

- java.lang.Object
- - org.springframework.beans.factory.support.BeanDefinitionReaderUtils

-     public class BeanDefinitionReaderUtils
      extends Object

  Utility methods that are useful for bean definition reader implementations. Mainly intended for internal use.
  Since:
    1.1
  Author:
    Juergen Hoeller, Rob Harrop
  See Also:
    `PropertiesBeanDefinitionReader`, `DefaultBeanDefinitionDocumentReader`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `GENERATED_BEAN_NAME_SEPARATOR` Separator for generated bean names.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BeanDefinitionReaderUtils()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static AbstractBeanDefinition` | `createBeanDefinition(String parentName, String className, ClassLoader classLoader)` Create a new GenericBeanDefinition for the given parent name and class name, eagerly loading the bean class if a ClassLoader has been specified.
    `static String` | `generateBeanName(BeanDefinition beanDefinition, BeanDefinitionRegistry registry)` Generate a bean name for the given top-level bean definition, unique within the given bean factory.
    `static String` | `generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry, boolean isInnerBean)` Generate a bean name for the given bean definition, unique within the given bean factory.
    `static void` | `registerBeanDefinition(BeanDefinitionHolder definitionHolder, BeanDefinitionRegistry registry)` Register the given bean definition with the given bean factory.
    `static String` | `registerWithGeneratedName(AbstractBeanDefinition definition, BeanDefinitionRegistry registry)` Register the given bean definition with a generated name, unique within the given bean factory.

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

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

- - ### Field Detail

    - #### GENERATED_BEAN_NAME_SEPARATOR

          public static final String GENERATED_BEAN_NAME_SEPARATOR

      Separator for generated bean names. If a class name or parent name is not unique, "#1", "#2" etc will be appended, until the name becomes unique.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### BeanDefinitionReaderUtils

          public BeanDefinitionReaderUtils()

  - ### Method Detail

    - #### createBeanDefinition

          public static AbstractBeanDefinition createBeanDefinition(String parentName,
                                                    String className,
                                                    ClassLoader classLoader)
                                                             throws ClassNotFoundException

      Create a new GenericBeanDefinition for the given parent name and class name, eagerly loading the bean class if a ClassLoader has been specified.
      Parameters:
        `parentName` - the name of the parent bean, if any
        `className` - the name of the bean class, if any
        `classLoader` - the ClassLoader to use for loading bean classes (can be `null` to just register bean classes by name)
      Returns:
        the bean definition
      Throws:
        `ClassNotFoundException` - if the bean class could not be loaded

    - #### generateBeanName

          public static String generateBeanName(BeanDefinition definition,
                                BeanDefinitionRegistry registry,
                                boolean isInnerBean)
                                         throws BeanDefinitionStoreException

      Generate a bean name for the given bean definition, unique within the given bean factory.
      Parameters:
        `definition` - the bean definition to generate a bean name for
        `registry` - the bean factory that the definition is going to be registered with (to check for existing bean names)
        `isInnerBean` - whether the given bean definition will be registered as inner bean or as top-level bean (allowing for special name generation for inner beans versus top-level beans)
      Returns:
        the generated bean name
      Throws:
        `BeanDefinitionStoreException` - if no unique name can be generated for the given bean definition

    - #### generateBeanName

          public static String generateBeanName(BeanDefinition beanDefinition,
                                BeanDefinitionRegistry registry)
                                         throws BeanDefinitionStoreException

      Generate a bean name for the given top-level bean definition, unique within the given bean factory.
      Parameters:
        `beanDefinition` - the bean definition to generate a bean name for
        `registry` - the bean factory that the definition is going to be registered with (to check for existing bean names)
      Returns:
        the generated bean name
      Throws:
        `BeanDefinitionStoreException` - if no unique name can be generated for the given bean definition

    - #### registerBeanDefinition

          public static void registerBeanDefinition(BeanDefinitionHolder definitionHolder,
                                    BeanDefinitionRegistry registry)
                                             throws BeanDefinitionStoreException

      Register the given bean definition with the given bean factory.
      Parameters:
        `definitionHolder` - the bean definition including name and aliases
        `registry` - the bean factory to register with
      Throws:
        `BeanDefinitionStoreException` - if registration failed

    - #### registerWithGeneratedName

          public static String registerWithGeneratedName(AbstractBeanDefinition definition,
                                         BeanDefinitionRegistry registry)
                                                  throws BeanDefinitionStoreException

      Register the given bean definition with a generated name, unique within the given bean factory.
      Parameters:
        `definition` - the bean definition to generate a bean name for
        `registry` - the bean factory to register with
      Returns:
        the generated bean name
      Throws:
        `BeanDefinitionStoreException` - if no unique name can be generated for the given bean definition or the definition cannot be registered