org.springframework.beans.factory.config

## Class BeanDefinitionHolder

- java.lang.Object
- - org.springframework.beans.factory.config.BeanDefinitionHolder

- All Implemented Interfaces:
    BeanMetadataElement
  Direct Known Subclasses:
    BeanComponentDefinition

      public class BeanDefinitionHolder
      extends Object
      implements BeanMetadataElement

  Holder for a BeanDefinition with name and aliases. Can be registered as a placeholder for an inner bean.

  Can also be used for programmatic registration of inner bean definitions. If you don't care about BeanNameAware and the like, registering RootBeanDefinition or ChildBeanDefinition is good enough.

  Since:
    1.0.2
  Author:
    Juergen Hoeller
  See Also:
    `BeanNameAware`, `RootBeanDefinition`, `ChildBeanDefinition`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BeanDefinitionHolder(BeanDefinitionHolder beanDefinitionHolder)` Copy constructor: Create a new BeanDefinitionHolder with the same contents as the given BeanDefinitionHolder instance.
    `BeanDefinitionHolder(BeanDefinition beanDefinition, String beanName)` Create a new BeanDefinitionHolder.
    `BeanDefinitionHolder(BeanDefinition beanDefinition, String beanName, String[] aliases)` Create a new BeanDefinitionHolder.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object other)`
    `String[]` | `getAliases()` Return the alias names for the bean, as specified directly for the bean definition.
    `BeanDefinition` | `getBeanDefinition()` Return the wrapped BeanDefinition.
    `String` | `getBeanName()` Return the primary name of the bean, as specified for the bean definition.
    `String` | `getLongDescription()` Return a long description for the bean, including name and aliases as well as a description of the contained `BeanDefinition`.
    `String` | `getShortDescription()` Return a friendly, short description for the bean, stating name and aliases.
    `Object` | `getSource()` Expose the bean definition's source object.
    `int` | `hashCode()`
    `boolean` | `matchesName(String candidateName)` Determine whether the given candidate name matches the bean name or the aliases stored in this bean definition.
    `String` | `toString()` This implementation returns the long description.

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### BeanDefinitionHolder

          public BeanDefinitionHolder(BeanDefinition beanDefinition,
                              String beanName)

      Create a new BeanDefinitionHolder.
      Parameters:
        `beanDefinition` - the BeanDefinition to wrap
        `beanName` - the name of the bean, as specified for the bean definition

    - #### BeanDefinitionHolder

          public BeanDefinitionHolder(BeanDefinition beanDefinition,
                              String beanName,
                              String[] aliases)

      Create a new BeanDefinitionHolder.
      Parameters:
        `beanDefinition` - the BeanDefinition to wrap
        `beanName` - the name of the bean, as specified for the bean definition
        `aliases` - alias names for the bean, or `null` if none

    - #### BeanDefinitionHolder

          public BeanDefinitionHolder(BeanDefinitionHolder beanDefinitionHolder)

      Copy constructor: Create a new BeanDefinitionHolder with the same contents as the given BeanDefinitionHolder instance.

      Note: The wrapped BeanDefinition reference is taken as-is; it is `not` deeply copied.

      Parameters:
        `beanDefinitionHolder` - the BeanDefinitionHolder to copy

  - ### Method Detail

    - #### getBeanDefinition

          public BeanDefinition getBeanDefinition()

      Return the wrapped BeanDefinition.

    - #### getBeanName

          public String getBeanName()

      Return the primary name of the bean, as specified for the bean definition.

    - #### getAliases

          public String[] getAliases()

      Return the alias names for the bean, as specified directly for the bean definition.
      Returns:
        the array of alias names, or `null` if none

    - #### getSource

          public Object getSource()

      Expose the bean definition's source object.
      Specified by:
        `getSource` in interface `BeanMetadataElement`
      See Also:
        `BeanMetadataElement.getSource()`

    - #### matchesName

          public boolean matchesName(String candidateName)

      Determine whether the given candidate name matches the bean name or the aliases stored in this bean definition.

    - #### getShortDescription

          public String getShortDescription()

      Return a friendly, short description for the bean, stating name and aliases.
      See Also:
        `getBeanName()`, `getAliases()`

    - #### getLongDescription

          public String getLongDescription()

      Return a long description for the bean, including name and aliases as well as a description of the contained `BeanDefinition`.
      See Also:
        `getShortDescription()`, `getBeanDefinition()`

    - #### toString

          public String toString()

      This implementation returns the long description. Can be overridden to return the short description or any kind of custom description instead.
      Overrides:
        `toString` in class `Object`
      See Also:
        `getLongDescription()`, `getShortDescription()`

    - #### equals

          public boolean equals(Object other)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`