eu.cdevreeze.yaidom

queryapi

package queryapi

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

Generic code abstracting over yaidom element implementations should either use trait ClarkElemApi or sub-trait ScopedElemApi, depending on the abstraction level.

Most API traits are orthogonal, but some API traits are useful combinations of other ones. Examples include the above-mentioned ClarkElemApi and ScopedElemApi traits.

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

Note: whereas the old query API used F-bounded polymorphism extensively, this new query API essentially just uses type member ThisElem, defined in a common super-trait. The old query API may be somewhat easier to develop (that is, convincing the compiler), but the new query API is easier to use as generic "backend" element query API. As an example, common "bridge" element query APIs come to mind, used within type-safe XML dialect DOM tree implementations. The reason this is easier with the new API is intuitively that far fewer type constraints leak to the query API client code.

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 AnyDocumentApi extends AnyRef

    Super-trait for all document types, promising an element type for the document element.

  2. trait AnyElemApi extends AnyRef

    Super-trait for all element query API traits, promising a self type.

  3. trait AnyElemNodeApi extends AnyElemApi

    Super-trait for all element query API traits that know about the node super-type.

  4. trait ClarkElemApi extends ElemApi with IsNavigableApi with HasENameApi with HasTextApi

    Shorthand for ElemApi with IsNavigableApi with HasENameApi with HasTextApi.

  5. trait ClarkElemLike extends ClarkElemApi with ElemLike with IsNavigable with HasEName with HasText

    Partial implementation of ClarkElemApi.

  6. trait DocumentApi extends AnyDocumentApi

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

  7. trait ElemApi extends AnyElemApi

    This is the foundation of the yaidom uniform query API.

  8. trait ElemLike extends ElemApi

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

  9. final class ElemWithPath[E <: Aux[E]] extends ElemLike

    Pair of an element and a Path.

  10. trait HasEName extends HasENameApi

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

  11. trait HasENameApi extends AnyRef

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

  12. trait HasParent extends HasParentApi

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

  13. trait HasParentApi extends AnyElemApi

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

  14. trait HasQNameApi extends AnyRef

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

  15. trait HasScopeApi extends AnyRef

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

  16. trait HasText extends HasTextApi

    Trait partly implementing the contract for elements as text containers.

  17. trait HasTextApi extends AnyRef

    Trait defining the contract for elements as text containers.

  18. trait IndexedClarkElemApi extends ClarkElemApi

    Abstract API for "indexed elements".

  19. trait IndexedScopedElemApi extends IndexedClarkElemApi with ScopedElemApi

    Abstract API for "indexed Scoped elements".

  20. trait IsNavigable extends IsNavigableApi

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

  21. trait IsNavigableApi extends AnyElemApi

    This trait offers Path-based navigation support.

  22. trait ScopedElemApi extends ClarkElemApi with HasQNameApi with HasScopeApi

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

  23. trait ScopedElemLike extends ScopedElemApi with ClarkElemLike

    Partial implementation of ScopedElemApi.

  24. trait SubtypeAwareElemApi extends ElemApi

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

  25. trait SubtypeAwareElemLike extends ElemLike with SubtypeAwareElemApi

    Default implementation of SubtypeAwareElemApi.

  26. trait TransformableElemApi extends AnyElemNodeApi

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

  27. trait TransformableElemLike extends TransformableElemApi

    API and implementation trait for transformable elements.

  28. trait UpdatableElemApi extends AnyElemNodeApi with IsNavigableApi

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

  29. trait UpdatableElemLike extends IsNavigable with UpdatableElemApi

    API and implementation trait for functionally updatable elements.

Value Members

  1. object ClarkElemApi

  2. object ClarkElemLike

  3. object DocumentApi

  4. object ElemApi

  5. object ElemLike

  6. object ElemWithPath

  7. object HasENameApi

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

  8. object HasParent

  9. object HasParentApi

  10. object IndexedClarkElemApi

  11. object IndexedScopedElemApi

  12. object IsNavigable

  13. object IsNavigableApi

  14. object Nodes

    Abstract node (marker) trait hierarchy.

  15. object ScopedElemApi

  16. object ScopedElemLike

  17. object SubtypeAwareElemApi

  18. object SubtypeAwareElemLike

  19. object TransformableElemApi

  20. object TransformableElemLike

  21. object UpdatableElemApi

  22. object UpdatableElemLike

  23. object XmlBaseSupport

    XML Base support, for elements implementing the ClarkElemApi query API.

Inherited from AnyRef

Inherited from Any

Ungrouped