Composable
Date: 2016-02-08

org.apache.avalon.framework.component

## Interface Composable

- All Known Subinterfaces:
    Recomposable

      public interface Composable

  A `Composable` class is one that needs to connect to software components using a "role" abstraction, thus not depending on particular implementations but on behavioral interfaces.

  The contract surrounding a `Composable` is that it is a user. The `Composable` is able to use `Components` managed by the `ComponentManager` it was initialized with. As part of the contract with the system, the instantiating entity must call the `compose` method before the `Composable` can be considered valid.

  Deprecated: Use `Serviceable` instead.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `compose(ComponentManager componentManager)` Pass the `ComponentManager` to the `composer`.

- - ### Method Detail

    - #### compose

          void compose(ComponentManager componentManager)
                       throws ComponentException

      Pass the `ComponentManager` to the `composer`. The `Composable` implementation should use the specified `ComponentManager` to acquire the components it needs for execution.
      Parameters:
        `componentManager` - The `ComponentManager` which this `Composable` uses. Must not be `null`.
      Throws:
        `ComponentException` - if an error occurs