trait SingleItemContextMatcher[Item, +A] extends ContextMatcher[Item, A]
Specialization of ContextMatcher which only checks the first element in the stack for matching operations. Transformation operations on single-element matchers will yield other single-element matchers (rather than the base ContextMatcher type). Combination operations involving other single-element matchers will also yield single-element matchers. SingleElementContextMatchers form the building blocks of more complex matchers.
- A
The type of the matched context.
- Alphabetic
- By Inheritance
- SingleItemContextMatcher
- ContextMatcher
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def applyElem(elem: Item): Option[A]
The matching operation for single-element matchers.
The matching operation for single-element matchers.
- elem
The first element in the XML tag stack
- returns
Some(context)
for a successful match,None
otherwise
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def &[A1 >: A, B, R](that: SingleItemContextMatcher[Item, B])(implicit reduce: Aux[A1, B, R]): SingleItemContextMatcher[Item, R]
Operator version of
and
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from SingleItemContextMatcher[Item, A] toany2stringadd[SingleItemContextMatcher[Item, A]] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (SingleItemContextMatcher[Item, A], B)
- Implicit
- This member is added by an implicit conversion from SingleItemContextMatcher[Item, A] toArrowAssoc[SingleItemContextMatcher[Item, 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[Item, B])(implicit reduce: Aux[A1, B, R]): ContextMatcher[Item, 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 thereduce
rule.- next
A matcher which will be used to match the "inner" context
- reduce
The
TypeReduce
rule to help omitUnit
from the resulting context type- returns
A matcher which delegates to
this
matcher first, then thenext
matcher for the remaining stack.
- Definition Classes
- ContextMatcher
- def and[A1 >: A, B, R](that: SingleItemContextMatcher[Item, B])(implicit reduce: Aux[A1, B, R]): SingleItemContextMatcher[Item, R]
Creates a new single-element matcher which combines the results of both
this
matcher andthat
matcher.Creates a new single-element matcher which combines the results of both
this
matcher andthat
matcher. Boththis
andthat
will operate on the first element of the stack (as opposed to Chained matchers).- A1
To satisfy covariance on A
- B
The other matcher's result type
- R
The combined result type
- that
The matcher to combine
- reduce
The
TypeReduce
rule for combining the two match results- returns
A new matcher which combines the results of
this
andthat
- def apply(stack: IndexedSeq[Item], 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 thenext
matcher, i.e. by callingnext(stack, offset + numConsumed, avail - numConsumed)
.The difference between this method and
applyChained
is the lack of thenext
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
andavail
.- 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 theoffset
.- returns
An option containing the successfully-matched context, or
None
.
- Definition Classes
- ContextMatcher
- def applyChained[B](stack: IndexedSeq[Item], offset: Int, avail: Int, next: ContextMatcher[Item, 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 thenext
matcher, i.e. by callingnext(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 thenext
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
andavail
.- 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 theoffset
.- 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 thenext
match failed,None
.
- Definition Classes
- SingleItemContextMatcher → ContextMatcher
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def ensuring(cond: (SingleItemContextMatcher[Item, A]) => Boolean, msg: => Any): SingleItemContextMatcher[Item, A]
- Implicit
- This member is added by an implicit conversion from SingleItemContextMatcher[Item, A] toEnsuring[SingleItemContextMatcher[Item, A]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (SingleItemContextMatcher[Item, A]) => Boolean): SingleItemContextMatcher[Item, A]
- Implicit
- This member is added by an implicit conversion from SingleItemContextMatcher[Item, A] toEnsuring[SingleItemContextMatcher[Item, A]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): SingleItemContextMatcher[Item, A]
- Implicit
- This member is added by an implicit conversion from SingleItemContextMatcher[Item, A] toEnsuring[SingleItemContextMatcher[Item, A]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): SingleItemContextMatcher[Item, A]
- Implicit
- This member is added by an implicit conversion from SingleItemContextMatcher[Item, A] toEnsuring[SingleItemContextMatcher[Item, 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): SingleItemContextMatcher[Item, 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
. Iff
returnsfalse
, the match is unsuccessful.- p
The filter predicate, i.e. the validation function
- returns
A new matcher with validated results
- Definition Classes
- SingleItemContextMatcher → ContextMatcher
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def flatMap[B](f: (A) => Option[B]): SingleItemContextMatcher[Item, 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
. Iff
returnsNone
, the match is unsuccessful; iff
returns 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
- Definition Classes
- SingleItemContextMatcher → ContextMatcher
- 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): SingleItemContextMatcher[Item, 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
- Definition Classes
- SingleItemContextMatcher → ContextMatcher
- 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: SingleItemContextMatcher[Item, A2]): SingleItemContextMatcher[Item, A2]
Specialization of the default
or
method, specifically for SingleElementContextMatchers - def or[A2 >: A](that: ContextMatcher[Item, A2]): ContextMatcher[Item, 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
- Definition Classes
- ContextMatcher
- 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: SingleItemContextMatcher[Item, A2]): SingleItemContextMatcher[Item, A2]
Operator version of
or
, specialized for SingleElementContextMatchers - def |[A2 >: A](that: ContextMatcher[Item, A2]): ContextMatcher[Item, A2]
Operator version of
or
Operator version of
or
- Definition Classes
- ContextMatcher
Deprecated Value Members
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from SingleItemContextMatcher[Item, A] toStringFormat[SingleItemContextMatcher[Item, A]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (SingleItemContextMatcher[Item, A], B)
- Implicit
- This member is added by an implicit conversion from SingleItemContextMatcher[Item, A] toArrowAssoc[SingleItemContextMatcher[Item, 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.