Class

org.elevans.migration.parse

KeyValueTransitionMetadataParser

Related Doc: package parse

Permalink

class KeyValueTransitionMetadataParser extends RegexTransitionMetadataParser

A TransitionMetadataParser for text in which the TransitionMetadata fields are provided in a key/value format.

The keys are beforeStateKey, afterStateKey, and isDestructiveKey, and they must appear in that order in the parsed text. By default, the keys are case-insensitive; this can be explicitly set using caseSensitiveKeys.

Each key and its value may be separated by an optional token (keyValueSeparator), which may itself be surrounded by zero or more whitespace characters (spaces, tabs, newlines, etc.). The keyValueSeparator defaults to "".

The value for the before state and the after state in the parsed text may contain any non-whitespace characters, and it must be separated from the subsequent text by at least one whitespace character (i.e., the value is "end-delimited" by whitespace). The value for the 'is destructive' flag must be either "true" or "false", and is case-insensitive.

For example: If instantiated with beforeStateKey = "transition-before", afterStateKey = "transition-after", isDestructiveKey = "transition-destructive", and keyValueSeparator = "=", all of the following Strings will parse to a TransitionMetaData with beforeState="1.0.4", afterState="1.0.5", and isDestructive=true:

 "transition-before = 1.0.4 transition-after = 1.0.5 transition-destructive = true"
 "transition-before=1.0.4 ; transition-after=1.0.5 ; transition-destructive=true"
 "Transition-Before = 1.0.4  Transition-After = 1.0.5   Transition-Destructive = True"
 "TRANSITION-BEFORE = 1.0.4 TRANSITION-AFTER = 1.0.5 TRANSITION-DESTRUCTIVE = TRUE"
Since newlines are ignored as whitespace, the following block parsed as a String also returns the same TransitionMetaData as above:
 -- transition-before = 1.0.4
 -- transition-after = 1.0.5
 -- transition-destructive = true
as does this block:
    transition-before =
    1.0.4
    transition-after
      = 1.0.5

    transition-destructive
    =

    true

Author:

Eric Evans

Linear Supertypes
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. KeyValueTransitionMetadataParser
  2. RegexTransitionMetadataParser
  3. TransitionMetadataParser
  4. AnyRef
  5. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Instance Constructors

  1. new KeyValueTransitionMetadataParser(beforeStateKey: String, afterStateKey: String, isDestructiveKey: String, keyValueSeparator: String = "", caseSensitiveKeys: Boolean = false)

    Permalink

    beforeStateKey

    key for the TransitionMetaData beforeState

    afterStateKey

    key for the TransitionMetaData afterState

    isDestructiveKey

    key for the TransitionMetaData isDestructive flag

    keyValueSeparator

    separator between each key and value (defaults to "")

    caseSensitiveKeys

    set to true if keys should be case-sensitive (defaults to false)

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. val afterStateKey: String

    Permalink

    key for the TransitionMetaData afterState

  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. val beforeStateKey: String

    Permalink

    key for the TransitionMetaData beforeState

  7. val caseSensitiveKeys: Boolean

    Permalink

    set to true if keys should be case-sensitive (defaults to false)

  8. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  13. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  14. val isDestructiveKey: String

    Permalink

    key for the TransitionMetaData isDestructive flag

  15. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  16. val keyValueSeparator: String

    Permalink

    separator between each key and value (defaults to "")

  17. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  18. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  19. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  20. def parse(s: String): Option[TransitionMetaData]

    Permalink

    Parse an optional TransitionMetaData instance from the given String.

    Parse an optional TransitionMetaData instance from the given String.

    Definition Classes
    RegexTransitionMetadataParserTransitionMetadataParser
  21. val regex: Regex

    Permalink
  22. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  23. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  24. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from TransitionMetadataParser

Inherited from AnyRef

Inherited from Any

Ungrouped