Package org.apache.tapestry5.ioc.services

## Interface ChainBuilder

- All Known Implementing Classes:
    `ChainBuilderImpl`

      public interface ChainBuilder

  A service which can assemble an implementation based on a command interface, and an ordered list of objects implementing that interface (the "commands"). This is an implementation of the Gang of Four Chain Of Command pattern. For each method in the interface, the chain implementation will call the corresponding method on each command object in turn (with the order defined by the list). If any of the command objects return true, then the chain of command stops and the initial method invocation returns true. Otherwise, the chain of command continues to the next command (and will return false if none of the commands returns true). For methods whose return type is not boolean, the chain stops with the first non-null (for object types), or non-zero (for numeric types). The chain returns the value that was returned by the command. If the method return type is void, all commands will be invoked. Method invocations will also be terminated if an exception is thrown.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<T> T` | `build​(Class<T> commandInterface, List<T> commands)` | Creates a chain instance from a command interface and a list of commands (implementing the interface).

- - ### Method Detail

    - #### build

          <T> T build​(Class<T> commandInterface,
                      List<T> commands)

      Creates a chain instance from a command interface and a list of commands (implementing the interface).
      Type Parameters:
        `T` - the command interface type
      Parameters:
        `commandInterface` - the command interface
        `commands` - the list of commands to be chained
      Returns:
        the chain instance