Interface AccumulateFunction<C extends java.io.Serializable>

  • All Superinterfaces:
    java.io.Externalizable, java.io.Serializable

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

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      void accumulate​(C context, java.lang.Object value)
      Executes the accumulation action
      default java.lang.Object accumulateValue​(C context, java.lang.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.
      C createContext()
      Creates and returns a new context object
      java.lang.Object getResult​(C context)  
      java.lang.Class<?> getResultType()  
      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, java.lang.Object value)
      Reverses the accumulation action
      boolean supportsReverse()  
      default boolean tryReverse​(C context, java.lang.Object value)
      Reverses the accumulation action
      • Methods inherited from interface java.io.Externalizable

        readExternal, writeExternal
    • Method Detail

      • createContext

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

        void init​(C context)
           throws java.lang.Exception
        Initializes the accumulator
        Parameters:
        context - never null
        Throws:
        java.lang.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,
                        java.lang.Object value)
        Executes the accumulation action
        Parameters:
        context - never null
        value -
      • accumulateValue

        default java.lang.Object accumulateValue​(C context,
                                                 java.lang.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,
                     java.lang.Object value)
              throws java.lang.Exception
        Reverses the accumulation action
        Parameters:
        context - never null
        value -
        Throws:
        java.lang.Exception
      • getResult

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

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

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

        default boolean tryReverse​(C context,
                                   java.lang.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.