Shorthand for filterChildElems(p)
.
Shorthand for filterChildElems(p)
. Use this shorthand only if the predicate is a short expression.
Shorthand for filterElemsOrSelf(p)
.
Shorthand for filterElemsOrSelf(p)
. Use this shorthand only if the predicate is a short expression.
Shorthand for findTopmostElemsOrSelf(p)
.
Shorthand for findTopmostElemsOrSelf(p)
. Use this shorthand only if the predicate is a short expression.
Returns true if all namespace declarations, if any, are only at top level (so at the root of this tree).
Returns true if all namespace declarations, if any, are only at top level (so at the root of this tree).
It is good practice for a complete ElemBuilder
tree to have only top-level namespace declarations, if any.
Creates an Elem
from this element builder, using the passed parent scope.
Creates an Elem
from this element builder, using the passed parent scope.
The Scope
of the created (root) element is the passed parent scope, altered by the namespace declarations
in this element builder, if any.
Returns build(Scope.Empty)
Returns build(Scope.Empty)
Returns true if parentScope suffices to build an Elem
, that is, if build(parentScope)
returns an Elem
instead of
throwing an exception.
Returns true if parentScope suffices to build an Elem
, that is, if build(parentScope)
returns an Elem
instead of
throwing an exception.
A complete ElemBuilder
tree should obey property canBuild(Scope.Empty)
.
Core method that returns the child elements obeying the given predicate.
Core method that returns the child elements obeying the given predicate. This method could be defined as:
def filterChildElems(p: E => Boolean): immutable.IndexedSeq[E] = this.findAllChildElems.filter(p)
Returns the descendant elements obeying the given predicate.
Returns the descendant elements obeying the given predicate. This method could be defined as:
this.findAllChildElems flatMap (_.filterElemsOrSelf(p))
Core method that returns the descendant-or-self elements obeying the given predicate.
Core method that returns the descendant-or-self elements obeying the given predicate. This method could be defined as:
def filterElemsOrSelf(p: E => Boolean): immutable.IndexedSeq[E] = Vector(this).filter(p) ++ (this.findAllChildElems flatMap (_.filterElemsOrSelf(p)))
It can be proven that the result is equivalent to findAllElemsOrSelf filter p
.
Returns the element children as ElemBuilder instances
Returns the element children as ElemBuilder instances
Returns all descendant elements (not including this element).
Returns all descendant elements (not including this element). This method could be defined as filterElems { e => true }
.
Equivalent to findAllElemsOrSelf.drop(1)
.
Returns this element followed by all descendant elements (that is, the descendant-or-self elements).
Returns this element followed by all descendant elements (that is, the descendant-or-self elements).
This method could be defined as filterElemsOrSelf { e => true }
.
Returns the first found child element obeying the given predicate, if any, wrapped in an Option
.
Returns the first found child element obeying the given predicate, if any, wrapped in an Option
.
This method could be defined as filterChildElems(p).headOption
.
Returns the first found (topmost) descendant element obeying the given predicate, if any, wrapped in an Option
.
Returns the first found (topmost) descendant element obeying the given predicate, if any, wrapped in an Option
.
This method could be defined as filterElems(p).headOption
.
Returns the first found (topmost) descendant-or-self element obeying the given predicate, if any, wrapped in an Option
.
Returns the first found (topmost) descendant-or-self element obeying the given predicate, if any, wrapped in an Option
.
This method could be defined as filterElemsOrSelf(p).headOption
.
Returns the descendant elements obeying the given predicate that have no ancestor obeying the predicate.
Returns the descendant elements obeying the given predicate that have no ancestor obeying the predicate. This method could be defined as:
this.findAllChildElems flatMap (_.findTopmostElemsOrSelf(p))
Core method that returns the descendant-or-self elements obeying the given predicate, such that no ancestor obeys the predicate.
Core method that returns the descendant-or-self elements obeying the given predicate, such that no ancestor obeys the predicate. This method could be defined as:
def findTopmostElemsOrSelf(p: E => Boolean): immutable.IndexedSeq[E] = if (p(this)) Vector(this) else (this.findAllChildElems flatMap (_.findTopmostElemsOrSelf(p)))
Returns the single child element obeying the given predicate, and throws an exception otherwise.
Returns the single child element obeying the given predicate, and throws an exception otherwise.
This method could be defined as findChildElem(p).get
.
Returns the accumulated used but non-declared prefixes throughout the tree, given the passed parentScope.
Returns the accumulated used but non-declared prefixes throughout the tree, given the passed parentScope. A prefix is considered used in an element if it is used in element name and/or attribute names.
Returns withChildren(self.children :+ newChild)
.
Returns toTreeRepr
.
Returns toTreeRepr
.
Returns the tree representation.
Returns the tree representation. See the corresponding method in Node.
Creates a copy, but with (only) the children passed as parameter newChildren
Builder for elements. See NodeBuilder.