DynamicClassLoader classLoader = new DynamicClassLoader(clazz.getClassLoader());
ImmutableList.Builder<InternalAggregationFunction> builder = ImmutableList.builder();
for (Class<?> stateClass : getStateClasses(clazz)) {
AccumulatorStateSerializer<?> stateSerializer = new StateCompiler().generateStateSerializer(stateClass, classLoader);
Type intermediateType = stateSerializer.getSerializedType();
Method intermediateInputFunction = getIntermediateInputFunction(clazz, stateClass);
Method combineFunction = getCombineFunction(clazz, stateClass);
AccumulatorStateFactory<?> stateFactory = new StateCompiler().generateStateFactory(stateClass, classLoader);
for (Method outputFunction : getOutputFunctions(clazz, stateClass)) {
for (Method inputFunction : getInputFunctions(clazz, stateClass)) {
for (String name : getNames(outputFunction, aggregationAnnotation)) {
List<Type> inputTypes = getInputTypes(inputFunction);