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

com.davidbracewell.stream.MAccumulator Maven / Gradle / Ivy

There is a newer version: 0.5
Show newest version
package com.davidbracewell.stream;

/**
 * The interface M accumulator.
 *
 * @author David B. Bracewell
 */
public interface MAccumulator {

  /**
   * Increment.
   */
  default void increment() {
    increment(1d);
  }

  /**
   * Decrement.
   */
  default void decrement() {
    decrement(1d);
  }

  /**
   * Increment if.
   *
   * @param result the result
   */
  default void incrementIf(boolean result) {
    if (result) {
      increment(1d);
    }
  }

  /**
   * Decrement if.
   *
   * @param result the result
   */
  default void decrementIf(boolean result) {
    if (result) {
      decrement(1d);
    }
  }

  /**
   * Increment unless.
   *
   * @param result the result
   */
  default void incrementUnless(boolean result) {
    if (!result) {
      increment(1d);
    }
  }

  /**
   * Decrement unless.
   *
   * @param result the result
   */
  default void decrementUnless(boolean result) {
    if (!result) {
      decrement(1d);
    }
  }

  /**
   * Increment.
   *
   * @param amount the amount
   */
  void increment(double amount);

  /**
   * Decrement.
   *
   * @param amount the amount
   */
  void decrement(double amount);

  /**
   * Value double.
   *
   * @return the double
   */
  double value();

  /**
   * Sets value.
   *
   * @param value the value
   */
  void setValue(double value);


  /**
   * Name string.
   *
   * @return the string
   */
  String name();


}// END OF MAccumulator




© 2015 - 2025 Weber Informatics LLC | Privacy Policy