All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.fluxtion.runtime.dataflow.aggregate.function.AggregateFlowFunctionWrapper Maven / Gradle / Ivy

package com.fluxtion.runtime.dataflow.aggregate.function;

import com.fluxtion.runtime.dataflow.FlowFunction;
import com.fluxtion.runtime.dataflow.aggregate.AggregateFlowFunction;
import com.fluxtion.runtime.dataflow.function.MapFlowFunction;
import com.fluxtion.runtime.partition.LambdaReflection.SerializableSupplier;

import java.util.function.Supplier;

public class AggregateFlowFunctionWrapper, F extends AggregateFlowFunction>
        extends MapFlowFunction {

    private final Supplier windowFunctionSupplier;
    private transient final F mapFunction;

    public AggregateFlowFunctionWrapper(S inputEventStream, SerializableSupplier windowFunctionSupplier) {
        super(inputEventStream, null);
        this.windowFunctionSupplier = windowFunctionSupplier;
        this.mapFunction = windowFunctionSupplier.get();
//        Anchor.anchorCaptured(this, windowFunctionSupplier);
        auditInfo = mapFunction.getClass().getSimpleName() + "->aggregate";
    }

    protected void initialise() {
    }

    @Override
    public boolean isStatefulFunction() {
        return true;
    }

    @Override
    protected void resetOperation() {
        result = mapFunction.reset();
    }

    @Override
    protected void mapOperation() {
        result = mapFunction.aggregate(getInputEventStream().get());
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy