org.ekrich.config.impl

Members list

Type members

Classlikes

abstract class AbstractConfigNode extends ConfigNode

Attributes

Supertypes
trait ConfigNode
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
trait ConfigNode
class Object
trait Matchable
class Any
Known subtypes

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
trait Container
trait ConfigObject
trait Map[String, ConfigValue]
trait ConfigValue
class Object
trait Matchable
class Any
Show all
Known subtypes

Trying very hard to avoid a parent reference in config values; when you have a tree like this, the availability of parent() tends to result in a lot of improperly-factored and non-modular code. Please don't add parent().

Trying very hard to avoid a parent reference in config values; when you have a tree like this, the availability of parent() tends to result in a lot of improperly-factored and non-modular code. Please don't add parent().

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
trait ConfigValue
class Object
trait Matchable
class Any
Show all
Known subtypes
object BadMap

A terrible Map that isn't as expensive as HashMap to copy and add one item to. Please write something real if you see this and get cranky.

A terrible Map that isn't as expensive as HashMap to copy and add one item to. Please write something real if you see this and get cranky.

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
BadMap.type
final class BadMap[K, V]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Internal implementation detail, not ABI stable, do not touch. For use only by the org.ekrich.config package.

Internal implementation detail, not ABI stable, do not touch. For use only by the org.ekrich.config package.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
final class ConfigBoolean(origin: ConfigOrigin, val value: Boolean) extends AbstractConfigValue, Serializable

Attributes

Supertypes
trait Serializable
trait ConfigValue
class Object
trait Matchable
class Any
Show all

A ConfigConcatenation represents a list of values to be concatenated (see the spec). It only has to exist if at least one value is an unresolved substitution, otherwise we could go ahead and collapse the list into a single value.

A ConfigConcatenation represents a list of values to be concatenated (see the spec). It only has to exist if at least one value is an unresolved substitution, otherwise we could go ahead and collapse the list into a single value.

Right now this is always a list of strings and ${} references, but in the future should support a list of ConfigList. We may also support concatenations of objects, but ConfigDelayedMerge should be used for that since a concat of objects really will merge, not concatenate.

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
trait Container
trait Unmergeable
trait ConfigValue
class Object
trait Matchable
class Any
Show all

The issue here is that we want to first merge our stack of config files, and then we want to evaluate substitutions. But if two substitutions both expand to an object, we might need to merge those two objects. Thus, we can't ever "override" a substitution when we do a merge; instead we have to save the stack of values that should be merged, and resolve the merge when we evaluate substitutions.

The issue here is that we want to first merge our stack of config files, and then we want to evaluate substitutions. But if two substitutions both expand to an object, we might need to merge those two objects. Thus, we can't ever "override" a substitution when we do a merge; instead we have to save the stack of values that should be merged, and resolve the merge when we evaluate substitutions.

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
trait Container
trait Unmergeable
trait ConfigValue
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
trait Unmergeable
trait Container
trait ConfigObject
trait Map[String, ConfigValue]
trait ConfigValue
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
final class ConfigDouble(origin: ConfigOrigin, val value: Double, originalText: String) extends ConfigNumber, Serializable

Attributes

Supertypes
class ConfigNumber
trait Serializable
trait ConfigValue
class Object
trait Matchable
class Any
Show all
object ConfigImpl

Internal implementation detail, not ABI stable, do not touch. For use only by the org.ekrich.config package.

Internal implementation detail, not ABI stable, do not touch. For use only by the org.ekrich.config package.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
ConfigImpl.type

Internal implementation detail, not ABI stable, do not touch. For use only by the org.ekrich.config package.

Internal implementation detail, not ABI stable, do not touch. For use only by the org.ekrich.config package.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
trait Enum
trait Product
trait Equals
class Enum[ConfigIncludeKind]
trait Serializable
trait Comparable[ConfigIncludeKind]
trait Constable
class Object
trait Matchable
class Any
Show all
final class ConfigInt(origin: ConfigOrigin, val value: Int, originalText: String) extends ConfigNumber, Serializable

Attributes

Supertypes
class ConfigNumber
trait Serializable
trait ConfigValue
class Object
trait Matchable
class Any
Show all
final class ConfigLong(origin: ConfigOrigin, val value: Long, originalText: String) extends ConfigNumber, Serializable

