org.springframework.beans.factory.parsing

## Class CompositeComponentDefinition

- java.lang.Object
- - org.springframework.beans.factory.parsing.AbstractComponentDefinition
  - - org.springframework.beans.factory.parsing.CompositeComponentDefinition

All Implemented Interfaces:
  BeanMetadataElement, ComponentDefinition

Direct Known Subclasses:
  AspectComponentDefinition

    public class CompositeComponentDefinition
    extends AbstractComponentDefinition

`ComponentDefinition` implementation that holds one or more nested `ComponentDefinition` instances, aggregating them into a named group of components.

Since:
  2.0.1
Author:
  Juergen Hoeller
See Also:
  `getNestedComponents()`

### Constructor Summary

Constructors
Constructor and Description
`CompositeComponentDefinition(String name, Object source)` Create a new CompositeComponentDefinition.

### Method Summary

Methods
`void` `addNestedComponent(ComponentDefinition component)` Add the given component as nested element of this composite component.
`String` `getName()` Get the user-visible name of this `ComponentDefinition`.
`ComponentDefinition[]` `getNestedComponents()` Return the nested components that this composite component holds.
`Object` `getSource()` Return the configuration source `Object` for this metadata element (may be `null`).

### Methods inherited from class org.springframework.beans.factory.parsing.AbstractComponentDefinition

`getBeanDefinitions, getBeanReferences, getDescription, getInnerBeanDefinitions, toString`

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

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

### Constructor Detail

#### CompositeComponentDefinition

    public CompositeComponentDefinition(String name,
                                Object source)

Create a new CompositeComponentDefinition.

Parameters:
  `name` - the name of the composite component
  `source` - the source element that defines the root of the composite component

### Method Detail

#### getName

    public String getName()

Description copied from interface: `ComponentDefinition`
Get the user-visible name of this `ComponentDefinition`.

This should link back directly to the corresponding configuration data for this component in a given context.

#### getSource

    public Object getSource()

Description copied from interface: `BeanMetadataElement`
Return the configuration source `Object` for this metadata element (may be `null`).

#### addNestedComponent

    public void addNestedComponent(ComponentDefinition component)

Add the given component as nested element of this composite component.

Parameters:
  `component` - the nested component to add

#### getNestedComponents

    public ComponentDefinition[] getNestedComponents()

Return the nested components that this composite component holds.

Returns:
  the array of nested components, or an empty array if none