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).
Returns ancestorsOrSelf.drop(1)
Returns all ancestor elements or self, starting with this element, then the parent, if any, and ending with the root element.
Returns the first found ancestor element obeying the given predicate, if any, wrapped in an Option.
Returns the first found ancestor element obeying the given predicate, if any, wrapped in an Option. Searching starts with the parent of this element, if applicable, then the grandparent, if applicable, and so on.
Returns the first found ancestor-or-self element obeying the given predicate, if any, wrapped in an Option.
Returns the first found ancestor-or-self element obeying the given predicate, if any, wrapped in an Option. Searching starts with this element, then the parent, if applicable, and so on.
Returns the equivalent parentOption.get, throwing an exception if this is the root element
Returns the parent element, if any, wrapped in an Option
This element itself.
This element itself.
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.
API trait for elements that can be asked for the ancestor elements, if any.
This trait only knows about elements, not about documents as root element parents.