Attributes

Supertypes
class ConfigNumber
trait Serializable
trait ConfigValue
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
trait ConfigNode
class Object
trait Matchable
class Any
Show all
final class ConfigNodeComment(val comment: Token) extends ConfigNodeSingleToken

Attributes

Supertypes
trait ConfigNode
class Object
trait Matchable
class Any
Show all
abstract class ConfigNodeComplexValue(_children: Collection[AbstractConfigNode]) extends AbstractConfigNodeValue

Attributes

Supertypes
trait ConfigNode
class Object
trait Matchable
class Any
Show all
Known subtypes

Attributes

Supertypes
trait ConfigNode
class Object
trait Matchable
class Any
Show all
final class ConfigNodeField(_children: Collection[AbstractConfigNode]) extends AbstractConfigNode

Attributes

Supertypes
trait ConfigNode
class Object
trait Matchable
class Any
final class ConfigNodeInclude(val children: Collection[AbstractConfigNode], val kind: ConfigIncludeKind, val isRequired: Boolean) extends AbstractConfigNode

Attributes

Supertypes
trait ConfigNode
class Object
trait Matchable
class Any

Attributes

Supertypes
trait ConfigNode
class Object
trait Matchable
class Any
Show all
final class ConfigNodePath extends AbstractConfigNode

Attributes

Supertypes
trait ConfigNode
class Object
trait Matchable
class Any

Attributes

Supertypes
trait ConfigNode
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
trait ConfigNode
class Object
trait Matchable
class Any
Show all
class ConfigNodeSingleToken(val token: Token) extends AbstractConfigNode

Attributes

Supertypes
trait ConfigNode
class Object
trait Matchable
class Any
Known subtypes
final class ConfigNull(origin: ConfigOrigin) extends AbstractConfigValue, Serializable

This exists because sometimes null is not the same as missing. Specifically, if a value is set to null we can give a better error message (indicating where it was set to null) in case someone asks for the value. Also, null overrides values set "earlier" in the search path, while missing values do not.

This exists because sometimes null is not the same as missing. Specifically, if a value is set to null we can give a better error message (indicating where it was set to null) in case someone asks for the value. Also, null overrides values set "earlier" in the search path, while missing values do not.

Attributes

Supertypes
trait Serializable
trait ConfigValue
class Object
trait Matchable
class Any
Show all
object ConfigNumber

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
abstract class ConfigNumber(_origin: ConfigOrigin, val originalText: String) extends AbstractConfigValue, Serializable

Attributes

Companion
object
Supertypes
trait Serializable
trait ConfigValue
class Object
trait Matchable
class Any
Show all
Known subtypes
class ConfigDouble
class ConfigInt
class ConfigLong
object ConfigParser

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
final class ConfigReference(_origin: ConfigOrigin, val expression: SubstitutionExpression, val prefixLength: Int) extends AbstractConfigValue, Unmergeable

ConfigReference replaces ConfigReference (the older class kept for back compat) and represents the ${} substitution syntax. It can resolve to any kind of value.

ConfigReference replaces ConfigReference (the older class kept for back compat) and represents the ${} substitution syntax. It can resolve to any kind of value.

Attributes

Supertypes
trait Unmergeable
trait ConfigValue
class Object
trait Matchable
class Any
Show all
object ConfigString

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
abstract class ConfigString(origin: ConfigOrigin, val value: String) extends AbstractConfigValue, Serializable

Attributes

Companion
object
Supertypes
trait Serializable
trait ConfigValue
class Object
trait Matchable
class Any
Show all
trait Container extends ConfigValue

An AbstractConfigValue which contains other values. Java has no way to express "this has to be an AbstractConfigValue also" other than making AbstractConfigValue an interface which would be aggravating. But we can say we are a ConfigValue.

An AbstractConfigValue which contains other values. Java has no way to express "this has to be an AbstractConfigValue also" other than making AbstractConfigValue an interface which would be aggravating. But we can say we are a ConfigValue.

Attributes

Supertypes
trait ConfigValue
class Object
trait Matchable
class Any
Known subtypes

Default automatic type transformations.

Default automatic type transformations.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
enum FromMapMode extends Enum[FromMapMode]

Attributes

