Trait/Object

com.codecommit.antixml

Zipper

Related Docs: object Zipper | package antixml

Permalink

trait Zipper[+A <: Node] extends Group[A] with IndexedSeqLike[A, Zipper[A]]

Provides an unselect operation which copies this Group's nodes back to the XML tree from which it was derived.See the Anti-XML Overview for a high-level description of this functionality.

The Zipper trait augments a com.codecommit.antixml.Group with additional immutable state used to support the unselect method. This state is known as the "zipper context" and is defined by:

Loosely speaking, the unselect method produces an updated version of the parent by replacing its holes with the nodes from the Zipper, as determined by the replacement map. A formal definition of unselect can be found below.

Certain "modify" operations on a Zipper will propagate the zipper context to the result. The new Zipper's unselect method can then be viewed as applying these modifications back to the parent tree. Currently, the following methods support this propagation of the zipper context:

These operations all provide a natural identification of indices in the new Zipper with the indices they were derived from in the original. This identification is used to lift the replacement map to the new Zipper. The parent and holes of the new Zipper are always the same as those of the original.

Of course, propagation is only possible if the result can legally be a Zipper. Replacing a Node with a String, for example, will result in an undecorated IndexedSeq because the result violates Zipper's type bounds.

Node Multiplication and Elision

A Zipper's replacement map need neither be injective nor surjective. Injectivity can fail due to the action of flatMap, which replaces a node with a sequence of nodes, all of which are associated with the original node's hole. In such cases, unselect will replace the hole with the entire sequence of nodes mapping to it. Surjectivity can fail due to any operation that "removes" items from the Zipper. If a hole is not associated with any Zipper nodes, then unselect will remove that position from the resulting tree.

Conflicting Holes

For a given Zipper, a hole, H, is said to be conflicted if the Zipper contains another hole, Hc , contained in the subtree at H. In this case, the Zipper is said to be conflicted at H. A Zipper that does not contain conflicted holes is said to be conflict free. Conflicted holes arise when a selection operator yields both a node and one or more of its descendants. They are of concern because there is no canonical way to specify the behavior of unselect at a conflicted hole. Instead, a com.codecommit.antixml.ZipperMergeStrategy, implicitly provided to unselect, is used to resolve the conflict.

A default ZipperMergeStrategy has been provided that should suffice for the most common use cases involving conflicted holes. In particular, if modifications to a conflicted element are limited to its top-level properties (name, attributes, etc.), then the default strategy will apply those changes while preserving any modifications made to those descendant nodes also present in the Zipper. However, if the children property of a conflicted element is directly modified, then the default strategy's behavior is formally unspecified. Currently it uses a heuristic algorithm to resolve conflicts, but its details may change in a future release.

Of the com.codecommit.antixml.Selectable operators, only \\ is capable of producing conflicts. The select, \, and \\! operators always produce conflict-free Zippers.

Unselection Algorithm

Let G be a group, and Z be a zipper with G as its parent. For each location, L, in G (top-level or otherwise), we make the following definitions:

Let T be the sequence of top-level locations in G. Then Z.unselect is defined as T.flatMap(pullback).

Self Type
Zipper[A]
Source
Zipper.scala
Linear Supertypes
Group[A], Selectable[A], IndexedSeq[A], IndexedSeq[A], IndexedSeqLike[A, Zipper[A]], Seq[A], Seq[A], SeqLike[A, Zipper[A]], GenSeq[A], GenSeqLike[A, Zipper[A]], PartialFunction[Int, A], (Int) ⇒ A, Iterable[A], Iterable[A], IterableLike[A, Zipper[A]], Equals, GenIterable[A], GenIterableLike[A, Zipper[A]], Traversable[A], Immutable, Traversable[A], GenTraversable[A], GenericTraversableTemplate[A, IndexedSeq], TraversableLike[A, Zipper[A]], GenTraversableLike[A, Zipper[A]], Parallelizable[A, ParSeq[A]], TraversableOnce[A], GenTraversableOnce[A], FilterMonadic[A, Zipper[A]], HasNewBuilder[A, Zipper[A]], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Zipper
  2. Group
  3. Selectable
  4. IndexedSeq
  5. IndexedSeq
  6. IndexedSeqLike
  7. Seq
  8. Seq
  9. SeqLike
  10. GenSeq
  11. GenSeqLike
  12. PartialFunction
  13. Function1
  14. Iterable
  15. Iterable
  16. IterableLike
  17. Equals
  18. GenIterable
  19. GenIterableLike
  20. Traversable
  21. Immutable
  22. Traversable
  23. GenTraversable
  24. GenericTraversableTemplate
  25. TraversableLike
  26. GenTraversableLike
  27. Parallelizable
  28. TraversableOnce
  29. GenTraversableOnce
  30. FilterMonadic
  31. HasNewBuilder
  32. AnyRef
  33. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. class Elements extends AbstractIterator[A] with BufferedIterator[A] with Serializable

    Permalink
    Attributes
    protected
    Definition Classes
    IndexedSeqLike
    Annotations
    @SerialVersionUID()
  2. type Self = Zipper[A]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    TraversableLike
  3. class WithFilter extends FilterMonadic[A, Zipper[A]]

    Permalink

