## 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
`CompositeComponentDefinition(String name, Object source)` Create a new CompositeComponentDefinition.

Method Summary
`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