Supertypes
trait Enum
trait Product
trait Equals
class Enum[FromMapMode]
trait Serializable
trait Comparable[FromMapMode]
trait Constable
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
class Object
trait Matchable
class Any
Show all
Known subtypes
final class MemoKey

The key used to memoize already-traversed nodes when resolving substitutions

The key used to memoize already-traversed nodes when resolving substitutions

Attributes

Supertypes
class Object
trait Matchable
class Any
enum MemoryUnit(val prefix: String, val powerOf: Int, val power: Int) extends Enum[MemoryUnit]

Attributes

Supertypes
trait Enum
trait Product
trait Equals
class Enum[MemoryUnit]
trait Serializable
trait Comparable[MemoryUnit]
trait Constable
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
enum OriginType extends Enum[OriginType]

Attributes

Supertypes
trait Enum
trait Product
trait Equals
class Enum[OriginType]
trait Serializable
trait Comparable[OriginType]
trait Constable
class Object
trait Matchable
class Any
Show all
object Parseable

Internal implementation detail, not ABI stable, do not touch. For use only by the org.ekrich.config package. The point of this class is to avoid "propagating" each overload on "thing which can be parsed" through multiple interfaces. Most interfaces can have just one overload that takes a Parseable. Also it's used as an abstract "resource handle" in the ConfigIncluder interface.

Internal implementation detail, not ABI stable, do not touch. For use only by the org.ekrich.config package. The point of this class is to avoid "propagating" each overload on "thing which can be parsed" through multiple interfaces. Most interfaces can have just one overload that takes a Parseable. Also it's used as an abstract "resource handle" in the ConfigIncluder interface.

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Parseable.type
abstract class Parseable extends ConfigParseable

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object Path

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Path.type
final class Path(val first: String, val remainder: Path)

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
final class PathBuilder

Attributes

Supertypes
class Object
trait Matchable
class Any
object PathParser

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
PathParser.type
class PlatformClassLoader(cl: ClassLoader) extends TraitClassLoader

To workaround missing implementations

To workaround missing implementations

Attributes

Supertypes
class Object
trait Matchable
class Any
class PlatformThread(thread: Thread) extends TraitThread

To workaround missing implementations in Scala.js and Scala Native

To workaround missing implementations in Scala.js and Scala Native

Attributes

Supertypes
trait TraitThread
class Object
trait Matchable
class Any
class PlatformUri(uri: URI) extends TraitUri

To workaround missing implementations

To workaround missing implementations

Attributes

Supertypes
trait TraitUri
class Object
trait Matchable
class Any

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Implemented by a merge stack (ConfigDelayedMerge, ConfigDelayedMergeObject) that replaces itself during substitution resolution in order to implement "look backwards only" semantics.

Implemented by a merge stack (ConfigDelayedMerge, ConfigDelayedMergeObject) that replaces itself during substitution resolution in order to implement "look backwards only" semantics.

Attributes

Supertypes
trait Container
trait ConfigValue
class Object
trait Matchable
class Any
Show all
Known subtypes

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
final class ResolveMemos

This exists because we have to memoize resolved substitutions as we go through the config tree; otherwise we could end up creating multiple copies of values or whole trees of values as we follow chains of substitutions.

This exists because we have to memoize resolved substitutions as we go through the config tree; otherwise we could end up creating multiple copies of values or whole trees of values as we follow chains of substitutions.

Attributes

Supertypes
class Object
trait Matchable
class Any
object ResolveResult

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
final class ResolveResult[V <: AbstractConfigValue](val context: ResolveContext, val value: V)

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object ResolveSource

This class is the source for values for a substitution like ${foo}.

This class is the source for values for a substitution like ${foo}.

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
final class ResolveSource(val root: AbstractConfigObject, val pathFromRoot: Node[Container])

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
enum ResolveStatus extends Enum[ResolveStatus]

Status of substitution resolution.

Status of substitution resolution.

Attributes

Companion
object
Supertypes
trait Enum
trait Product
trait Equals
class Enum[ResolveStatus]
trait Serializable
trait Comparable[ResolveStatus]
trait Constable
class Object
trait Matchable
class Any
Show all
object ResolveStatus

Attributes

Companion
enum
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type

Deliberately shoving all the serialization code into this class instead of doing it OO-style with each subclass. Seems better to have it all in one place. This class implements a lame serialization format that supports skipping unknown fields, so it's moderately more extensible than the default Java serialization format.

