class CompositeInstrumenter implements Instrumenter {

  @Override public Object createInstrumentedProxy(Test test,
                                                  Recorder recorder,
                                                  Object target)
    throws NotWrappableTypeException {

    for (Instrumenter instrumenter : m_instrumenters) {
      final Object result = instrumenter.createInstrumentedProxy(test,
                                                                 recorder,
                                                                 target);

      if (result != null) {
        return result;
      }
    }

    // Don't throw, unlike MasterInstrumenter, we don't claim to know the
    // entire chain.
    return null;
  }

  public  CompositeInstrumenter(Instrumenter... instrumenters);
  public  CompositeInstrumenter(List<Instrumenter> instrumenters);

}