io.dylemma.spac

ContextStackSplitter

class ContextStackSplitter[In, StackElem, +Context] extends Splitter[In, Context]

Base implementation for Splitters that deal with a "stack-like" input type, e.g. XML or JSON. As the stream goes through the splitter, a context stack is maintained, and passed into a ContextMatcher. Substream boundaries are defined as the events that cause the stack to enter and exit states that cause the matcher returns a value.

In

The input type

StackElem

The context stack type

Context

The interpreted value returned by the matcher given a context stack

Self Type
ContextStackSplitter[In, StackElem, Context]
Source
Splitter.scala
Linear Supertypes
Splitter[In, Context], AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ContextStackSplitter
  2. Splitter
  3. AnyRef
  4. Any
Implicitly
  1. by any2stringadd
  2. by any2stringfmt
  3. by any2ArrowAssoc
  4. by any2Ensuring
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ContextStackSplitter(matcher: ContextMatcher[StackElem, Context])(implicit stackable: Aux[In, StackElem])

    matcher

    A function that decides whether the context stack represents a Context value

    stackable

    A strategy for updating the context stack based on inputs

Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. def +(other: String): String

    Implicit information
    This member is added by an implicit conversion from ContextStackSplitter[In, StackElem, Context] to StringAdd performed by method any2stringadd in scala.Predef.
    Definition Classes
    StringAdd
  5. def ->[B](y: B): (ContextStackSplitter[In, StackElem, Context], B)

    Implicit information
    This member is added by an implicit conversion from ContextStackSplitter[In, StackElem, Context] to ArrowAssoc[ContextStackSplitter[In, StackElem, Context]] performed by method any2ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  6. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  7. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  8. def as[P](implicit parser: (Context) ⇒ HandlerFactory[In, P]): Transformer[In, P]

    Definition Classes
    Splitter
  9. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  10. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  11. def ensuring(cond: (ContextStackSplitter[In, StackElem, Context]) ⇒ Boolean, msg: ⇒ Any): ContextStackSplitter[In, StackElem, Context]

    Implicit information
    This member is added by an implicit conversion from ContextStackSplitter[In, StackElem, Context] to Ensuring[ContextStackSplitter[In, StackElem, Context]] performed by method any2Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. def ensuring(cond: (ContextStackSplitter[In, StackElem, Context]) ⇒ Boolean): ContextStackSplitter[In, StackElem, Context]

    Implicit information
    This member is added by an implicit conversion from ContextStackSplitter[In, StackElem, Context] to Ensuring[ContextStackSplitter[In, StackElem, Context]] performed by method any2Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  13. def ensuring(cond: Boolean, msg: ⇒ Any): ContextStackSplitter[In, StackElem, Context]

    Implicit information
    This member is added by an implicit conversion from ContextStackSplitter[In, StackElem, Context] to Ensuring[ContextStackSplitter[In, StackElem, Context]] performed by method any2Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. def ensuring(cond: Boolean): ContextStackSplitter[In, StackElem, Context]

    Implicit information
    This member is added by an implicit conversion from ContextStackSplitter[In, StackElem, Context] to Ensuring[ContextStackSplitter[In, StackElem, Context]] performed by method any2Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  15. final def eq(arg0: AnyRef): Boolean

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

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

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  18. def flatMap[P](joiner: (Context) ⇒ Transformer[In, P]): Transformer[In, P]

    Definition Classes
    Splitter
  19. def formatted(fmtstr: String): String

    Implicit information
    This member is added by an implicit conversion from ContextStackSplitter[In, StackElem, Context] to StringFormat performed by method any2stringfmt in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  20. final def getClass(): Class[_]

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

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

    Definition Classes
    Any
  23. def makeHandler[Out](downstream: ContextSensitiveHandler[In, Context, Out]): Handler[In, Out]

    Definition Classes
    ContextStackSplitterSplitter
  24. def map[P](joiner: (Context) ⇒ HandlerFactory[In, P]): Transformer[In, P]

    Combine this splitter with a "joiner" which obtains a consumer (generalized as a HandlerFactory for its substreams based on a Context value.

    Combine this splitter with a "joiner" which obtains a consumer (generalized as a HandlerFactory for its substreams based on a Context value. If the consumer logic is independent of any Context value, you can pass a HandlerFactory directly instead of wrapping it as a function, since HandlerFactory extends Any => HandlerFactory.

    P

    The result type returned by the consumer logic

    joiner

    The consumer logic for substreams generated by this Splitter

    returns

    A Transformer that feeds inputs through this splitter to create substreams, then feeds those substreams into the joiner to create Out values that will be passed downstream.

    Definition Classes
    Splitter
  25. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  26. final def notify(): Unit

    Definition Classes
    AnyRef
  27. final def notifyAll(): Unit

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

    Definition Classes
    AnyRef
  29. def toString(): String

    Definition Classes
    ContextStackSplitter → AnyRef → Any
  30. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. def [B](y: B): (ContextStackSplitter[In, StackElem, Context], B)

    Implicit information
    This member is added by an implicit conversion from ContextStackSplitter[In, StackElem, Context] to ArrowAssoc[ContextStackSplitter[In, StackElem, Context]] performed by method any2ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Shadowed Implicit Value Members

  1. val self: Any

    Implicit information
    This member is added by an implicit conversion from ContextStackSplitter[In, StackElem, Context] to StringAdd performed by method any2stringadd in scala.Predef.
    Shadowing
    This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
    To access this member you can use a type ascription:
    (contextStackSplitter: StringAdd).self
    Definition Classes
    StringAdd
  2. val self: Any

    Implicit information
    This member is added by an implicit conversion from ContextStackSplitter[In, StackElem, Context] to StringFormat performed by method any2stringfmt in scala.Predef.
    Shadowing
    This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
    To access this member you can use a type ascription:
    (contextStackSplitter: StringFormat).self
    Definition Classes
    StringFormat

Deprecated Value Members

  1. def through[P](joiner: (Context) ⇒ HandlerFactory[In, P]): Transformer[In, P]

    Definition Classes
    Splitter
    Annotations
    @deprecated
    Deprecated

    (Since version 0.6) Use .map instead

  2. def x: ContextStackSplitter[In, StackElem, Context]

    Implicit information
    This member is added by an implicit conversion from ContextStackSplitter[In, StackElem, Context] to ArrowAssoc[ContextStackSplitter[In, StackElem, Context]] performed by method any2ArrowAssoc in scala.Predef.
    Shadowing
    This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
    To access this member you can use a type ascription:
    (contextStackSplitter: ArrowAssoc[ContextStackSplitter[In, StackElem, Context]]).x
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.10.0) Use leftOfArrow instead

  3. def x: ContextStackSplitter[In, StackElem, Context]

    Implicit information
    This member is added by an implicit conversion from ContextStackSplitter[In, StackElem, Context] to Ensuring[ContextStackSplitter[In, StackElem, Context]] performed by method any2Ensuring in scala.Predef.
    Shadowing
    This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
    To access this member you can use a type ascription:
    (contextStackSplitter: Ensuring[ContextStackSplitter[In, StackElem, Context]]).x
    Definition Classes
    Ensuring
    Annotations
    @deprecated
    Deprecated

    (Since version 2.10.0) Use resultOfEnsuring instead

Inherited from Splitter[In, Context]

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from ContextStackSplitter[In, StackElem, Context] to StringAdd

Inherited by implicit conversion any2stringfmt from ContextStackSplitter[In, StackElem, Context] to StringFormat

Inherited by implicit conversion any2ArrowAssoc from ContextStackSplitter[In, StackElem, Context] to ArrowAssoc[ContextStackSplitter[In, StackElem, Context]]

Inherited by implicit conversion any2Ensuring from ContextStackSplitter[In, StackElem, Context] to Ensuring[ContextStackSplitter[In, StackElem, Context]]

Ungrouped