io.dylemma.spac

ContextMatcher

trait ContextMatcher[+A] extends AnyRef

An object responsible for inspecting a stack of StartElement events and determining if they correspond to some "context" value of type A.

ContextMatchers play a primary role in splitting an XML event stream into "substreams", i.e. each substream is defined as the series of consecutive events during which the XML tag stack matches a context.

ContextMatchers are intended to be transformed and combined with each other in order to build up more complex matching functionality. See also: SingleElementContextMatcher, which contains additional combination methods and some specialized transformation methods.

A

The type of the matched context.

Source
ContextMatcher.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ContextMatcher
  2. AnyRef
  3. 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

Abstract Value Members

  1. abstract def applyChained[B](stack: IndexedSeq[StartElement], offset: Int, avail: Int, next: ContextMatcher[B]): Option[(A, B)]

    The underlying context match method.

    The underlying context match method.

    Inspects the elements in the XML "tag stack", which is essentially a List[StartElement], but for performance reasons is represented as an array with an "offset" index and a number of available elements from that offset. If the elements correspond to a context value of A, the implementation must then pass the remaining elements of the stack to the next matcher, i.e. by calling next(stack, offset + numConsumed, avail - numConsumed).

    The next matcher is necessary in order to support non-greedy matchers, e.g. ContextMatcher.variableLength, a.k.a. **. Without a reference to the next matcher in the chain, matcher implementations would be forced to pick a fixed number of elements for matching, never knowing that the overall match could have succeeded if they had consumed some additional elements.

    B

    The next matcher's context type

    stack

    A reference to the complete XML "tag stack". Note that the responsibility of this method is limited to a *slice* of this value, as defined by offset and avail.

    offset

    The index of the first element to be considered by the matching logic. From this method's point of view, the "first" element in the stack is actually at stack(offset)

    avail

    The number of elements available in the stack starting from the offset.

    next

    The next matcher in the chain.

    returns

    If the match succeeded, and the next match succeded, an Option containing a tuple of both match results. If the match failed, or if the next match failed, None.

Concrete 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 ContextMatcher[A] to StringAdd performed by method any2stringadd in scala.Predef.
    Definition Classes
    StringAdd
  5. def ->[B](y: B): (ContextMatcher[A], B)

    Implicit information
    This member is added by an implicit conversion from ContextMatcher[A] to ArrowAssoc[ContextMatcher[A]] 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 \[A1 >: A, B, R](next: ContextMatcher[B])(implicit reduce: Aux[A1, B, R]): ContextMatcher[R]

    Create a new matcher by forming a chain with this matcher at the front, and the next matcher at the back.

    Create a new matcher by forming a chain with this matcher at the front, and the next matcher at the back. In other words, a matcher for a context within another context.

    A1

    To satisfy covariance on A

    B

    The next matcher's context type

    R

    The "reduced" content type, derived from the tuple type (A, B) based on the reduce rule.

    next

    A matcher which will be used to match the "inner" context

    reduce

    The TypeReduce rule to help omit Unit from the resulting context type

    returns

    A matcher which delegates to this matcher first, then the next matcher for the remaining stack.

  9. def apply(stack: IndexedSeq[StartElement], offset: Int, avail: Int): Option[A]

    The main context match method.

    The main context match method.

    Inspects the elements in the XML "tag stack", which is essentially a List[StartElement], but for performance reasons is represented as an array with an "offset" index and a number of available elements from that offset. If the elements correspond to a context value of A, the implementation must then pass the remaining elements of the stack to the next matcher, i.e. by calling next(stack, offset + numConsumed, avail - numConsumed).

    The difference between this method and applyChained is the lack of the next parameter; in this method, the current matcher is assumed to be the end of the chain.

    stack

    A reference to the complete XML "tag stack". Note that the responsibility of this method is limited to a *slice* of this value, as defined by offset and avail.

    offset

    The index of the first element to be considered by the matching logic. From this method's point of view, the "first" element in the stack is actually at stack(offset)

    avail

    The number of elements available in the stack starting from the offset.

    returns

    An option containing the successfully-matched context, or None.

  10. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  11. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. def ensuring(cond: (ContextMatcher[A]) ⇒ Boolean, msg: ⇒ Any): ContextMatcher[A]

    Implicit information
    This member is added by an implicit conversion from ContextMatcher[A] to Ensuring[ContextMatcher[A]] performed by method any2Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  13. def ensuring(cond: (ContextMatcher[A]) ⇒ Boolean): ContextMatcher[A]

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

    Implicit information
    This member is added by an implicit conversion from ContextMatcher[A] to Ensuring[ContextMatcher[A]] performed by method any2Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  15. def ensuring(cond: Boolean): ContextMatcher[A]

    Implicit information
    This member is added by an implicit conversion from ContextMatcher[A] to Ensuring[ContextMatcher[A]] performed by method any2Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  16. final def eq(arg0: AnyRef): Boolean

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

    Definition Classes
    AnyRef → Any
  18. def filter(p: (A) ⇒ Boolean): ContextMatcher[A]

    Create a new ContextMatcher which takes the match result of this matcher and passes it through the validation function f.

    Create a new ContextMatcher which takes the match result of this matcher and passes it through the validation function f. If f returns false, the match is unsuccessful.

    p

    The filter predicate, i.e. the validation function

    returns

    A new matcher with validated results

  19. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  20. def flatMap[B](f: (A) ⇒ Option[B]): ContextMatcher[B]

    Create a new ContextMatcher which takes the match result of this matcher and passes it through the combined transformation/validation function f.

    Create a new ContextMatcher which takes the match result of this matcher and passes it through the combined transformation/validation function f. If f returns None, the match is unsuccessful; if f returns a Some, the value inside is the result of the match.

    B

    The transformed context type

    f

    The transformation/validation function

    returns

    A new matcher with transformed and validated results

  21. def formatted(fmtstr: String): String

    Implicit information
    This member is added by an implicit conversion from ContextMatcher[A] to StringFormat performed by method any2stringfmt in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  22. final def getClass(): Class[_]

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

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

    Definition Classes
    Any
  25. def map[B](f: (A) ⇒ B): ContextMatcher[B]

    Create a new ContextMatcher which takes the match result of this matcher and passes it through the transformation function f.

    Create a new ContextMatcher which takes the match result of this matcher and passes it through the transformation function f.

    B

    The transformed context type

    f

    The transformation function

    returns

    A new matcher with transformed results

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

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

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

    Definition Classes
    AnyRef
  29. def or[A2 >: A](that: ContextMatcher[A2]): ContextMatcher[A2]

    Create a new ContextMatcher which will fall back to a second matcher in the event that this matcher fails to match a context.

    Create a new ContextMatcher which will fall back to a second matcher in the event that this matcher fails to match a context.

    A2

    The resulting context type (common supertype between this matcher and that)

    that

    The matcher which will be used as the fallback

    returns

    A matcher that falls back to another matcher in case of failure

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

    Definition Classes
    AnyRef
  31. def toString(): String

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  35. def |[A2 >: A](that: ContextMatcher[A2]): ContextMatcher[A2]

    Operator version of or

  36. def [B](y: B): (ContextMatcher[A], B)

    Implicit information
    This member is added by an implicit conversion from ContextMatcher[A] to ArrowAssoc[ContextMatcher[A]] 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 ContextMatcher[A] 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:
    (contextMatcher: StringAdd).self
    Definition Classes
    StringAdd
  2. val self: Any

    Implicit information
    This member is added by an implicit conversion from ContextMatcher[A] 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:
    (contextMatcher: StringFormat).self
    Definition Classes
    StringFormat

Deprecated Value Members

  1. def x: ContextMatcher[A]

    Implicit information
    This member is added by an implicit conversion from ContextMatcher[A] to ArrowAssoc[ContextMatcher[A]] 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:
    (contextMatcher: ArrowAssoc[ContextMatcher[A]]).x
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.10.0) Use leftOfArrow instead

  2. def x: ContextMatcher[A]

    Implicit information
    This member is added by an implicit conversion from ContextMatcher[A] to Ensuring[ContextMatcher[A]] 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:
    (contextMatcher: Ensuring[ContextMatcher[A]]).x
    Definition Classes
    Ensuring
    Annotations
    @deprecated
    Deprecated

    (Since version 2.10.0) Use resultOfEnsuring instead

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from ContextMatcher[A] to StringAdd

Inherited by implicit conversion any2stringfmt from ContextMatcher[A] to StringFormat

Inherited by implicit conversion any2ArrowAssoc from ContextMatcher[A] to ArrowAssoc[ContextMatcher[A]]

Inherited by implicit conversion any2Ensuring from ContextMatcher[A] to Ensuring[ContextMatcher[A]]

Ungrouped