Class SupplierDataContainer

java.lang.Object
com.djrapitops.plan.delivery.domain.container.SupplierDataContainer
All Implemented Interfaces:
DataContainer

public class SupplierDataContainer extends Object implements DataContainer
DataContainer implementation that stores everything in Supplier objects.
  • Constructor Details

    • SupplierDataContainer

      public SupplierDataContainer()
      Create a SupplierDataContainer with a default TTL of 30 seconds.
    • SupplierDataContainer

      public SupplierDataContainer(long timeToLive)
      Create a SupplierDataContainer with a custom TTL.

      The old value is not removed from memory until the supplier is called again.

      Parameters:
      timeToLive - TTL that determines how long a CachingSupplier value is deemed valid.
  • Method Details

    • putRawData

      public <T> void putRawData(Key<T> key, T obj)
      Description copied from interface: DataContainer
      Place your data inside the container.

      What the container does with the object depends on the implementation.

      Specified by:
      putRawData in interface DataContainer
      Type Parameters:
      T - Type of the object
      Parameters:
      key - Key of type T that identifies the data and will be used later when the data needs to be fetched.
      obj - object to store
    • putSupplier

      public <T> void putSupplier(Key<T> key, Supplier<T> supplier)
      Description copied from interface: DataContainer
      Place a data supplier inside the container.

      What the container does with the supplier depends on the implementation.

      Specified by:
      putSupplier in interface DataContainer
      Type Parameters:
      T - Type of the object
      Parameters:
      key - Key of type T that identifies the data and will be used later when the data needs to be fetched.
      supplier - Supplier to store
    • putCachingSupplier

      public <T> void putCachingSupplier(Key<T> key, Supplier<T> supplier)
      Description copied from interface: DataContainer
      Place a caching data supplier inside the container.

      If the supplier is called the value is cached according to the implementation of the container. What the container does with the supplier depends on the implementation.

      Specified by:
      putCachingSupplier in interface DataContainer
      Type Parameters:
      T - Type of the object
      Parameters:
      key - Key of type T that identifies the data and will be used later when the data needs to be fetched.
      supplier - Supplier to store
    • supports

      public <T> boolean supports(Key<T> key)
      Description copied from interface: DataContainer
      Check if a Value with the given Key has been placed into the container.
      Specified by:
      supports in interface DataContainer
      Type Parameters:
      T - Type of the object returned by the Value if it is present.
      Parameters:
      key - Key that identifies the data.
      Returns:
      true if found, false if not.
    • getValue

      public <T> Optional<T> getValue(Key<T> key)
      Description copied from interface: DataContainer
      Get an Optional of the Value identified by the Key.

      It is recommended to check if the Optional is present as null values will be empty.

      Specified by:
      getValue in interface DataContainer
      Type Parameters:
      T - Type of the object returned by Value
      Parameters:
      key - Key that identifies the Value
      Returns:
      Optional of the object if the key is registered and key matches the type of the object. Otherwise empty.
    • getUnsafe

      public <T> T getUnsafe(Key<T> key)
      Description copied from interface: DataContainer
      Get data identified by the Key, or throw an exception.

      It is recommended to use DataContainer.supports(Key) before using this method.

      Specified by:
      getUnsafe in interface DataContainer
      Type Parameters:
      T - Type of the object returned by Value
      Parameters:
      key - Key that identifies the Value
      Returns:
      the value
    • putAll

      public void putAll(DataContainer dataContainer)
      Description copied from interface: DataContainer
      Place all values from given DataContainer into this container.
      Specified by:
      putAll in interface DataContainer
      Parameters:
      dataContainer - Container with values.
    • clear

      public void clear()
      Description copied from interface: DataContainer
      Clear the container of all data.
      Specified by:
      clear in interface DataContainer
    • getMap

      public Map<Key,Object> getMap()
      Description copied from interface: DataContainer
      Return a Key - Value Map of the data in the container.

      This method may call blocking methods if underlying implementation uses the given Suppliers.

      Specified by:
      getMap in interface DataContainer
      Returns:
      Map: Key - Object