The composite future wraps a list of futures, it is useful when several futures needs to be coordinated.

- `Anything`
  - `Object`
    - `Basic` ...and other supertypes
      - `Future`
        - `CompositeFuture`

- `CompositeFuture`
  - `Future`
    - `Basic`
      - `Identifiable`
      - `Object`
        - `Anything`

no subtypes hierarchy

Initializer
`CompositeFuture(CompositeFuture unknown)`

Inherited Attributes
Attributes inherited from: `Object` `hash`, `string`

Methods
`cause` | `shared default Throwable cause(Integer index)` Returns a cause of a wrapped future Parameters: `index` the wrapped future index
`failed` | `shared default Boolean failed(Integer index)` Returns true if a wrapped future is failed Parameters: `index` the wrapped future index
`isComplete` | `shared default Boolean isComplete(Integer index)` Returns true if a wrapped future is completed Parameters: `index` the wrapped future index
`result` | `shared default T? result<T>(Integer index)` Returns the result of a wrapped future Parameters: `index` the wrapped future index
`setHandler` | `shared actual default CompositeFuture setHandler(Anything(Throwable|CompositeFuture) handler)` Set a handler for the result. If the future has already been completed it will be called immediately. Otherwise it will be called when the future is completed. Refines `Future.setHandler`
`size` | `shared default Integer size()` @return the number of wrapped future
`succeeded` | `shared default Boolean succeeded(Integer index)` Returns true if a wrapped future is succeeded Parameters: `index` the wrapped future index

Inherited Methods
Methods inherited from: `Future<T>` `cause()`, `complete()`, `completer()`, `compose()`, `fail()`, `failed()`, `isComplete()`, `map()`, `result()`, `setHandler()`, `succeeded()`
Methods inherited from: `Object` `equals`