eu.cdevreeze.yaidom

queryapi

package queryapi

This package contains the query API traits. It contains both the purely abstract API traits as well as the partial implementation traits.

This package depends only on the core package in yaidom, but many other packages do depend on this one.

Notes on migration from yaidom 1.0 to 1.1 and later

When migrating from yaidom 1.0 to 1.1 or later, there are many breaking changes in the query API traits to deal with. Not only was the query API moved to its own package, but also was the inheritance hierarchy (of 1.0) abandoned, and were some traits renamed. The most important renaming was from ParentElemApi to ElemApi, where the 1.0 ElemApi became ElemApi with HasENameApi (where the HasENameApi companion object contains an implicit class converting ENames to element predicates).

Also, trait PathAwareElemApi has been removed. Typically, "indexed elements" are more powerful.

The query API traits in 1.1 and later are more orthogonal (after all, the inheritance hierarchy is no longer there). We can even simulate the 1.0 query API traits by combining 1.1 traits, keeping renaming in mind:

The fact that the 1.0 query API traits can be simulated by (combinations of) 1.1 query API traits shows how orthogonality of the query API has improved in version 1.1.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. queryapi
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. trait DocumentApi[E <: ElemApi[E]] extends AnyRef

    Minimal API for Documents, having a type parameter for the element type.

  2. trait ElemApi[E <: ElemApi[E]] extends AnyRef

    This is the foundation of the yaidom uniform query API.

  3. trait ElemLike[E <: ElemLike[E]] extends ElemApi[E]

    API and implementation trait for elements as containers of elements, as element nodes in a node tree.

  4. trait HasEName extends HasENameApi

    Trait partly implementing the contract for elements that have a EName, as well as attributes with EName keys.

  5. trait HasENameApi extends AnyRef

    Trait defining the contract for elements that have a EName, as well as attributes with EName keys.

  6. trait HasParent[E <: HasParent[E]] extends HasParentApi[E]

    Implementation trait for elements that can be asked for the ancestor elements, if any.

  7. trait HasParentApi[E <: HasParentApi[E]] extends AnyRef

    API trait for elements that can be asked for the ancestor elements, if any.

  8. trait HasQNameApi extends AnyRef

    Trait defining the contract for elements that have a QName, as well as attributes with QName keys.

  9. trait HasScopeApi extends AnyRef

    Trait defining the contract for elements that have a stored Scope.

  10. trait HasText extends HasTextApi

    Trait partly implementing the contract for elements as text containers.

  11. trait HasTextApi extends AnyRef

    Trait defining the contract for elements as text containers.

  12. trait IsNavigable[E <: IsNavigable[E]] extends IsNavigableApi[E]

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

  13. trait IsNavigableApi[E <: IsNavigableApi[E]] extends AnyRef

    This trait offers Path-based navigation support.

  14. trait ScopedElemApi[E <: ScopedElemApi[E]] extends ElemApi[E] with HasENameApi with HasQNameApi with HasScopeApi with HasTextApi

    Shorthand for ElemApi[E] with HasENameApi with HasQNameApi with HasScopeApi with HasTextApi with some additional methods that use the scope for resolving QName-valued text and attribute values.

  15. trait ScopedElemLike[E <: ScopedElemLike[E]] extends ScopedElemApi[E] with ElemLike[E] with HasEName with HasText

    Partial implementation of ScopedElemApi.

  16. trait SubtypeAwareElemApi[A <: SubtypeAwareElemApi[A]] extends ElemApi[A]

    Extension to ElemApi that makes querying for sub-types of the element type easy.

  17. trait SubtypeAwareElemLike[A <: SubtypeAwareElemLike[A]] extends ElemLike[A] with SubtypeAwareElemApi[A]

    Default implementation of SubtypeAwareElemApi.

  18. trait TransformableElemApi[N, E <: N with TransformableElemApi[N, E]] extends AnyRef

    This is the element transformation part of the yaidom query and update API.

  19. trait TransformableElemLike[N, E <: N with TransformableElemLike[N, E]] extends TransformableElemApi[N, E]

    API and implementation trait for transformable elements.

  20. trait UpdatableElemApi[N, E <: N with UpdatableElemApi[N, E]] extends IsNavigableApi[E]

    This is the functional update part of the yaidom uniform query API.

  21. trait UpdatableElemLike[N, E <: N with UpdatableElemLike[N, E]] extends IsNavigable[E] with UpdatableElemApi[N, E]

    API and implementation trait for functionally updatable elements.

Value Members

  1. object ElemApi

  2. object HasENameApi

    This companion object offers some convenience factory methods for "element predicates", that can be used in yaidom queries.

Inherited from AnyRef

Inherited from Any

Ungrouped