Class 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 Detail

      • Singleton

        public Singleton​(Supplier<R> original)

        Constructor for Singleton.

        Parameters:
        original - a Supplier object
    • Method Detail

      • 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>