Trait

eu.cdevreeze.yaidom.utils

EditableClarkElem

Related Doc: package utils

Permalink

sealed trait EditableClarkElem extends Any

Trait defining the contract for "editable" elements that can be functionally updated in the resolved name, resolved attributes, or children.

The implementation is very direct for resolved elements. For simple elements, the implementation is less straightforward, because the scopes have to be edited as well. Strategies for using "fall-back" scopes can be passed to the element editor (for simple elements).

For simple editable elements, we must be able to prove the semantics of the offered operations in terms of the same operations on the corresponding resolved elements. Moreover, we must be able to reason about the scopes before and after performing an operation.

Linear Supertypes
Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. EditableClarkElem
  2. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract type E <: N with Aux[E]

    Permalink
  2. abstract type N

    Permalink

Abstract Value Members

  1. abstract def filteringChildren(p: (N) ⇒ Boolean): EditableClarkElem

    Permalink

    Functionally updates the children by filtering.

  2. abstract def filteringResolvedAttributes(p: (EName, String) ⇒ Boolean): EditableClarkElem

    Permalink

    Functionally updates the resolved attributes by filtering.

    Functionally updates the resolved attributes by filtering. For scoped elements, this filters the (QName-keyed) attributes.

  3. abstract def getClass(): Class[_]

    Permalink
    Definition Classes
    Any
  4. abstract def minusChild(index: Int): EditableClarkElem

    Permalink

    Functionally removes a child.

  5. abstract def minusResolvedAttribute(attrEName: EName): EditableClarkElem

    Permalink

    Functionally removes a resolved attribute.

  6. abstract def plusChild(index: Int, newChild: N): EditableClarkElem

    Permalink

    Functionally inserts a child.

    Functionally inserts a child. For scoped elements, it is ensured by the implementation that no prefixed namespace undeclarations are introduced. After all, they are illegal in XML 1.0.

  7. abstract def plusChild(newChild: N): EditableClarkElem

    Permalink

    Functionally adds a child.

    Functionally adds a child. For scoped elements, it is ensured by the implementation that no prefixed namespace undeclarations are introduced. After all, they are illegal in XML 1.0.

  8. abstract def plusChildOption(index: Int, newChildOption: Option[N]): EditableClarkElem

    Permalink

    Optionally functionally inserts a child.

    Optionally functionally inserts a child. For scoped elements, it is ensured by the implementation that no prefixed namespace undeclarations are introduced. After all, they are illegal in XML 1.0.

  9. abstract def plusChildOption(newChildOption: Option[N]): EditableClarkElem

    Permalink

    Optionally functionally adds a child.

    Optionally functionally adds a child. For scoped elements, it is ensured by the implementation that no prefixed namespace undeclarations are introduced. After all, they are illegal in XML 1.0.

  10. abstract def plusChildren(childSeq: IndexedSeq[N]): EditableClarkElem

    Permalink

    Functionally adds some children.

    Functionally adds some children. For scoped elements, it is ensured by the implementation that no prefixed namespace undeclarations are introduced. After all, they are illegal in XML 1.0.

  11. abstract def plusResolvedAttribute(attrEName: EName, attrValue: String): EditableClarkElem

    Permalink

    Functionally adds a resolved attribute.

    Functionally adds a resolved attribute. For scoped elements, this sets the attribute QName, and may affect the Scope.

  12. abstract def plusResolvedAttributeOption(attrEName: EName, attrValueOption: Option[String]): EditableClarkElem

    Permalink

    Optionally functionally adds a resolved attribute.

    Optionally functionally adds a resolved attribute. For scoped elements, this sets the attribute QName, if applicable, and may affect the Scope.

  13. abstract def toElem: E

    Permalink
  14. abstract def withChildSeqs(newChildSeqs: IndexedSeq[IndexedSeq[N]]): EditableClarkElem

    Permalink

    Shorthand for withChildren(newChildSeqs.flatten)

  15. abstract def withChildren(newChildren: IndexedSeq[N]): EditableClarkElem

    Permalink

    Functionally updates the children.

    Functionally updates the children. For scoped elements, it is ensured by the implementation that no prefixed namespace undeclarations are introduced. After all, they are illegal in XML 1.0.

  16. abstract def withResolvedAttributes(newResolvedAttributes: Iterable[(EName, String)]): EditableClarkElem

    Permalink

    Functionally updates the resolved attributes.

    Functionally updates the resolved attributes. For scoped elements, this sets the attribute QNames, and may affect the Scope.

  17. abstract def withResolvedName(newEName: EName): EditableClarkElem

    Permalink

    Functionally updates the resolved name.

    Functionally updates the resolved name. For scoped elements, this sets the QName, and may affect the Scope.

Concrete Value Members

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

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

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

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

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

    Permalink
    Definition Classes
    Any
  6. def hashCode(): Int

    Permalink
    Definition Classes
    Any
  7. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  8. def toString(): String

    Permalink
    Definition Classes
    Any

Inherited from Any

Ungrouped