Interface AccumulateFunction<C extends Serializable>

All Superinterfaces:
Externalizable, Serializable

public interface AccumulateFunction<C extends Serializable> extends Externalizable
An interface for accumulate external function implementations
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    accumulate(C context, Object value)
    Executes the accumulation action
    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.
    Creates and returns a new context object
    getResult(C context)
     
     
    void
    init(C context)
    Initializes the accumulator
    default C
    initContext(C context)
    Initializes the accumulator, possibly returning a new accumulation context instead of the original one
    void
    reverse(C context, Object value)
    Reverses the accumulation action
    boolean
     
    default boolean
    tryReverse(C context, Object value)
    Reverses the accumulation action

    Methods inherited from interface java.io.Externalizable

    readExternal, writeExternal
  • Method Details

    • 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.