Class Singleton<R>

java.lang.Object
com.ulisesbocchio.jasyptspringboot.util.Singleton<R>
All Implemented Interfaces:
Supplier<R>

public final class Singleton<R> extends Object implements Supplier<R>
Singleton initializer class that uses an internal supplier to supply the singleton instance. The supplier originally checks whether the instanceSupplier has been initialized or not, but after initialization the instance supplier is changed to avoid extra logic execution.
Version:
$Id: $Id
Author:
Sergio.U.Bocchio
  • Constructor Details

    • Singleton

      public Singleton(Supplier<R> original)

      Constructor for Singleton.

      Parameters:
      original - a Supplier object
  • Method Details

    • from

      public static <R> Singleton<R> from(Supplier<R> original)

      from.

      Type Parameters:
      R - a R class
      Parameters:
      original - a Supplier object
      Returns:
      a Singleton object
    • from

      public static <T, R> Singleton<R> from(Function<T,R> original, T arg0)

      from.

      Type Parameters:
      T - a T class
      R - a R class
      Parameters:
      original - a Function object
      arg0 - a T object
      Returns:
      a Singleton object
    • from

      public static <T, U, R> Singleton<R> from(BiFunction<T,U,R> original, T arg0, U arg1)

      from.

      Type Parameters:
      T - a T class
      U - a U class
      R - a R class
      Parameters:
      original - a BiFunction object
      arg0 - a T object
      arg1 - a U object
      Returns:
      a Singleton object
    • fromLazy

      public static <T, R> Singleton<R> fromLazy(Function<T,R> original, Supplier<T> arg0Supplier)

      fromLazy.

      Type Parameters:
      T - a T class
      R - a R class
      Parameters:
      original - a Function object
      arg0Supplier - a Supplier object
      Returns:
      a Singleton object
    • fromLazy

      public static <T, U, R> Singleton<R> fromLazy(BiFunction<T,U,R> original, Supplier<T> arg0Supplier, Supplier<U> arg1Supplier)

      fromLazy.

      Type Parameters:
      T - a T class
      U - a U class
      R - a R class
      Parameters:
      original - a BiFunction object
      arg0Supplier - a Supplier object
      arg1Supplier - a Supplier object
      Returns:
      a Singleton object
    • get

      public R get()
      Specified by:
      get in interface Supplier<R>