Interface DataContainer

    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      void clear()
      Clear the container of all data.
      default <T> java.lang.String getFormatted​(Key<T> key, Formatter<java.util.Optional<T>> formatter)
      Get formatted Value identified by the Key.
      default <T> java.lang.String getFormattedUnsafe​(Key<T> key, Formatter<T> formatter)
      Get formatted Value identified by the Key, or throw an exception.
      java.util.Map<Key,​java.lang.Object> getMap()
      Return a Key - Value Map of the data in the container.
      <T> T getUnsafe​(Key<T> key)
      Get data identified by the Key, or throw an exception.
      <T> java.util.Optional<T> getValue​(Key<T> key)
      Get an Optional of the Value identified by the Key.
      default java.util.List<?> handleList​(java.util.List<?> list)  
      default java.util.Map<?,​?> handleMap​(java.util.Map<?,​?> map)  
      default java.util.Map<java.lang.String,​java.lang.Object> mapToNormalMap()  
      void putAll​(DataContainer dataContainer)
      Place all values from given DataContainer into this container.
      <T> void putCachingSupplier​(Key<T> key, java.util.function.Supplier<T> supplier)
      Place a caching data supplier inside the container.
      <T> void putRawData​(Key<T> key, T obj)
      Place your data inside the container.
      <T> void putSupplier​(Key<T> key, java.util.function.Supplier<T> supplier)
      Place a data supplier inside the container.
      <T> boolean supports​(Key<T> key)
      Check if a Value with the given Key has been placed into the container.
    • Method Detail

      • mapToNormalMap

        default java.util.Map<java.lang.String,​java.lang.Object> mapToNormalMap()
      • handleList

        default java.util.List<?> handleList​(java.util.List<?> list)
      • handleMap

        default java.util.Map<?,​?> handleMap​(java.util.Map<?,​?> map)
      • putRawData

        <T> void putRawData​(Key<T> key,
                            T obj)
        Place your data inside the container.

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

        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

        <T> void putSupplier​(Key<T> key,
                             java.util.function.Supplier<T> supplier)
        Place a data supplier inside the container.

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

        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

        <T> void putCachingSupplier​(Key<T> key,
                                    java.util.function.Supplier<T> supplier)
        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.

        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

        <T> boolean supports​(Key<T> key)
        Check if a Value with the given Key has been placed into the container.
        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

        <T> java.util.Optional<T> getValue​(Key<T> key)
        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.

        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

        <T> T getUnsafe​(Key<T> key)
        Get data identified by the Key, or throw an exception.

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

        Type Parameters:
        T - Type of the object returned by Value
        Parameters:
        key - Key that identifies the Value
        Returns:
        the value
        Throws:
        java.lang.IllegalArgumentException - If the key is not supported.
      • getFormatted

        default <T> java.lang.String getFormatted​(Key<T> key,
                                                  Formatter<java.util.Optional<T>> formatter)
        Get formatted Value identified by the Key.

        Type Parameters:
        T - Type of the object returned by Value
        Parameters:
        key - Key that identifies the Value
        formatter - Formatter for the Optional returned by getValue(Key)
        Returns:
        Optional of the object if the key is registered and key matches the type of the object. Otherwise empty.
      • getFormattedUnsafe

        default <T> java.lang.String getFormattedUnsafe​(Key<T> key,
                                                        Formatter<T> formatter)
        Get formatted Value identified by the Key, or throw an exception.

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

        Type Parameters:
        T - Type of the object returned by Value
        Parameters:
        key - Key that identifies the Value
        formatter - Formatter for the value
        Returns:
        the value
        Throws:
        java.lang.IllegalArgumentException - If the key is not supported.
      • putAll

        void putAll​(DataContainer dataContainer)
        Place all values from given DataContainer into this container.
        Parameters:
        dataContainer - Container with values.
      • clear

        void clear()
        Clear the container of all data.
      • getMap

        java.util.Map<Key,​java.lang.Object> getMap()
        Return a Key - Value Map of the data in the container.

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

        Returns:
        Map: Key - Object