Interface ConfigValue<T>

Type Parameters:
T - type of the value

public interface ConfigValue<T>
A typed value of a Config node.

You can use accessor methods on Config to obtain this value, such as Config.as(Class). A typed value that has all the methods of Optional - including the ones added in JDK9 and newer. In addition it has methods to access config values as supplier().

See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    <N> ConfigValue<N>
    as(Function<T,N> mapper)
    Convert this ConfigValue to a different type using a mapper function.
    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
    Return true if there is a value present, otherwise false.
    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
    Returns the last token of the fully-qualified key for the originating Config node.
    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>
    If a value is present, returns a sequential Stream containing only that value, otherwise returns an empty Stream.
    Returns a supplier of a typed value.
    supplier(T defaultValue)
    Returns a supplier of a typed value with a default.
  • Method Details

    • 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

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

      Optional<T> asOptional() throws ConfigMappingException
      Returns a typed value as Optional. Returns a empty for nodes without a value. As this class implements all methods of Optional, this is only a utility method if an actual Optional instance is needed.
      Returns:
      value as type instance as Optional, empty in case the node does not have a direct value
      Throws:
      ConfigMappingException - in case the value cannot be converted to the expected type
      See Also:
    • get

      Typed value of the represented Config node. Throws MissingValueException if the node is Config.Type.MISSING type.
      Returns:
      direct value of this node converted to the expected type
      Throws:
      MissingValueException - in case the node is Config.Type.MISSING.
      ConfigMappingException - in case the value cannot be converted to the expected type
    • 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
    • optionalSupplier

      Supplier<Optional<T>> optionalSupplier()
      Returns a Supplier of an Optional<T> of the configuration node. Supplier returns a empty if the node does not have a direct value.
      Returns:
      a supplier of the value as an Optional typed instance, empty in case the node does not have a direct value
      See Also:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • orElseThrow

      default <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X
      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
      See Also:
    • 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