Class

io.dylemma.spac.SingleElementContextMatcher

And

Related Doc: package SingleElementContextMatcher

Permalink

case class And[A, B, R](left: SingleElementContextMatcher[A], right: SingleElementContextMatcher[B])(implicit reduce: Aux[A, B, R]) extends SingleElementContextMatcher[R] with Product with Serializable

Combines two SingleElementContextMatchers such that the resulting matcher will succeed if both the right and left matchers succeed, and returns the results of both matchers (as a tuple, but reduced via the TypeReduce rules)

A

The left matcher's context type

B

The right matcher's context type

R

The type reduction of (A, B)

left

The left matcher, with a context type of A

right

The right matcher, with a context type of B

reduce

The TypeReduce rule

Source
ContextMatcher.scala
Linear Supertypes
Serializable, Serializable, Product, Equals, SingleElementContextMatcher[R], ContextMatcher[R], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. And
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. SingleElementContextMatcher
  7. ContextMatcher
  8. AnyRef
  9. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new And(left: SingleElementContextMatcher[A], right: SingleElementContextMatcher[B])(implicit reduce: Aux[A, B, R])

    Permalink

    left

    The left matcher, with a context type of A

    right

    The right matcher, with a context type of B

    reduce

    The TypeReduce rule

Value Members

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

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. def &[A1 >: R, B, R](that: SingleElementContextMatcher[B])(implicit reduce: Aux[A1, B, R]): SingleElementContextMatcher[R]

    Permalink

    Operator version of and

    Operator version of and

    Definition Classes
    SingleElementContextMatcher
  4. def +(other: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from And[A, B, R] to any2stringadd[And[A, B, R]] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  5. def ->[B](y: B): (And[A, B, R], B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from And[A, B, R] to ArrowAssoc[And[A, B, R]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  6. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  7. def \[A1 >: R, B, R](next: ContextMatcher[B])(implicit reduce: Aux[A1, B, R]): ContextMatcher[R]

    Permalink

    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.

    Definition Classes
    ContextMatcher
  8. def and[A1 >: R, B, R](that: SingleElementContextMatcher[B])(implicit reduce: Aux[A1, B, R]): SingleElementContextMatcher[R]

    Permalink

    Creates a new single-element matcher which combines the results of both this matcher and that matcher.

    Creates a new single-element matcher which combines the results of both this matcher and that matcher. Both this and that 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 and that

    Definition Classes
    SingleElementContextMatcher
  9. def apply(stack: IndexedSeq[StartElement], offset: Int, avail: Int): Option[R]

    Permalink

    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.

    Definition Classes
    ContextMatcher
  10. def applyChained[B](stack: IndexedSeq[StartElement], offset: Int, avail: Int, next: ContextMatcher[B]): Option[(R, B)]

    Permalink

    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.

    Definition Classes
    SingleElementContextMatcherContextMatcher
  11. def applyElem(elem: StartElement): Option[R]

    Permalink

    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

    Definition Classes
    AndSingleElementContextMatcher
  12. final def asInstanceOf[T0]: T0

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  14. def ensuring(cond: (And[A, B, R]) ⇒ Boolean, msg: ⇒ Any): And[A, B, R]

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

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

    Permalink
    Implicit information
    This member is added by an implicit conversion from And[A, B, R] to Ensuring[And[A, B, R]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  17. def ensuring(cond: Boolean): And[A, B, R]

    Permalink
    Implicit information
    This member is added by an implicit conversion from And[A, B, R] to Ensuring[And[A, B, R]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  18. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  19. def filter(p: (R) ⇒ Boolean): SingleElementContextMatcher[R]

    Permalink

    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

    Definition Classes
    SingleElementContextMatcherContextMatcher
  20. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  21. def flatMap[B](f: (R) ⇒ Option[B]): SingleElementContextMatcher[B]

    Permalink

    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

    Definition Classes
    SingleElementContextMatcherContextMatcher
  22. def formatted(fmtstr: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from And[A, B, R] to StringFormat[And[A, B, R]] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  23. final def getClass(): Class[_]

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

    Permalink
    Definition Classes
    Any
  25. val left: SingleElementContextMatcher[A]

    Permalink

    The left matcher, with a context type of A

  26. def map[B](f: (R) ⇒ B): SingleElementContextMatcher[B]

    Permalink

    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
    SingleElementContextMatcherContextMatcher
  27. final def ne(arg0: AnyRef): Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
  30. def or[A2 >: R](that: SingleElementContextMatcher[A2]): SingleElementContextMatcher[A2]

    Permalink

    Specialization of the default or method, specifically for SingleElementContextMatchers

    Specialization of the default or method, specifically for SingleElementContextMatchers

    Definition Classes
    SingleElementContextMatcher
  31. def or[A2 >: R](that: ContextMatcher[A2]): ContextMatcher[A2]

    Permalink

    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
  32. val right: SingleElementContextMatcher[B]

    Permalink

    The right matcher, with a context type of B

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

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. def |[A2 >: R](that: SingleElementContextMatcher[A2]): SingleElementContextMatcher[A2]

    Permalink

    Operator version of or, specialized for SingleElementContextMatchers

    Operator version of or, specialized for SingleElementContextMatchers

    Definition Classes
    SingleElementContextMatcher
  39. def |[A2 >: R](that: ContextMatcher[A2]): ContextMatcher[A2]

    Permalink

    Operator version of or

    Operator version of or

    Definition Classes
    ContextMatcher
  40. def [B](y: B): (And[A, B, R], B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from And[A, B, R] to ArrowAssoc[And[A, B, R]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from SingleElementContextMatcher[R]

Inherited from ContextMatcher[R]

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from And[A, B, R] to any2stringadd[And[A, B, R]]

Inherited by implicit conversion StringFormat from And[A, B, R] to StringFormat[And[A, B, R]]

Inherited by implicit conversion Ensuring from And[A, B, R] to Ensuring[And[A, B, R]]

Inherited by implicit conversion ArrowAssoc from And[A, B, R] to ArrowAssoc[And[A, B, R]]

Ungrouped