Class LockingLazyVar<T>


  • public abstract class LockingLazyVar<T>
    extends Object
    • Field Detail

      • NULL

        protected static final Object NULL
    • Constructor Detail

      • LockingLazyVar

        public LockingLazyVar()
        Constructs a LockingLazyVar that will use itself as the object of synchronization.
      • LockingLazyVar

        protected LockingLazyVar​(Lock lock)
        Constructs a LockingLazyVar that will synchronize on the given object.
    • Method Detail

      • get

        public final T get()
        Returns:
        the value of this lazy var, created if necessary
      • init

        protected abstract T init()
      • clear

        public final T clear()
        Clears the variable, forcing the next call to get() to re-calculate the value.
      • clearNoLock

        public final void clearNoLock()
      • initDirectly

        protected void initDirectly​(T val)
      • isLoaded

        public boolean isLoaded()
      • make

        public static <Q> LockingLazyVar<Q> make​(LockingLazyVar.LazyVarInit<Q> init)
        Creates a new LockingLazyVar based on the type of the LazyVarInit passed in. This method is intended to be called with blocks from Gosu.