Class MemoizingSupplier<T>

java.lang.Object
aQute.bnd.memoize.MemoizingSupplier<T>
All Implemented Interfaces:
Memoize<T>, Supplier<T>

class MemoizingSupplier<T> extends Object implements Memoize<T>
The object can exist in one of two states:
  • initial which means the source supplier has not been called or has not returned a value acceptable to the predicate and memoized holds the wrapped supplier. From this state, the object can transition to open.
  • open which means memoized is the value from the source supplier. This is the terminal state.
  • Field Details

    • initial

      private volatile boolean initial
    • memoized

      private Object memoized
  • Constructor Details

    • MemoizingSupplier

      MemoizingSupplier(Supplier<? extends T> supplier)
    • MemoizingSupplier

      MemoizingSupplier(Supplier<? extends T> supplier, Predicate<? super T> predicate)
  • Method Details

    • get

      public T get()
      Description copied from interface: Memoize
      Get the memoized value.
      Specified by:
      get in interface Memoize<T>
      Specified by:
      get in interface Supplier<T>
      Returns:
      The memoized value.
    • peek

      public T peek()
      Description copied from interface: Memoize
      Peek the memoized value, if any.

      This method will not result in a call to the source supplier.

      Specified by:
      peek in interface Memoize<T>
      Returns:
      The memoized value if a value is memoized; otherwise null.
    • isPresent

      public boolean isPresent()
      Description copied from interface: Memoize
      If a value is memoized, return true. Otherwise return false.

      This method will not result in a call to the source supplier.

      Specified by:
      isPresent in interface Memoize<T>
      Returns:
      true if a value is memoized; otherwise false.
    • toString

      public String toString()
      Overrides:
      toString in class Object