Interface VoidIteration

All Known Subinterfaces:
ValueIteration<R>
All Known Implementing Classes:
IteratorInstance

public interface VoidIteration
  • Field Details

    • NULL

      static final Object NULL
  • Method Details

    • doComplete

      void doComplete()
      Complete current iteration, ie. isComplete() will report true and isIncomplete() false

      Purely a convenience feature to use without needing to track if break or continue have been executed

    • doContinue

      void doContinue(int recursionLevel)
      Continue with the next iteration of the given recursion level
      Parameters:
      recursionLevel - 0 current, <0 previous recursion levels, gt;0 actual recursion level
    • doBreak

      void doBreak(int recursionLevel)
      Break out of given recursion level
      Parameters:
      recursionLevel - 0 current, lt;0 previous recursion levels, gt;0 actual recursion level
    • doReturn

      void doReturn()
      Break out of all recursion levels and return current result value for the loop if value loop
    • doContinue

      default void doContinue()
      Continue with next iteration of current recursion level
    • doBreak

      default void doBreak()
      Break the current recursion level, if last level then same as doReturn()
    • getHaveNext

      boolean getHaveNext()
      Returns:
      true if have next element, does not mean it matches filters, just raw next from loop iterator, fast check
    • getHaveAcceptableNext

      boolean getHaveAcceptableNext()
      Returns:
      true if have next element and it passes element filters.

      NOTE: ValueIterationConsumerAdapter not invoked. It is part of the consumer.accept() call hierarchy and can have code side-effects. Only predicate filters are tested. This does not mean the final consumer will see this value.

    • isTerminated

      boolean isTerminated()
      Returns:
      true if looping terminated by doReturn(), or doBreak() of the last recursion level.
    • isComplete

      boolean isComplete()
      Returns:
      true if current iteration is complete ie. had ( Break(), Continue(), Return(), Complete())
    • isIncomplete

      boolean isIncomplete()
      Returns:
      true if current iteration is not complete, ie. need to continue processing
    • ifIncomplete

      void ifIncomplete(@NotNull @NotNull Runnable runnable)
      Run the passed code only if the current iteration is not complete
      Parameters:
      runnable - to run
    • getLoopCount

      int getLoopCount()
      Returns:
      times through the loop of the current recursion level, includes skipped elements due to filtering
    • getAcceptCount

      int getAcceptCount()
      Returns:
      total times consumer was invoked, ie. valid elements
    • getTotalLoopCount

      int getTotalLoopCount()
      Returns:
      current loop count across all recursions
    • getTotalAcceptCount

      int getTotalAcceptCount()
      Returns:
      accept count across all recursions
    • getRecursionLevel

      int getRecursionLevel()
      Returns:
      count of recursion level, can use in Break(recursionLevel) or Continue(recursionLevel) to break/continue a particular recursion
    • getData

      Returns:
      per loop instance mutable data holder