Package

org.ekrich.config

impl

Permalink

package impl

Visibility
  1. Public
  2. All

Type Members

  1. abstract class AbstractConfigNode extends ConfigNode

    Permalink
  2. abstract class AbstractConfigNodeValue extends AbstractConfigNode

    Permalink
  3. abstract class AbstractConfigObject extends AbstractConfigValue with ConfigObject with Container

    Permalink
  4. abstract class AbstractConfigValue extends ConfigValue with MergeableValue

    Permalink
  5. final class BadMap[K, V] extends AnyRef

    Permalink
  6. trait ClassLoaderLike extends AnyRef

    Permalink

    To workaround missing implementation in Scala.js

  7. final class ConfigBoolean extends AbstractConfigValue with Serializable

    Permalink
    Annotations
    @SerialVersionUID()
  8. final class ConfigConcatenation extends AbstractConfigValue with Unmergeable with Container

    Permalink
  9. final class ConfigDelayedMerge extends AbstractConfigValue with Unmergeable with ReplaceableMergeStack

    Permalink
  10. final class ConfigDelayedMergeObject extends AbstractConfigObject with Unmergeable with ReplaceableMergeStack

    Permalink
  11. final class ConfigDouble extends ConfigNumber with Serializable

    Permalink
    Annotations
    @SerialVersionUID()
  12. final class ConfigIncludeKind extends Enum[ConfigIncludeKind]

    Permalink
  13. final class ConfigInt extends ConfigNumber with Serializable

    Permalink
    Annotations
    @SerialVersionUID()
  14. final class ConfigLong extends ConfigNumber with Serializable

    Permalink
    Annotations
    @SerialVersionUID()
  15. final class ConfigNodeArray extends ConfigNodeComplexValue

    Permalink
  16. final class ConfigNodeComment extends ConfigNodeSingleToken

    Permalink
  17. abstract class ConfigNodeComplexValue extends AbstractConfigNodeValue

    Permalink
  18. final class ConfigNodeConcatenation extends ConfigNodeComplexValue

    Permalink
  19. final class ConfigNodeField extends AbstractConfigNode

    Permalink
  20. final class ConfigNodeInclude extends AbstractConfigNode

    Permalink
  21. final class ConfigNodeObject extends ConfigNodeComplexValue

    Permalink
  22. final class ConfigNodePath extends AbstractConfigNode

    Permalink
  23. final class ConfigNodeRoot extends ConfigNodeComplexValue

    Permalink
  24. final class ConfigNodeSimpleValue extends AbstractConfigNodeValue

    Permalink
  25. class ConfigNodeSingleToken extends AbstractConfigNode

    Permalink
  26. final class ConfigNull extends AbstractConfigValue with Serializable

    Permalink

    This exists because sometimes null is not the same as missing.

    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.

    Annotations
    @SerialVersionUID()
  27. abstract class ConfigNumber extends AbstractConfigValue with Serializable

    Permalink
    Annotations
    @SerialVersionUID()
  28. final class ConfigReference extends AbstractConfigValue with Unmergeable

    Permalink

    ConfigReference replaces ConfigReference (the older class kept for back compat) and represents the ${} substitution syntax.

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

  29. abstract class ConfigString extends AbstractConfigValue with Serializable

    Permalink
    Annotations
    @SerialVersionUID()
  30. trait Container extends ConfigValue

    Permalink

    An AbstractConfigValue which contains other values.

    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.

  31. final class FromMapMode extends Enum[FromMapMode]

    Permalink
  32. trait FullIncluder extends ConfigIncluder with ConfigIncluderFile with ConfigIncluderURL with ConfigIncluderClasspath

    Permalink
  33. final class MemoKey extends AnyRef

    Permalink

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

  34. trait MergeableValue extends ConfigMergeable

    Permalink
  35. final class OriginType extends Enum[OriginType]

    Permalink
  36. abstract class Parseable extends ConfigParseable

    Permalink
  37. final class Path extends AnyRef

    Permalink
  38. final class PathBuilder extends AnyRef

    Permalink
  39. class PlatformClassLoader extends ClassLoaderLike

    Permalink

    To workaround missing implementation in Scala.js

  40. class PlatformThread extends ThreadLike

    Permalink

    To workaround missing implementation in Scala.js

  41. class PlatformUri extends UriLike

    Permalink

    To workaround missing implementation in Scala.js

  42. trait ReplaceableMergeStack extends Container

    Permalink

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

  43. final class ResolveMemos extends AnyRef

    Permalink

    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.

  44. final class ResolveResult[V <: AbstractConfigValue] extends AnyRef

    Permalink
  45. final class ResolveSource extends AnyRef

    Permalink
  46. class ResolveStatus extends Enum[ResolveStatus]

    Permalink

    Status of substitution resolution.

  47. class SerializedConfigValue extends AbstractConfigValue with Externalizable

    Permalink
    Annotations
    @SerialVersionUID()
  48. final class SerializedField extends Enum[SerializedField]

    Permalink
  49. final class SerializedValueType extends Enum[SerializedValueType]

    Permalink
  50. final class SimpleConfig extends Config with MergeableValue with Serializable

    Permalink
    Annotations
    @SerialVersionUID()
  51. final class SimpleConfigDocument extends ConfigDocument

    Permalink
  52. final class SimpleConfigList extends AbstractConfigValue with ConfigList with Container with Serializable

    Permalink
    Annotations
    @SerialVersionUID()
  53. final class SimpleConfigObject extends AbstractConfigObject with Serializable

    Permalink
    Annotations
    @SerialVersionUID()
  54. final class SimpleConfigOrigin extends ConfigOrigin

    Permalink
  55. class SimpleIncludeContext extends ConfigIncludeContext

    Permalink
  56. class SimpleIncluder extends FullIncluder

    Permalink
  57. final class SubstitutionExpression extends AnyRef

    Permalink
  58. trait ThreadLike extends AnyRef

    Permalink

    To workaround missing implementation in Scala.js

  59. class Token extends AnyRef

    Permalink
  60. final class TokenType extends Enum[TokenType]

    Permalink
  61. trait Unmergeable extends AnyRef

    Permalink

    Interface that tags a ConfigValue that is not mergeable until after substitutions are resolved.

    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.

  62. trait UriLike extends AnyRef

    Permalink

    To workaround missing implementation in Scala.js

