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);
    }
  }
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.