basic-lib/src/main/java/com/streamsets/pipeline/stage/processor/aggregation/aggregator/Aggregators.java
<A extends SimpleAggregator, T> AggregatorData<A, T> createAggregatorData(
      Class<A> klass,
      String name,
      long timeWindowMillis) {
    try {
      A aggregator = (A) CONSTRUCTORS.get(klass).newInstance(name);
      return aggregator.createAggregatorData(timeWindowMillis);
    } catch (Exception ex) {
      throw new RuntimeException(ex);
    }
  }
<A extends SimpleAggregator, T> AggregatorData<A, T> createAggregatorData(
      Class<A> klass,
      String name,
      long timeWindowMillis) {
    try {
      A aggregator = (A) CONSTRUCTORS.get(klass).newInstance(name);
      return aggregator.createAggregatorData(timeWindowMillis);
    } catch (Exception ex) {
      throw new RuntimeException(ex);
    }
  }
< A extends SimpleAggregator , T > AggregatorData < A , T > createAggregatorData ( Class < A > klass , String name , long timeWindowMillis ) { try { A aggregator = ( A ) CONSTRUCTORS . get ( klass ) . newInstance ( name ) ; return aggregator . createAggregatorData ( timeWindowMillis ) ; } catch ( Exception ex ) { throw new RuntimeException ( ex ) ; } }
Creates an AggregatorData.

@param klass aggregator type the AggregatorData is for.
@param name name of the AggregatorData instance.
@param timeWindowMillis timewindow of the AggregatorData instance.
@return the new AggregatorData instance.
Creates an AggregatorData .