Value Members

  1. object AbstractConfigObject

    Permalink
  2. object AbstractConfigValue

    Permalink

    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.

    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().

  3. object BadMap

    Permalink

    A terrible Map that isn't as expensive as HashMap to copy and add one item to.

    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.

  4. object ConfigBeanImpl

    Permalink

    Internal implementation detail, not ABI stable, do not touch.

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

  5. object ConfigConcatenation

    Permalink

    A ConfigConcatenation represents a list of values to be concatenated (see the spec).

    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.

  6. object ConfigDelayedMerge

    Permalink

    The issue here is that we want to first merge our stack of config files, and then we want to 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.

  7. object ConfigDelayedMergeObject

    Permalink
  8. object ConfigDocumentParser

    Permalink
  9. object ConfigImpl

    Permalink

    Internal implementation detail, not ABI stable, do not touch.

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

  10. object ConfigImplUtil

    Permalink

    Internal implementation detail, not ABI stable, do not touch.

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

  11. object ConfigIncludeKind extends Serializable

    Permalink
  12. object ConfigNumber extends Serializable

    Permalink
    Annotations
    @SerialVersionUID()
  13. object ConfigParser

    Permalink
  14. object ConfigString extends Serializable

    Permalink
    Annotations
    @SerialVersionUID()
  15. object DefaultTransformer

    Permalink

    Default automatic type transformations.

  16. object FromMapMode extends Serializable

    Permalink
  17. object OriginType extends Serializable

    Permalink
  18. object Parseable

    Permalink

    Internal implementation detail, not ABI stable, do not touch.

    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.

  19. object Path

    Permalink
  20. object PathParser

    Permalink
  21. object PropertiesParser

    Permalink
  22. object ResolveContext

    Permalink
  23. object ResolveResult

    Permalink
  24. object ResolveSource

    Permalink

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

  25. object ResolveStatus extends Serializable

    Permalink
  26. object SerializedConfigValue extends Serializable

    Permalink

    Deliberately shoving all the serialization code into this class instead of doing it OO-style with each subclass.

    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.

    Annotations
    @SerialVersionUID()
  27. object SerializedField extends Serializable

    Permalink
  28. object SerializedValueType extends Serializable

    Permalink
  29. object SimpleConfig extends Serializable

    Permalink

    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.

    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.

    Annotations
    @SerialVersionUID()
  30. object SimpleConfigList extends Serializable

    Permalink
    Annotations
    @SerialVersionUID()
  31. object SimpleConfigObject extends Serializable

    Permalink
    Annotations
    @SerialVersionUID()
  32. object SimpleConfigOrigin

    Permalink
  33. object SimpleIncluder

    Permalink
  34. object Token

    Permalink
  35. object TokenType extends Serializable

    Permalink
  36. object Tokenizer

    Permalink
  37. object Tokens

    Permalink

Ungrouped