Trait/Object

eu.cdevreeze.yaidom.queryapi

IsNavigable

Related Docs: object IsNavigable | package queryapi

Permalink

trait IsNavigable extends IsNavigableApi

API and implementation trait for elements that can be navigated using paths.

More precisely, this trait has only the following abstract methods: findChildElemByPathEntry and findAllChildElemsWithPathEntries.

The purely abstract API offered by this trait is eu.cdevreeze.yaidom.queryapi.IsNavigableApi. See the documentation of that trait for more information.

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. IsNavigable
  2. IsNavigableApi
  3. AnyElemApi
  4. AnyRef
  5. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. abstract type ThisElem <: ThisElemApi

    Permalink

    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.

    Definition Classes
    AnyElemApi
  2. abstract type ThisElemApi <: IsNavigable

    Permalink

    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).

    Definition Classes
    IsNavigable → IsNavigableApi → AnyElemApi

Abstract Value Members

  1. abstract def findAllChildElemsWithPathEntries: IndexedSeq[(ThisElem, Entry)]

    Permalink

    Returns all child elements paired with their path entries.

    Returns all child elements paired with their path entries.

    Definition Classes
    IsNavigable → IsNavigableApi
  2. abstract def findChildElemByPathEntry(entry: Entry): Option[ThisElem]

    Permalink

    Finds the child element with the given Path.Entry (where this element is the root), if any, wrapped in an Option.

    Finds the child element with the given Path.Entry (where this element is the root), if any, wrapped in an Option.

    Typically this method must be very efficient, in order for methods like findElemOrSelfByPath to be efficient.

    Definition Classes
    IsNavigable → IsNavigableApi
  3. abstract def thisElem: ThisElem

    Permalink

    This element itself.

    This element itself.

    Definition Classes
    AnyElemApi

Concrete Value Members

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def downcast[A <: AnyElemApi](implicit clsTag: ClassTag[A]): A

    Permalink

    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.

    Definition Classes
    AnyElemApi
  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def findElemOrSelfByPath(path: Path): Option[ThisElem]

    Permalink

    Finds the element with the given Path (where this element is the root), if any, wrapped in an Option.

    Finds the element with the given Path (where this element is the root), if any, wrapped in an Option.

    That is, returns:

    findReverseAncestryOrSelfByPath(path).map(_.last)

    Note that for each non-empty Path, we have:

    findElemOrSelfByPath(path) == findChildElemByPathEntry(path.firstEntry) flatMap (e => e.findElemOrSelfByPath(path.withoutFirstEntry))
    Definition Classes
    IsNavigable → IsNavigableApi
  11. final def findReverseAncestryOrSelfByPath(path: Path): Option[IndexedSeq[ThisElem]]

    Permalink

    Finds the reversed ancestry-or-self of the element with the given Path (where this element is the root), wrapped in an Option.

    Finds the reversed ancestry-or-self of the element with the given Path (where this element is the root), wrapped in an Option. None is returned if no element can be found at the given Path.

    Hence, the resulting element collection, if any, starts with this element and ends with the element at the given Path, relative to this element.

    This method comes in handy for (efficiently) computing base URIs, where the (reverse) ancestry-or-self is needed as input.

    Definition Classes
    IsNavigable → IsNavigableApi
  12. final def getChildElemByPathEntry(entry: Entry): ThisElem

    Permalink

    Returns (the equivalent of) findChildElemByPathEntry(entry).get

    Returns (the equivalent of) findChildElemByPathEntry(entry).get

    Definition Classes
    IsNavigable → IsNavigableApi
  13. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  14. final def getElemOrSelfByPath(path: Path): ThisElem

    Permalink

    Returns (the equivalent of) findElemOrSelfByPath(path).get

    Returns (the equivalent of) findElemOrSelfByPath(path).get

    Definition Classes
    IsNavigable → IsNavigableApi
  15. final def getReverseAncestryOrSelfByPath(path: Path): IndexedSeq[ThisElem]

    Permalink

    Returns (the equivalent of) findReverseAncestryOrSelfByPath(path).get

    Returns (the equivalent of) findReverseAncestryOrSelfByPath(path).get

    Definition Classes
    IsNavigable → IsNavigableApi
  16. def hashCode(): Int

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

    Permalink
    Definition Classes
    Any
  18. final def ne(arg0: AnyRef): Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
  21. final def synchronized[T0](arg0: ⇒ T0): T0

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from IsNavigableApi

Inherited from AnyElemApi

Inherited from AnyRef

Inherited from Any

Ungrouped