Interface AccumulateFunction<C extends Serializable>

    • Method Detail

      • createContext

        C createContext()
        Creates and returns a new context object
        Returns:
        new context object
      • init

        void init​(C context)
           throws Exception
        Initializes the accumulator
        Parameters:
        context - never null
        Throws:
        Exception
      • initContext

        default C initContext​(C context)
        Initializes the accumulator, possibly returning a new accumulation context instead of the original one
        Parameters:
        context -
        Returns:
        new context object
      • accumulate

        void accumulate​(C context,
                        Object value)
        Executes the accumulation action
        Parameters:
        context - never null
        value -
      • accumulateValue

        default Object accumulateValue​(C context,
                                       Object value)
        Executes the accumulation action returning the accumulated object that will be passed back to the reverse method when this value will be eventually removed from acccumulation.
        Parameters:
        context -
        value -
        Returns:
        the accumulated object
      • reverse

        void reverse​(C context,
                     Object value)
              throws Exception
        Reverses the accumulation action
        Parameters:
        context - never null
        value -
        Throws:
        Exception
      • getResult

        Object getResult​(C context)
                  throws Exception
        Returns:
        the current value in this accumulation session
        Throws:
        Exception
      • supportsReverse

        boolean supportsReverse()
        Returns:
        true if the function supports reverse, otherwise false
      • getResultType

        Class<?> getResultType()
        Returns:
        the class type of the result of this function
      • tryReverse

        default boolean tryReverse​(C context,
                                   Object value)
        Reverses the accumulation action
        Parameters:
        context -
        value -
        Returns:
        true if this accumulate function was able to remove this value, false otherwise. In this last case the engine will have to retrigger a full reaccumulation.