trait Config extends AnyRef

API for retrieving configuration values based on a string key and a decoder.

Config instances are used in many places in this library, each Document, DocumentTree and Directive has a Config instance associated with it.

One use case for configuration is controlling the behaviour of built-in features, like setting the navigation order or the depth for table of contents.

A second use case is user configuration, where custom variables can be set in configuration files or headers and then referenced in templates or markup with the syntax ${ref.path}.

The key is a path separated by '.', which allows to reference nested objects in the configuration.

Built-in decoders are available for simple types like String, Int, Double, Boolean and any Seq consisting of those values.

It also comes with a decoder for Path, which resolves relative paths in the configuration against the (virtual) path of the origin.

This API is usually used with values obtained by parsing HOCON, as specified in https://github.com/lightbend/config/blob/master/HOCON.md, but the API is generic and can also be used with values specified programmatically.

Please note that Laika does not depend on the Typesafe Config library or any of its commonly used Scala wrappers or forks. It has its own HOCON parser, which implements the full spec while still being minimal and lightweight. It also ensures the FP properties are kept intact, e.g. it has full referential transparency and does not throw Exceptions like most of the alternatives.

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Config
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def get[T](key: Key)(implicit decoder: ConfigDecoder[T]): ConfigResult[T]

    Retrieve a required value for the specified key and decoder.

  2. abstract def hasKey(key: Key): Boolean

    Verifies whether this config instance contains a value mapped to the specified key.

  3. abstract def origin: Origin

    The origin of this configuration, which might come from programmatic configuration, a file in one of the input directories, a configuration header in a markup document or from an attribute section in a directive.

  4. abstract def withFallback(other: Config): Config

    Returns a new configuration instance using the specified instance as a fallback for keys not found in this instance.

    Returns a new configuration instance using the specified instance as a fallback for keys not found in this instance.

    If this instance already has a fallback, the new fallback will be passed further down the chain.

  5. abstract def withOrigin(origin: Origin): Config

    Returns a new configuration instance using the specified origin.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  9. def get[T](implicit decoder: ConfigDecoder[T], defaultKey: DefaultKey[T]): ConfigResult[T]

    Retrieve a required value for the specified implicit key and decoder.

    Retrieve a required value for the specified implicit key and decoder.

    A defaultKey can be used for commonly used configuration objects like AutonumberConfig that are expected to be mapped to a specific key, like autonumbering.

  10. def get[T](key: String, default: => T)(implicit decoder: ConfigDecoder[T]): ConfigResult[T]

    Retrieve an optional value for the specified key and decoder, falling back to the given default if the value is missing.

  11. def get[T](key: Key, default: => T)(implicit decoder: ConfigDecoder[T]): ConfigResult[T]

    Retrieve an optional value for the specified key and decoder, falling back to the given default if the value is missing.

  12. def get[T](key: String)(implicit decoder: ConfigDecoder[T]): ConfigResult[T]

    Retrieve a required value for the specified key and decoder.

  13. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. def getOpt[T](key: String)(implicit decoder: ConfigDecoder[T]): ConfigResult[Option[T]]

    Retrieve an optional value for the specified key and decoder.

    Retrieve an optional value for the specified key and decoder. The result is still an Either as this method might still fail even if the value is present in case the decoding fails.

  15. def getOpt[T](implicit decoder: ConfigDecoder[T], defaultKey: DefaultKey[T]): ConfigResult[Option[T]]

    Retrieve an optional value for the specified implicit key and decoder.

    Retrieve an optional value for the specified implicit key and decoder.

    A defaultKey can be used for commonly used configuration objects like AutonumberConfig that are expected to be mapped to a specific key, like autonumbering.

    The result is still an Either as this method might still fail even if the value is present in case the decoding fails.

  16. def getOpt[T](key: Key)(implicit decoder: ConfigDecoder[T]): ConfigResult[Option[T]]

    Retrieve an optional value for the specified key and decoder.

    Retrieve an optional value for the specified key and decoder. The result is still an Either as this method might still fail even if the value is present in case the decoding fails.

  17. def hasKey(key: String): Boolean

    Verifies whether this config instance contains a value mapped to the specified key.

  18. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  19. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  20. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  21. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  22. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  23. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  24. def toString(): String
    Definition Classes
    AnyRef → Any
  25. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  26. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  27. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  28. def withValue[T](value: T)(implicit encoder: ConfigEncoder[T], defaultKey: DefaultKey[T]): ConfigBuilder

    Creates a new configuration builder with the specified value and this instance as a fallback.

    Creates a new configuration builder with the specified value and this instance as a fallback. The returned builder can be used to add further values before calling build to retrieve a new instance.

  29. def withValue[T](key: Key, value: T)(implicit encoder: ConfigEncoder[T]): ConfigBuilder

    Creates a new configuration builder with the specified value and this instance as a fallback.

    Creates a new configuration builder with the specified value and this instance as a fallback. The returned builder can be used to add further values before calling build to retrieve a new instance.

  30. def withValue[T](key: String, value: T)(implicit encoder: ConfigEncoder[T]): ConfigBuilder

    Creates a new configuration builder with the specified value and this instance as a fallback.

    Creates a new configuration builder with the specified value and this instance as a fallback. The returned builder can be used to add further values before calling build to retrieve a new instance.

Inherited from AnyRef

Inherited from Any

Ungrouped