Deliberately shoving all the serialization code into this class instead of doing it OO-style with each subclass. Seems better to have it all in one place. This class implements a lame serialization format that supports skipping unknown fields, so it's moderately more extensible than the default Java serialization format.

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
class SerializedConfigValue() extends AbstractConfigValue, Externalizable

Attributes

Companion
object
Supertypes
trait Externalizable
trait Serializable
trait ConfigValue
class Object
trait Matchable
class Any
Show all
enum SerializedField extends Enum[SerializedField]

Attributes

Companion
object
Supertypes
trait Enum
trait Product
trait Equals
class Enum[SerializedField]
trait Serializable
trait Comparable[SerializedField]
trait Constable
class Object
trait Matchable
class Any
Show all

Attributes

Companion
enum
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
enum SerializedValueType(val configType: ConfigValueType) extends Enum[SerializedValueType]

Attributes

Companion
object
Supertypes
trait Enum
trait Product
trait Equals
class Enum[SerializedValueType]
trait Serializable
trait Comparable[SerializedValueType]
trait Constable
class Object
trait Matchable
class Any
Show all

Attributes

Companion
enum
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
object SimpleConfig

One thing to keep in mind in the future: as Collection-like APIs are added here, including iterators or size() or anything, they should be consistent with a one-level java.util.Map from paths to non-null values. Null values are not "in" the map.

One thing to keep in mind in the future: as Collection-like APIs are added here, including iterators or size() or anything, they should be consistent with a one-level java.util.Map from paths to non-null values. Null values are not "in" the map.

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
final class SimpleConfig extends Config, MergeableValue, Serializable

Attributes

Companion
object
Supertypes
trait Serializable
trait Config
class Object
trait Matchable
class Any
Show all
final class SimpleConfigDocument extends ConfigDocument

Attributes

Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
final class SimpleConfigList(_origin: ConfigOrigin, val value: List[AbstractConfigValue], status: ResolveStatus) extends AbstractConfigValue, ConfigList, Container, Serializable

Attributes

Companion
object
Supertypes
trait Serializable
trait Container
trait ConfigList
trait List[ConfigValue]
trait Collection[ConfigValue]
trait Iterable[ConfigValue]
trait ConfigValue
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
final class SimpleConfigObject(_origin: ConfigOrigin, val value: Map[String, AbstractConfigValue], val status: ResolveStatus, val ignoresFallbacks: Boolean) extends AbstractConfigObject, Serializable

Attributes

Companion
object
Supertypes
trait Serializable
trait Container
trait ConfigObject
trait Map[String, ConfigValue]
trait ConfigValue
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
final class SimpleConfigOrigin extends ConfigOrigin

Attributes

Companion
object
Supertypes
trait ConfigOrigin
class Object
trait Matchable
class Any

Attributes

Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
trait FullIncluder
class Object
trait Matchable
class Any
Show all
final class SubstitutionExpression(val path: Path, val optional: Boolean)

Attributes

Supertypes
class Object
trait Matchable
class Any
object Token

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Token.type
class Token

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Substitution
class Value
enum TokenType extends Enum[TokenType]

Attributes

Supertypes
trait Enum
trait Product
trait Equals
class Enum[TokenType]
trait Serializable
trait Comparable[TokenType]
trait Constable
class Object
trait Matchable
class Any
Show all
object Tokenizer

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Tokenizer.type
object Tokens

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Tokens.type

To workaround missing implementations in Scala.js and Scala Native

To workaround missing implementations in Scala.js and Scala Native

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait TraitThread

To workaround missing implementations in Scala.js and Scala Native

To workaround missing implementations in Scala.js and Scala Native

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait TraitUri

To workaround missing implementations in Scala.js and Scala Native

To workaround missing implementations in Scala.js and Scala Native

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class PlatformUri
trait Unmergeable

Interface that tags a ConfigValue that is not mergeable until after substitutions are resolved. Basically these are special ConfigValue that never appear in a resolved tree, like ConfigSubstitution and ConfigDelayedMerge.

Interface that tags a ConfigValue that is not mergeable until after substitutions are resolved. Basically these are special ConfigValue that never appear in a resolved tree, like ConfigSubstitution and ConfigDelayedMerge.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes