The ("stable") element type itself.
The ("stable") element type itself. It is not restricted in the query API traits (only indirectly, through ThisElemApi).
Concrete element classes will restrict this type to that element class itself.
Upperbound on type ThisElem, which must be restricted to a sub-type of the query API trait in question.
Upperbound on type ThisElem, which must be restricted to a sub-type of the query API trait in question.
Concrete element classes will restrict this type to that element class itself.
The purely abstract query API traits (XXXApi) should only restrict this type to a sub-type of the query API trait, without putting any further restrictions on the type. This way these purely abstract traits are easy to use as "generic" element contracts abstracting over multiple backing element implementations (for example, Saxon tiny trees and native yaidom elements) without "infecting" the client code with generics.
To a lesser extent, this should also be true for the partially implemented query API traits (XXXLike).
Core method that returns all child elements, in the correct order.
This element itself.
This element itself.
Shorthand for filterChildElems(p).
Shorthand for filterElemsOrSelf(p).
Shorthand for findTopmostElemsOrSelf(p).
Downcasts this element to a sub-type of AnyElemApi.
Downcasts this element to a sub-type of AnyElemApi. It is needed in generic code written against "raw" query API traits.
A safe usage pattern is as follows: choose a query API trait to start with, such as BackingElemApi. Whenever needed while querying, downcast the result(s) to that same type. This should be safe while using query methods of that query API trait or one of the super-type traits.
Hence, the convenience of programming against "raw" query API traits is traded for some (relatively safe) casting inconvenience.
Returns the child elements obeying the given predicate.
Returns the child elements of the given sub-type obeying the given predicate.
Returns the child elements of the given sub-type obeying the given predicate.
Returns the descendant elements obeying the given predicate.
Returns the descendant elements of the given sub-type obeying the given predicate.
Returns the descendant elements of the given sub-type obeying the given predicate.
Returns the descendant-or-self elements obeying the given predicate.
Returns the descendant-or-self elements obeying the given predicate. This method could be defined as:
def filterElemsOrSelf(p: ThisElem => Boolean): immutable.IndexedSeq[ThisElem] = Vector(this).filter(p) ++ (this.findAllChildElems flatMap (_.filterElemsOrSelf(p)))
It can be proven that the result is equivalent to findAllElemsOrSelf filter p.
Returns the descendant-or-self elements of the given sub-type obeying the given predicate.
Returns the descendant-or-self elements of the given sub-type obeying the given predicate.
Returns all child elements of the given sub-type, in the correct order.
Returns all child elements of the given sub-type, in the correct order.
Returns all descendant elements (not including this element).
Returns all descendant elements of the given sub-type (not including this element).
Returns all descendant elements of the given sub-type (not including this element).
Returns this element followed by all descendant elements (that is, the descendant-or-self elements).
Returns all descendant-or-self elements of the given sub-type.
Returns all descendant-or-self elements of the given sub-type.
Returns the first found child element obeying the given predicate, if any, wrapped in an Option.
Returns the first found child element of the given sub-type obeying the given predicate, if any, wrapped in an Option.
Returns the first found child element of the given sub-type obeying the given predicate, if any, wrapped in an Option.
Returns the first found (topmost) descendant element obeying the given predicate, if any, wrapped in an Option.
Returns the first found (topmost) descendant element of the given sub-type obeying the given predicate, if any, wrapped in an Option.
Returns the first found (topmost) descendant element of the given sub-type obeying the given predicate, if any, wrapped in an Option.
Returns the first found (topmost) descendant-or-self element obeying the given predicate, if any, wrapped in an Option.
Returns the first found (topmost) descendant-or-self element of the given sub-type obeying the given predicate, if any, wrapped in an Option.
Returns the first found (topmost) descendant-or-self element of the given sub-type obeying the given predicate, if any, wrapped in an Option.
Returns the descendant elements obeying the given predicate that have no ancestor obeying the predicate.
Returns the descendant elements of the given sub-type obeying the given predicate that have no ancestor of the given sub-type obeying the predicate.
Returns the descendant elements of the given sub-type obeying the given predicate that have no ancestor of the given sub-type obeying the predicate.
Returns the descendant-or-self elements obeying the given predicate, such that no ancestor obeys the predicate.
Returns the descendant-or-self elements obeying the given predicate, such that no ancestor obeys the predicate. This method could be defined as:
def findTopmostElemsOrSelf(p: ThisElem => Boolean): immutable.IndexedSeq[ThisElem] = if (p(this)) Vector(this) else (this.findAllChildElems flatMap (_.findTopmostElemsOrSelf(p)))
Returns the descendant-or-self elements of the given sub-type obeying the given predicate, such that no ancestor of the given sub-type obeys the predicate.
Returns the descendant-or-self elements of the given sub-type obeying the given predicate, such that no ancestor of the given sub-type obeys the predicate.
Returns the single child element obeying the given predicate, and throws an exception otherwise.
Returns the single child element of the given sub-type obeying the given predicate, and throws an exception otherwise.
Returns the single child element of the given sub-type obeying the given predicate, and throws an exception otherwise.
Default implementation of SubtypeAwareElemApi.