Interface ConfigValue<T>

    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      <N> ConfigValue<N> as​(Function<T,​N> mapper)
      Convert this ConfigValue to a different type using a mapper function.
      Optional<T> asOptional()
      Returns a typed value as Optional.
      default Optional<T> filter​(Predicate<? super T> predicate)
      If a value is present, and the value matches the given predicate, return an Optional describing the value, otherwise return an empty Optional.
      default <U> Optional<U> flatMap​(Function<? super T,​Optional<U>> mapper)
      If a value is present, apply the provided Optional-bearing mapping function to it, return that result, otherwise return an empty Optional.
      default T get()
      Typed value of the represented Config node.
      default void ifPresent​(Consumer<? super T> consumer)
      If a value is present, invoke the specified consumer with the value, otherwise do nothing.
      default void ifPresentOrElse​(Consumer<T> action, Runnable emptyAction)
      If a value is present, performs the given action with the value, otherwise performs the given empty-based action.
      default boolean isPresent()
      Return true if there is a value present, otherwise false.
      Config.Key key()
      Returns the fully-qualified key of the originating Config node.
      default <U> Optional<U> map​(Function<? super T,​? extends U> mapper)
      If a value is present, apply the provided mapping function to it, and if the result is non-null, return an Optional describing the result.
      default String name()
      Returns the last token of the fully-qualified key for the originating Config node.
      Supplier<Optional<T>> optionalSupplier()
      Returns a Supplier of an Optional<T> of the configuration node.
      default Optional<T> or​(Supplier<? extends Optional<T>> supplier)
      If the underlying Optional does not have a value, set it to the Optional produced by the supplying function.
      default T orElse​(T other)
      Return the value if present, otherwise return other.
      default T orElseGet​(Supplier<? extends T> other)
      Return the value if present, otherwise invoke other and return the result of that invocation.
      default <X extends Throwable>
      T
      orElseThrow​(Supplier<? extends X> exceptionSupplier)
      Return the contained value, if present, otherwise throw an exception to be created by the provided supplier.
      default Stream<T> stream()
      If a value is present, returns a sequential Stream containing only that value, otherwise returns an empty Stream.
      Supplier<T> supplier()
      Returns a supplier of a typed value.
      Supplier<T> supplier​(T defaultValue)
      Returns a supplier of a typed value with a default.
    • Method Detail

      • key

        Config.Key key()
        Returns the fully-qualified key of the originating Config node.

        The fully-qualified key is a sequence of tokens derived from the name of each node along the path from the config root to the current node. Tokens are separated by . (the dot character). See name() for more information on the format of each token.

        Returns:
        current config node key
        See Also:
        name()
      • name

        default String name()
        Returns the last token of the fully-qualified key for the originating Config node.

        The name of a node is the last token in its fully-qualified key.

        The exact format of the name depends on the Type of the containing node:

        • from a Config.Type.OBJECT node the token for a child is the name of the object member;
        • from a Config.Type.LIST node the token for a child is a zero-based index of the element, an unsigned base-10 integer value with no leading zeros.

        The ABNF syntax of config key is:

        
         config-key = *1( key-token *( "." key-token ) )
          key-token = *( unescaped / escaped )
          unescaped = %x00-2D / %x2F-7D / %x7F-10FFFF
                    ; %x2E ('.') and %x7E ('~') are excluded from 'unescaped'
            escaped = "~" ( "0" / "1" )
                    ; representing '~' and '.', respectively
         
        Returns:
        current config node key
        See Also:
        key(), Config.Key.name()
      • as

        <N> ConfigValue<N> as​(Function<T,​N> mapper)
        Convert this ConfigValue to a different type using a mapper function.
        Type Parameters:
        N - type of the returned ConfigValue
        Parameters:
        mapper - mapper to map the type of this ConfigValue to a type of the returned ConfigValue
        Returns:
        a new value with the new type
      • supplier

        Supplier<T> supplier()
        Returns a supplier of a typed value. The value provided from the supplier is the latest value available. E.g. in case there is a file config source that is being watched and a value is changed, this supplier would return the latest value, whereas get() would return the original value.

        Note that Supplier.get() can throw a ConfigMappingException or MissingValueException as the get() method.

        Returns:
        a supplier of a typed value
      • supplier

        Supplier<T> supplier​(T defaultValue)
        Returns a supplier of a typed value with a default. The value provided from the supplier is the latest value available. E.g. in case there is a file config source that is being watched and a value is changed, this supplier would return the latest value, whereas orElse(Object) would return the original value.

        Note that Supplier.get() can throw a ConfigMappingException as the orElse(Object) method.

        Parameters:
        defaultValue - a value to be returned if the supplied value represents a Config node that has no direct value
        Returns:
        a supplier of a typed value
      • or

        default Optional<T> or​(Supplier<? extends Optional<T>> supplier)
        If the underlying Optional does not have a value, set it to the Optional produced by the supplying function.
        Parameters:
        supplier - the supplying function that produces an Optional
        Returns:
        returns current value using asOptional() if present, otherwise value produced by the supplying function.
        Throws:
        NullPointerException - if the supplying function is null or produces a null result
      • isPresent

        default boolean isPresent()
        Return true if there is a value present, otherwise false.

        Copied from Optional. You can get real optional from asOptional().

        Returns:
        true if there is a value present, otherwise false
        See Also:
        Optional.isPresent()
      • ifPresentOrElse

        default void ifPresentOrElse​(Consumer<T> action,
                                     Runnable emptyAction)
        If a value is present, performs the given action with the value, otherwise performs the given empty-based action.
        Parameters:
        action - the action to be performed, if a value is present
        emptyAction - the empty-based action to be performed, if no value is present
        Throws:
        NullPointerException - if a value is present and the given action is null, or no value is present and the given empty-based action is null.
      • ifPresent

        default void ifPresent​(Consumer<? super T> consumer)
        If a value is present, invoke the specified consumer with the value, otherwise do nothing.

        Copied from Optional. You can get real optional from asOptional().

        Parameters:
        consumer - block to be executed if a value is present
        Throws:
        NullPointerException - if value is present and consumer is null
        See Also:
        Optional.ifPresent(Consumer)
      • filter

        default Optional<T> filter​(Predicate<? super T> predicate)
        If a value is present, and the value matches the given predicate, return an Optional describing the value, otherwise return an empty Optional.

        Copied from Optional. You can get real optional from asOptional().

        Parameters:
        predicate - a predicate to apply to the value, if present
        Returns:
        an Optional describing the value of this Optional if a value is present and the value matches the given predicate, otherwise an empty Optional
        Throws:
        NullPointerException - if the predicate is null
        See Also:
        Optional.filter(Predicate)
      • map

        default <U> Optional<U> map​(Function<? super T,​? extends U> mapper)
        If a value is present, apply the provided mapping function to it, and if the result is non-null, return an Optional describing the result. Otherwise return an empty Optional.
        Type Parameters:
        U - The type of the result of the mapping function
        Parameters:
        mapper - a mapping function to apply to the value, if present
        Returns:
        an Optional describing the result of applying a mapping function to the value of this Optional, if a value is present, otherwise an empty Optional
        Throws:
        NullPointerException - if the mapping function is null

        Copied from Optional. You can get real optional from asOptional().

        See Also:
        Optional.map(Function)
      • flatMap

        default <U> Optional<U> flatMap​(Function<? super T,​Optional<U>> mapper)
        If a value is present, apply the provided Optional-bearing mapping function to it, return that result, otherwise return an empty Optional. This method is similar to map(Function), but the provided mapper is one whose result is already an Optional, and if invoked, flatMap does not wrap it with an additional Optional.

        Copied from Optional. You can get real optional from asOptional().

        Type Parameters:
        U - The type parameter to the Optional returned by
        Parameters:
        mapper - a mapping function to apply to the value, if present the mapping function
        Returns:
        the result of applying an Optional-bearing mapping function to the value of this Optional, if a value is present, otherwise an empty Optional
        Throws:
        NullPointerException - if the mapping function is null or returns a null result
        See Also:
        Optional.flatMap(Function)
      • orElse

        default T orElse​(T other)
        Return the value if present, otherwise return other.

        Copied from Optional. You can get real optional from asOptional().

        Parameters:
        other - the value to be returned if there is no value present, may be null
        Returns:
        the value, if present, otherwise other
        See Also:
        Optional.orElse(Object)
      • orElseGet

        default T orElseGet​(Supplier<? extends T> other)
        Return the value if present, otherwise invoke other and return the result of that invocation.

        Copied from Optional. You can get real optional from asOptional().

        Parameters:
        other - a Supplier whose result is returned if no value is present
        Returns:
        the value if present otherwise the result of other.get()
        Throws:
        NullPointerException - if value is not present and other is null
        See Also:
        Optional.orElseGet(Supplier)
      • orElseThrow

        default <X extends ThrowableT orElseThrow​(Supplier<? extends X> exceptionSupplier)
                                             throws X extends Throwable
        Return the contained value, if present, otherwise throw an exception to be created by the provided supplier.

        Copied from Optional. You can get real optional from asOptional().

        Type Parameters:
        X - Type of the exception to be thrown
        Parameters:
        exceptionSupplier - The supplier which will return the exception to be thrown
        Returns:
        the present value
        Throws:
        X - if there is no value present
        NullPointerException - if no value is present and exceptionSupplier is null
        X extends Throwable
        See Also:
        Optional.orElseThrow(Supplier)
      • stream

        default Stream<T> stream()
        If a value is present, returns a sequential Stream containing only that value, otherwise returns an empty Stream.
        Returns:
        the optional value as a Stream