Class MemoizingSupplier<T>

  • All Implemented Interfaces:
    Memoize<T>, java.util.function.Supplier<T>

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

      Fields 
      Modifier and Type Field Description
      private boolean initial  
      private java.lang.Object memoized  
    • Constructor Summary

      Constructors 
      Constructor Description
      MemoizingSupplier​(java.util.function.Supplier<? extends T> supplier)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      T get()  
      T peek()
      Peek the value.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • initial

        private volatile boolean initial
      • memoized

        private java.lang.Object memoized
    • Constructor Detail

      • MemoizingSupplier

        MemoizingSupplier​(java.util.function.Supplier<? extends T> supplier)
    • Method Detail

      • get

        public T get()
        Specified by:
        get in interface java.util.function.Supplier<T>
      • peek

        public T peek()
        Description copied from interface: Memoize
        Peek the value.

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

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