Value Members

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  3. def ++[B >: A <: Node](that: Group[B]): Group[B]

    Permalink

    Efficient (and slightly tricky) overload of ++ on parameters which are specifically of type com.codecommit.antixml.Group[_].

    Efficient (and slightly tricky) overload of ++ on parameters which are specifically of type com.codecommit.antixml.Group[_].

    Definition Classes
    Group
  4. def ++[B >: A, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike
  5. def ++:[B >: A, That](that: Traversable[B])(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    TraversableLike
  6. def ++:[B >: A, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    TraversableLike
  7. def +:[B >: A <: Node](node: B): Group[B]

    Permalink

    Efficient (and slightly tricky) overload of +: on parameters which are specifically of type com.codecommit.antixml.Node.

    Efficient (and slightly tricky) overload of +: on parameters which are specifically of type com.codecommit.antixml.Node.

    Definition Classes
    Group
  8. def +:[B >: A, That](elem: B)(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  9. def /:[B](z: B)(op: (B, A) ⇒ B): B

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  10. def :+[B >: A <: Node](node: B): Group[B]

    Permalink

    Efficient (and slightly tricky) overload of :+ on parameters which are specifically of type com.codecommit.antixml.Node.

    Efficient (and slightly tricky) overload of :+ on parameters which are specifically of type com.codecommit.antixml.Node.

    Definition Classes
    Group
  11. def :+[B >: A, That](elem: B)(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  12. def :\[B](z: B)(op: (A, B) ⇒ B): B

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  13. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  14. def \(selector: Selector[Node]): Zipper[Node]

    Permalink

    [use case]

    [use case]
    Definition Classes
    Selectable
    Full Signature

    def \[B, That](selector: Selector[B])(implicit cbfwz: CanBuildFromWithZipper[Group[A], B, That]): That

  15. def \\(selector: Selector[Node]): Zipper[Node]

    Permalink

    [use case]

    [use case]
    Definition Classes
    Selectable
    Full Signature

    def \\[B, That](selector: Selector[B])(implicit cbfwz: CanBuildFromWithZipper[Group[A], B, That]): That

  16. def \\!(selector: Selector[Node]): Zipper[Node]

    Permalink

    [use case]

    [use case]
    Definition Classes
    Selectable
    Full Signature

    def \\![B, That](selector: Selector[B])(implicit cbfwz: CanBuildFromWithZipper[Group[A], B, That]): That

  17. def addString(b: StringBuilder): StringBuilder

    Permalink
    Definition Classes
    TraversableOnce
  18. def addString(b: StringBuilder, sep: String): StringBuilder

    Permalink
    Definition Classes
    TraversableOnce
  19. def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder

    Permalink
    Definition Classes
    TraversableOnce
  20. def aggregate[B](z: ⇒ B)(seqop: (B, A) ⇒ B, combop: (B, B) ⇒ B): B

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  21. def andThen[C](k: (A) ⇒ C): PartialFunction[Int, C]

    Permalink
    Definition Classes
    PartialFunction → Function1
  22. def apply(i: Int): A

    Permalink
    Definition Classes
    Group → SeqLike → GenSeqLike → Function1
  23. def applyOrElse[A1 <: Int, B1 >: A](x: A1, default: (A1) ⇒ B1): B1

    Permalink
    Definition Classes
    PartialFunction
  24. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  25. def canEqual(that: Any): Boolean

    Permalink
    Definition Classes
    IterableLike → Equals
  26. def canonicalize: Group[A]

    Permalink

    Merges adjacent com.codecommit.antixml.Text as well as adjacent com.codecommit.antixml.CDATA nodes to produce a Group which represents an identical XML fragment but with a minimized structure.

    Merges adjacent com.codecommit.antixml.Text as well as adjacent com.codecommit.antixml.CDATA nodes to produce a Group which represents an identical XML fragment but with a minimized structure. Slightly more formally, for any XML fragment with n characters of textual data, there are 2n possible ways of representing that fragment as a Group. All of these representations are semantically distinct (i.e. structurally different in memory) but logically equivalent in that they will all generate the same XML fragment if serialized. Of these 2n distinct representations, there will be exactly one representation which is minimal, in that the smallest possible number of com.codecommit.antixml.Text and com.codecommit.antixml.CDATA nodes are used to represent the textual data. This form may be considered "canonical". This method converts an arbitrary Group into its canonical form, a logically equivalent Group which represents the same XML fragment in its structurally minimized form.

    This method is perhaps best explained by an example:

    val xml = Group(Text("Daniel "), Text("Spiewak"))
    xml.canonicalize    // => Group(Text("Daniel Spiewak"))

    The Group resulting from the canonicalize invocation will produce exactly the same result as would xml were we to invoke the toString method on each of them. However, the canonicalized result has only one text node for the entire character block, while xml (the original Group) has two.

    This is actually a very common gotcha in scala.xml. The issue comes up most frequently in the area of equality. As you can see in the example above, xml clearly will not be equivalent (according to the equals method) to xml.canonicalize. However, it is very natural to assume that these two structures are in fact equal due to their logical equivalence in that they represent the same textual XML fragment. Oftentimes, people will get around this issue in scala.xml by converting all NodeSeq(s) into strings prior to comparison. In Anti-XML, all that is necessary to handle potential semantic divergence in cases of logical equality is to simply invoke the canonicalize method on each of the two equality operands.

    Definition Classes
    Group
  27. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. def collect[B, That](pf: PartialFunction[A, B])(implicit cbf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    Zipper → TraversableLike → GenTraversableLike
  29. def collectFirst[B](pf: PartialFunction[A, B]): Option[B]

    Permalink
    Definition Classes
    TraversableOnce
  30. def combinations(n: Int): Iterator[Zipper[A]]

    Permalink
    Definition Classes
    SeqLike
  31. def companion: GenericCompanion[IndexedSeq]

    Permalink
    Definition Classes
    IndexedSeq → IndexedSeq → Seq → Seq → GenSeq → Iterable → Iterable → GenIterable → Traversable → Traversable → GenTraversable → GenericTraversableTemplate
  32. def compose[A](g: (A) ⇒ Int): (A) ⇒ A

    Permalink
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  33. def contains[A1 >: A](elem: A1): Boolean

    Permalink
    Definition Classes
    SeqLike
  34. def containsSlice[B](that: GenSeq[B]): Boolean

    Permalink
    Definition Classes
    SeqLike
  35. def copyToArray[B >: A](xs: Array[B], start: Int, len: Int): Unit

    Permalink
    Definition Classes
    IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  36. def copyToArray[B >: A](xs: Array[B]): Unit

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  37. def copyToArray[B >: A](xs: Array[B], start: Int): Unit

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  38. def copyToBuffer[B >: A](dest: Buffer[B]): Unit

    Permalink
    Definition Classes
    TraversableOnce
  39. def corresponds[B](that: GenSeq[B])(p: (A, B) ⇒ Boolean): Boolean

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  40. def count(p: (A) ⇒ Boolean): Int

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  41. def diff[B >: A](that: GenSeq[B]): Zipper[A]

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  42. def distinct: Zipper[A]

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  43. def drop(n: Int): Zipper[A]

    Permalink
    Definition Classes
    ZipperGroup → IterableLike → TraversableLike → GenTraversableLike
  44. def dropRight(n: Int): Group[A]

    Permalink
    Definition Classes
    Group → IterableLike
  45. def dropWhile(p: (A) ⇒ Boolean): Zipper[A]

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike
  46. def endsWith[B](that: GenSeq[B]): Boolean

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  47. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  48. def equals(that: Any): Boolean

    Permalink
    Definition Classes
    GenSeqLike → Equals → Any
  49. def exists(p: (A) ⇒ Boolean): Boolean

    Permalink
    Definition Classes
    IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  50. def filter(f: (A) ⇒ Boolean): Zipper[A]

    Permalink
    Definition Classes
    Zipper → TraversableLike → GenTraversableLike
  51. def filterNot(p: (A) ⇒ Boolean): Zipper[A]

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike
  52. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  53. def find(p: (A) ⇒ Boolean): Option[A]

    Permalink
    Definition Classes
    IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  54. def flatMap[B, That](f: (A) ⇒ GenTraversableOnce[B])(implicit cbf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    Zipper → TraversableLike → GenTraversableLike → FilterMonadic
  55. def flatten[B](implicit asTraversable: (A) ⇒ GenTraversableOnce[B]): IndexedSeq[B]

    Permalink
    Definition Classes
    GenericTraversableTemplate
  56. def fold[A1 >: A](z: A1)(op: (A1, A1) ⇒ A1): A1

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  57. def foldLeft[B](z: B)(op: (B, A) ⇒ B): B

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  58. def foldRight[B](z: B)(op: (A, B) ⇒ B): B

    Permalink
    Definition Classes
    IterableLike → TraversableOnce → GenTraversableOnce
  59. def forall(p: (A) ⇒ Boolean): Boolean

    Permalink
    Definition Classes
    IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  60. def foreach[U](f: (A) ⇒ U): Unit

    Permalink
    Definition Classes
    Group → IterableLike → GenericTraversableTemplate → TraversableLike → GenTraversableLike → TraversableOnce → GenTraversableOnce → FilterMonadic
  61. def genericBuilder[B]: Builder[B, IndexedSeq[B]]

    Permalink
    Definition Classes
    GenericTraversableTemplate
  62. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  63. def groupBy[K](f: (A) ⇒ K): Map[K, Zipper[A]]

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike
  64. def grouped(size: Int): Iterator[Zipper[A]]

    Permalink
    Definition Classes
    IterableLike
  65. def hasDefiniteSize: Boolean

    Permalink
    Definition Classes
    TraversableLike → TraversableOnce → GenTraversableOnce
  66. def hashCode(): Int

    Permalink
    Definition Classes
    IndexedSeqLike → GenSeqLike → Any
  67. def head: A

    Permalink
    Definition Classes
    Group → IterableLike → GenericTraversableTemplate → TraversableLike → GenTraversableLike
  68. def headOption: Option[A]

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike
  69. def indexOf[B >: A](elem: B, from: Int): Int

    Permalink
    Definition Classes
    GenSeqLike
  70. def indexOf[B >: A](elem: B): Int

    Permalink
    Definition Classes
    GenSeqLike
  71. def indexOfSlice[B >: A](that: GenSeq[B], from: Int): Int

    Permalink
    Definition Classes
    SeqLike
  72. def indexOfSlice[B >: A](that: GenSeq[B]): Int

    Permalink
    Definition Classes
    SeqLike
  73. def indexWhere(p: (A) ⇒ Boolean, from: Int): Int

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  74. def indexWhere(p: (A) ⇒ Boolean): Int

    Permalink
    Definition Classes
    GenSeqLike
  75. def indices: Range

    Permalink
    Definition Classes
    SeqLike
  76. def init: Zipper[A]

    Permalink
    Definition Classes
    ZipperGroup → TraversableLike → GenTraversableLike
  77. def inits: Iterator[Zipper[A]]

    Permalink
    Definition Classes
    TraversableLike
  78. def intersect[B >: A](that: GenSeq[B]): Zipper[A]

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  79. def isDefinedAt(idx: Int): Boolean

    Permalink
    Definition Classes
    GenSeqLike
  80. def isEmpty: Boolean

    Permalink
    Definition Classes
    SeqLike → IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  81. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  82. final def isTraversableAgain: Boolean

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike → GenTraversableOnce
  83. def iterator: Iterator[A]

    Permalink
    Definition Classes
    Group → IndexedSeqLike → IterableLike → GenIterableLike
  84. def last: A

    Permalink
    Definition Classes
    Group → TraversableLike → GenTraversableLike
  85. def lastIndexOf[B >: A](elem: B, end: Int): Int

    Permalink
    Definition Classes
    GenSeqLike
  86. def lastIndexOf[B >: A](elem: B): Int

    Permalink
    Definition Classes
    GenSeqLike
  87. def lastIndexOfSlice[B >: A](that: GenSeq[B], end: Int): Int

    Permalink
    Definition Classes
    SeqLike
  88. def lastIndexOfSlice[B >: A](that: GenSeq[B]): Int

    Permalink
    Definition Classes
    SeqLike
  89. def lastIndexWhere(p: (A) ⇒ Boolean, end: Int): Int

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  90. def lastIndexWhere(p: (A) ⇒ Boolean): Int

    Permalink
    Definition Classes
    GenSeqLike
  91. def lastOption: Option[A]

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike
  92. def length: Int

    Permalink
    Definition Classes
    Group → SeqLike → GenSeqLike
  93. def lengthCompare(len: Int): Int

    Permalink
    Definition Classes
    Group → SeqLike
  94. def lift: (Int) ⇒ Option[A]

    Permalink
    Definition Classes
    PartialFunction
  95. def map[B, That](f: (A) ⇒ B)(implicit cbf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    Zipper → TraversableLike → GenTraversableLike → FilterMonadic
  96. def matches(name: String): Boolean

    Permalink

    If true this group may contain an element with the given name as one of its children (recursively).

    If true this group may contain an element with the given name as one of its children (recursively).

    Definition Classes
    Group
  97. def max[B >: A](implicit cmp: Ordering[B]): A

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  98. def maxBy[B](f: (A) ⇒ B)(implicit cmp: Ordering[B]): A

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  99. def min[B >: A](implicit cmp: Ordering[B]): A

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  100. def minBy[B](f: (A) ⇒ B)(implicit cmp: Ordering[B]): A

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  101. def mkString: String

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  102. def mkString(sep: String): String

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  103. def mkString(start: String, sep: String, end: String): String

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  104. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  105. def newBuilder: Builder[A, Zipper[A]]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    ZipperGroup → GenericTraversableTemplate → TraversableLike → HasNewBuilder
  106. def nonEmpty: Boolean

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  107. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  109. def orElse[A1 <: Int, B1 >: A](that: PartialFunction[A1, B1]): PartialFunction[A1, B1]

    Permalink
    Definition Classes
    PartialFunction
  110. def padTo[B >: A, That](len: Int, elem: B)(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  111. def par: ParSeq[A]

    Permalink
    Definition Classes
    Parallelizable
  112. def parCombiner: Combiner[A, ParSeq[A]]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Seq → SeqLike → Iterable → TraversableLike → Parallelizable
  113. def parent: Option[Zipper[Node]]

    Permalink

    Returns the original group that was selected upon when the Zipper was created.

    Returns the original group that was selected upon when the Zipper was created. A value of None indicates that the Zipper has no parent and unselect cannot be called. This possibility is an unfortunate consequence of the fact that some operations must return the static type of Zipper even though they yield no usable context. In practice, this situation is usually caused by one of the following operations:

    • A non-Zipper group is selected upon and then 'unselect' is used to generate an updated group.
    • A method such as ++, is used to "add" nodes to a zipper without replacing existing nodes.
  114. def partition(p: (A) ⇒ Boolean): (Zipper[A], Zipper[A])

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike
  115. def patch[B >: A, That](from: Int, patch: GenSeq[B], replaced: Int)(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  116. def permutations: Iterator[Zipper[A]]

    Permalink
    Definition Classes
    SeqLike
  117. def prefixLength(p: (A) ⇒ Boolean): Int

    Permalink
    Definition Classes
    GenSeqLike
  118. def product[B >: A](implicit num: Numeric[B]): B

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  119. def reduce[A1 >: A](op: (A1, A1) ⇒ A1): A1

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  120. def reduceLeft[B >: A](op: (B, A) ⇒ B): B

    Permalink
    Definition Classes
    TraversableOnce
  121. def reduceLeftOption[B >: A](op: (B, A) ⇒ B): Option[B]

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  122. def reduceOption[A1 >: A](op: (A1, A1) ⇒ A1): Option[A1]

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  123. def reduceRight[B >: A](op: (A, B) ⇒ B): B

    Permalink
    Definition Classes
    IterableLike → TraversableOnce → GenTraversableOnce
  124. def reduceRightOption[B >: A](op: (A, B) ⇒ B): Option[B]

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  125. def repr: Zipper[A]

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike
  126. def reverse: Zipper[A]

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  127. def reverseIterator: Iterator[A]

    Permalink
    Definition Classes
    Group → SeqLike
  128. def reverseMap[B, That](f: (A) ⇒ B)(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  129. def reversed: List[A]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    TraversableOnce
  130. def runWith[U](action: (A) ⇒ U): (Int) ⇒ Boolean

    Permalink
    Definition Classes
    PartialFunction
  131. def sameElements[B >: A](that: GenIterable[B]): Boolean

    Permalink
    Definition Classes
    IterableLike → GenIterableLike
  132. def scan[B >: A, That](z: B)(op: (B, B) ⇒ B)(implicit cbf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike
  133. def scanLeft[B, That](z: B)(op: (B, A) ⇒ B)(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike
  134. def scanRight[B, That](z: B)(op: (A, B) ⇒ B)(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike
    Annotations
    @migration
    Migration

    (Changed in version 2.9.0) The behavior of scanRight has changed. The previous behavior can be reproduced with scanRight.reverse.

  135. def segmentLength(p: (A) ⇒ Boolean, from: Int): Int

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  136. def select(selector: Selector[Node]): Zipper[Node]

    Permalink

    [use case]

    [use case]
    Definition Classes
    Selectable
    Full Signature

    def select[B, That](selector: Selector[B])(implicit cbfwz: CanBuildFromWithZipper[Group[A], B, That]): That

  137. def seq: IndexedSeq[A]

    Permalink
    Definition Classes
    IndexedSeq → IndexedSeq → IndexedSeqLike → Seq → Seq → GenSeq → GenSeqLike → Iterable → Iterable → GenIterable → Traversable → Traversable → GenTraversable → Parallelizable → TraversableOnce → GenTraversableOnce
  138. def size: Int

    Permalink
    Definition Classes
    SeqLike → GenTraversableLike → TraversableOnce → GenTraversableOnce
  139. def slice(from: Int, until: Int): Zipper[A]

    Permalink
    Definition Classes
    ZipperGroup → IterableLike → TraversableLike → GenTraversableLike
  140. def sliding(size: Int, step: Int): Iterator[Zipper[A]]

    Permalink
    Definition Classes
    IterableLike
  141. def sliding(size: Int): Iterator[Zipper[A]]

    Permalink
    Definition Classes
    IterableLike
  142. def sortBy[B](f: (A) ⇒ B)(implicit ord: Ordering[B]): Zipper[A]

    Permalink
    Definition Classes
    SeqLike
  143. def sortWith(lt: (A, A) ⇒ Boolean): Zipper[A]

    Permalink
    Definition Classes
    SeqLike
  144. def sorted[B >: A](implicit ord: Ordering[B]): Zipper[A]

    Permalink
    Definition Classes
    SeqLike
  145. def span(p: (A) ⇒ Boolean): (Zipper[A], Zipper[A])

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike
  146. def splitAt(n: Int): (Zipper[A], Zipper[A])

    Permalink
    Definition Classes
    ZipperGroup → TraversableLike → GenTraversableLike
  147. def startsWith[B](that: GenSeq[B], offset: Int): Boolean

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  148. def startsWith[B](that: GenSeq[B]): Boolean

    Permalink
    Definition Classes
    GenSeqLike
  149. def stringPrefix: String

    Permalink
    Definition Classes
    TraversableLike → GenTraversableLike
  150. def stripZipper: Group[A]

    Permalink

    Returns a Group containing the same nodes as this Zipper, but without any Zipper context, and in particular, without any implict references to the zipper's parent.

  151. def sum[B >: A](implicit num: Numeric[B]): B

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  152. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  153. def tail: Zipper[A]

    Permalink
    Definition Classes
    ZipperGroup → TraversableLike → GenTraversableLike
  154. def tails: Iterator[Zipper[A]]

    Permalink
    Definition Classes
    TraversableLike
  155. def take(n: Int): Zipper[A]

    Permalink
    Definition Classes
    ZipperGroup → IterableLike → TraversableLike → GenTraversableLike
  156. def takeRight(n: Int): Group[A]

    Permalink
    Definition Classes
    Group → IterableLike
  157. def takeWhile(p: (A) ⇒ Boolean): Zipper[A]

    Permalink
    Definition Classes
    IterableLike → TraversableLike → GenTraversableLike
  158. def thisCollection: IndexedSeq[A]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    IndexedSeqLike → SeqLike → IterableLike → TraversableLike
  159. def to[Col[_]](implicit cbf: CanBuildFrom[Nothing, A, Col[A]]): Col[A]

    Permalink
    Definition Classes
    TraversableLike → TraversableOnce → GenTraversableOnce
  160. def toArray[B >: A](implicit arg0: ClassTag[B]): Array[B]

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  161. def toBuffer[A1 >: A]: Buffer[A1]

    Permalink
    Definition Classes
    IndexedSeqLike → TraversableOnce → GenTraversableOnce
  162. def toCollection(repr: Zipper[A]): IndexedSeq[A]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    IndexedSeqLike → SeqLike → IterableLike → TraversableLike
  163. def toGroup: Group[A]

    Permalink
    Definition Classes
    GroupSelectable
  164. def toIndexedSeq: IndexedSeq[A]

    Permalink
    Definition Classes
    IndexedSeq → TraversableOnce → GenTraversableOnce
    Annotations
    @deprecatedOverriding( ... , "2.11.0" )
  165. def toIterable: Iterable[A]

    Permalink
    Definition Classes
    IterableLike → TraversableOnce → GenTraversableOnce
  166. def toIterator: Iterator[A]

    Permalink
    Definition Classes
    IterableLike → TraversableLike → GenTraversableOnce
    Annotations
    @deprecatedOverriding( ... , "2.11.0" )
  167. def toList: List[A]

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  168. def toMap[T, U](implicit ev: <:<[A, (T, U)]): Map[T, U]

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  169. def toSeq: Seq[A]

    Permalink
    Definition Classes
    Seq → SeqLike → GenSeqLike → TraversableOnce → GenTraversableOnce
  170. def toSet[B >: A]: Set[B]

    Permalink
    Definition Classes
    TraversableOnce → GenTraversableOnce
  171. def toStream: Stream[A]

    Permalink
    Definition Classes
    IterableLike → TraversableLike → GenTraversableOnce
  172. def toString(): String

    Permalink

    Serializes the nodes in this Group into their most compact XML representation and concatenates the result.

    Serializes the nodes in this Group into their most compact XML representation and concatenates the result. Note that the result of this method may not be well-formed XML, since well-formed XML is required to have only a single parent element (whereas a Group may contain multiple nodes at its top level).

    This is not a pretty-print. The resulting XML will not be formatted in any way. It will be precisely the XML fragment represented by this Group, no more and no less.

    returns

    The XML fragment represented by this Group in String form

    Definition Classes
    Group → SeqLike → Function1 → TraversableLike → AnyRef → Any
  173. def toTraversable: Traversable[A]

    Permalink
    Definition Classes
    TraversableLike → TraversableOnce → GenTraversableOnce
    Annotations
    @deprecatedOverriding( ... , "2.11.0" )
  174. def toVector: Vector[A]

    Permalink

    Produces a scala.collection.immutable.Vector which contains all of the nodes in this Group.

    Produces a scala.collection.immutable.Vector which contains all of the nodes in this Group. This function is guaranteed to run in constant time.

    Definition Classes
    Group → TraversableOnce → GenTraversableOnce
  175. def toZipper: Zipper[A]

    Permalink
    Definition Classes
    ZipperGroupSelectable
  176. def transpose[B](implicit asTraversable: (A) ⇒ GenTraversableOnce[B]): IndexedSeq[IndexedSeq[B]]

    Permalink
    Definition Classes
    GenericTraversableTemplate
    Annotations
    @migration
    Migration

    (Changed in version 2.9.0) transpose throws an IllegalArgumentException if collections are not uniformly sized.

  177. def union[B >: A, That](that: GenSeq[B])(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  178. def unselect(implicit zms: ZipperMergeStrategy): Zipper[Node]

    Permalink

    Applies the node updates to the parent and returns the result.

  179. def unzip[A1, A2](implicit asPair: (A) ⇒ (A1, A2)): (IndexedSeq[A1], IndexedSeq[A2])

    Permalink
    Definition Classes
    GenericTraversableTemplate
  180. def unzip3[A1, A2, A3](implicit asTriple: (A) ⇒ (A1, A2, A3)): (IndexedSeq[A1], IndexedSeq[A2], IndexedSeq[A3])

    Permalink
    Definition Classes
    GenericTraversableTemplate
  181. def updated[B >: A <: Node](index: Int, node: B): Zipper[B]

    Permalink

    Efficient (and slightly tricky) overload of updated on parameters which are specifically of type com.codecommit.antixml.Node.

    Efficient (and slightly tricky) overload of updated on parameters which are specifically of type com.codecommit.antixml.Node.

    Definition Classes
    ZipperGroup
  182. def updated[B >: A, That](index: Int, elem: B)(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

    Permalink
    Definition Classes
    SeqLike → GenSeqLike
  183. def view(from: Int, until: Int): SeqView[A, Zipper[A]]

    Permalink
    Definition Classes
    SeqLike → IterableLike → TraversableLike
  184. def view: SeqView[A, Zipper[A]]

    Permalink
    Definition Classes
    SeqLike → IterableLike → TraversableLike
  185. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  188. def withFilter(f: (A) ⇒ Boolean): WithFilter

    Permalink
    Definition Classes
    Zipper → TraversableLike → FilterMonadic
  189. def zip[A1 >: A, B, That](that: GenIterable[B])(implicit bf: CanBuildFrom[Zipper[A], (A1, B), That]): That

    Permalink
    Definition Classes
    IterableLike → GenIterableLike
  190. def zipAll[B, A1 >: A, That](that: GenIterable[B], thisElem: A1, thatElem: B)(implicit bf: CanBuildFrom[Zipper[A], (A1, B), That]): That

    Permalink
    Definition Classes
    IterableLike → GenIterableLike
  191. def zipWithIndex[A1 >: A, That](implicit bf: CanBuildFrom[Zipper[A], (A1, Int), That]): That

    Permalink
    Definition Classes
    IterableLike → GenIterableLike

Inherited from Group[A]

Inherited from Selectable[A]

Inherited from IndexedSeq[A]

Inherited from IndexedSeq[A]

Inherited from IndexedSeqLike[A, Zipper[A]]

Inherited from Seq[A]

Inherited from Seq[A]

Inherited from SeqLike[A, Zipper[A]]

Inherited from GenSeq[A]

Inherited from GenSeqLike[A, Zipper[A]]

Inherited from PartialFunction[Int, A]

Inherited from (Int) ⇒ A

Inherited from Iterable[A]

Inherited from Iterable[A]

Inherited from IterableLike[A, Zipper[A]]

Inherited from Equals

Inherited from GenIterable[A]

Inherited from GenIterableLike[A, Zipper[A]]

Inherited from Traversable[A]

Inherited from Immutable

Inherited from Traversable[A]

Inherited from GenTraversable[A]

Inherited from GenericTraversableTemplate[A, IndexedSeq]

Inherited from TraversableLike[A, Zipper[A]]

Inherited from GenTraversableLike[A, Zipper[A]]

Inherited from Parallelizable[A, ParSeq[A]]

Inherited from TraversableOnce[A]

Inherited from GenTraversableOnce[A]

Inherited from FilterMonadic[A, Zipper[A]]

Inherited from HasNewBuilder[A, Zipper[A]]

Inherited from AnyRef

Inherited from Any

Ungrouped