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

com.fluxtion.runtime.dataflow.Stateful Maven / Gradle / Ivy

package com.fluxtion.runtime.dataflow;

import com.fluxtion.runtime.annotations.OnParentUpdate;

/**
 * A marker interface used by {@link TriggeredFlowFunction} to mark a stream function as stateful and should be reset when
 * the reset trigger fires. The reset trigger is set via {@link TriggeredFlowFunction#setUpdateTriggerNode(Object)}.
 */
public interface Stateful {
    T reset();

    abstract class StatefulWrapper {

        private final Object resetTrigger;

        public StatefulWrapper(Object resetTrigger) {
            this.resetTrigger = resetTrigger;
        }

        @OnParentUpdate("resetTrigger")
        public void resetTrigger(Object resetTrigger) {
            reset();
        }

        protected abstract void reset();

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy