trait ContextMatcher[Elem, +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
- Alphabetic
- By Inheritance
- ContextMatcher
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Abstract Value Members
- abstract def applyChained[B](stack: IndexedSeq[Elem], offset: Int, avail: Int, next: ContextMatcher[Elem, 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 ofA, the implementation must then pass the remaining elements of the stack to thenextmatcher, i.e. by callingnext(stack, offset + numConsumed, avail - numConsumed).The
nextmatcher is necessary in order to support non-greedy matchers, e.g.ContextMatcher.variableLength, a.k.a.**. Without a reference to thenextmatcher 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
nextmatcher'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
offsetandavail.- 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
stackstarting from theoffset.- next
The next matcher in the chain.
- returns
If the match succeeded, and the
nextmatch succeded, an Option containing a tuple of both match results. If the match failed, or if thenextmatch failed,None.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from ContextMatcher[Elem, A] toany2stringadd[ContextMatcher[Elem, A]] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (ContextMatcher[Elem, A], B)
- Implicit
- This member is added by an implicit conversion from ContextMatcher[Elem, A] toArrowAssoc[ContextMatcher[Elem, A]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def \[A1 >: A, B, R](next: ContextMatcher[Elem, B])(implicit reduce: Aux[A1, B, R]): ContextMatcher[Elem, R]
Create a new matcher by forming a chain with this matcher at the front, and the
nextmatcher at the back.Create a new matcher by forming a chain with this matcher at the front, and the
nextmatcher at the back. In other words, a matcher for a context within another context.- A1
To satisfy covariance on A
- B
The
nextmatcher's context type- R
The "reduced" content type, derived from the tuple type
(A, B)based on thereducerule.- next
A matcher which will be used to match the "inner" context
- reduce
The
TypeReducerule to help omitUnitfrom the resulting context type- returns
A matcher which delegates to
thismatcher first, then thenextmatcher for the remaining stack.
- def apply(stack: IndexedSeq[Elem], 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 ofA, the implementation must then pass the remaining elements of the stack to thenextmatcher, i.e. by callingnext(stack, offset + numConsumed, avail - numConsumed).The difference between this method and
applyChainedis the lack of thenextparameter; 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
offsetandavail.- 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
stackstarting from theoffset.- returns
An option containing the successfully-matched context, or
None.
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def ensuring(cond: (ContextMatcher[Elem, A]) => Boolean, msg: => Any): ContextMatcher[Elem, A]
- Implicit
- This member is added by an implicit conversion from ContextMatcher[Elem, A] toEnsuring[ContextMatcher[Elem, A]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (ContextMatcher[Elem, A]) => Boolean): ContextMatcher[Elem, A]
- Implicit
- This member is added by an implicit conversion from ContextMatcher[Elem, A] toEnsuring[ContextMatcher[Elem, A]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): ContextMatcher[Elem, A]
- Implicit
- This member is added by an implicit conversion from ContextMatcher[Elem, A] toEnsuring[ContextMatcher[Elem, A]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): ContextMatcher[Elem, A]
- Implicit
- This member is added by an implicit conversion from ContextMatcher[Elem, A] toEnsuring[ContextMatcher[Elem, A]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def filter(p: (A) => Boolean): ContextMatcher[Elem, 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. Iffreturnsfalse, the match is unsuccessful.- p
The filter predicate, i.e. the validation function
- returns
A new matcher with validated results
- def finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def flatMap[B](f: (A) => Option[B]): ContextMatcher[Elem, 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. IffreturnsNone, the match is unsuccessful; iffreturns aSome, 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
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from ContextMatcher[Elem, A] toStringFormat[ContextMatcher[Elem, A]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def map[B](f: (A) => B): ContextMatcher[Elem, 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
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def or[A2 >: A](that: ContextMatcher[Elem, A2]): ContextMatcher[Elem, 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
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def |[A2 >: A](that: ContextMatcher[Elem, A2]): ContextMatcher[Elem, A2]
Operator version of
or
Deprecated Value Members
- def →[B](y: B): (ContextMatcher[Elem, A], B)
- Implicit
- This member is added by an implicit conversion from ContextMatcher[Elem, A] toArrowAssoc[ContextMatcher[Elem, A]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.