Trait

com.rayrobdod.json.builder

Builder

Related Doc: package builder

Permalink

trait Builder[-Key, -Value, Subject] extends AnyRef

An object which takes a series of key-value pairs and combines them into an object using a series of fold-left style method calls.

Key

the type of keys used by the Parser that this Builder will be used by

Value

the type of primitive value types used by the Parser that this Builder will be used by

Subject

the type of object built by this Builder

Source
Builder.scala
Version

3.0

See also

com.rayrobdod.json.parser.Parser

Linear Supertypes
Known Subclasses
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Builder
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def apply[Input](folding: Subject, key: Key, input: Input, parser: Parser[Key, Value, Input]): Either[(String, Int), Subject]

    Permalink

    Add a key-value pair to folding

    Add a key-value pair to folding

    The key is key, and the value is the result of com.rayrobdod.json.parser.Parser.parse on the provided input.

    folding

    the object to be added to. Must be either the return value of init or the return value of apply

    key

    the key of a key-value pair

    input

    the input to a parser

    parser

    a parser for turning input into a value

    returns

    • A scala.util.Right containing the built value, or
    • A scala.util.Left indicating an error message and error index
  2. abstract def init: Subject

    Permalink

    An 'empty' object.

    An 'empty' object. Can be thought of as either the value used at the start of a fold-left operation, or as an object filled with default values.

Concrete 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. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

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

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

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def flatMapKey[K2](fun: (K2) ⇒ Either[(String, Int), Key]): Builder[K2, Value, Subject]

    Permalink

    Change the type of key that this builder requires, with the option of indicating an error condition

    Change the type of key that this builder requires, with the option of indicating an error condition

    fun

    a conversion function from the new key to this's key

    Since

    3.1

  10. final def flatMapValue[V2](fun: (V2) ⇒ Either[(String, Int), Value]): Builder[Key, V2, Subject]

    Permalink

    Change the type of value that this builder requires, with the option of indicating an error condition

    Change the type of value that this builder requires, with the option of indicating an error condition

    Since

    3.0

  11. final def getClass(): Class[_]

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

    Permalink
    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  14. final def mapKey[K2](implicit fun: (K2) ⇒ Key): Builder[K2, Value, Subject]

    Permalink

    Change the type of key that this builder requires

    Change the type of key that this builder requires

    fun

    a conversion function from the new key to this's key

    Since

    3.0

  15. final def mapValue[V2](implicit fun: (V2) ⇒ Value): Builder[Key, V2, Subject]

    Permalink

    Change the type of value that this builder requires

    Change the type of value that this builder requires

    fun

    a conversion function from the new value to this's value

    Since

    3.0

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

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

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

    Permalink
    Definition Classes
    AnyRef
  19. final def synchronized[T0](arg0: ⇒ T0): T0

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def zip[K2, V2, S2](that: Builder[K2, V2, S2])(implicit evk: <:<[K2, Key], evv: <:<[V2, Value]): Builder[K2, V2, (Subject, S2)]

    Permalink

    Create a Builder which builds two items from the same input.

    Create a Builder which builds two items from the same input. The first item built being the one that this would build, and the second item built being the one that that would build.

    Most useful if the Parser input is neither stable nor resendable - say a network stream.

    that

    the other builder

    Since

    3.1

Inherited from AnyRef

Inherited from Any

Ungrouped