org.kie.api.runtime.rule

## 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

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and 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.
    `C` | `createContext()` Creates and returns a new context object
    `Object` | `getResult(C context)`
    `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, Object value)` Reverses the accumulation action
    `boolean` | `supportsReverse()`
    `default boolean` | `tryReverse(C context, 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 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.

Copyright © 2001–2021 JBoss by Red Hat. All rights reserved.