com.codecommit.antixml

Zipper

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
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

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

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

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

    Definition Classes
    Zipper → TraversableLike

Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

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

    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
  5. def ++[B >: A, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

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

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

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

    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
  9. def +:[B >: A, That](elem: B)(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

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

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

    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
  12. def :+[B >: A, That](elem: B)(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

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

    Definition Classes
    TraversableOnce → GenTraversableOnce
  14. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  15. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  16. def \(selector: Selector[Node]): Zipper[Node]

    [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 \\(selector: Selector[Node]): Zipper[Node]

    [use case]

    [use case]
    Definition Classes
    Selectable
    Full Signature

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

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

    [use case]

    [use case]
    Definition Classes
    Selectable
    Full Signature

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

  19. def addString(b: StringBuilder): StringBuilder

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

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

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

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

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

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

    Definition Classes
    PartialFunction
  26. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  27. def canEqual(that: Any): Boolean

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

    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
  29. def clone(): AnyRef

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

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

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

    Definition Classes
    SeqLike
  33. def companion: GenericCompanion[IndexedSeq]

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

    Definition Classes
    Function1
    Annotations
    @unspecialized()
  35. def contains(elem: Any): Boolean

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Definition Classes
    IterableLike
  67. def hasDefiniteSize: Boolean

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

    Definition Classes
    IndexedSeqLike → GenSeqLike → Any
  69. def head: A

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

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

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

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

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

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

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

    Definition Classes
    GenSeqLike
  77. def indices: Range

    Definition Classes
    SeqLike
  78. def init: Zipper[A]

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

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

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

    Definition Classes
    GenSeqLike
  82. def isEmpty: Boolean

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

    Definition Classes
    Any
  84. final def isTraversableAgain: Boolean

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

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

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

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

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

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

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

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

    Definition Classes
    GenSeqLike
  93. def lastOption: Option[A]

    Definition Classes
    TraversableLike → GenTraversableLike
  94. def length: Int

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

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

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

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

    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
  99. def max[B >: A](implicit cmp: Ordering[B]): A

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

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

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

    Definition Classes
    TraversableOnce → GenTraversableOnce
  103. def mkString: String

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

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

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

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

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

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

    Definition Classes
    AnyRef
  110. final def notifyAll(): Unit

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

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

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

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

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

    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.
  116. def partition(p: (A) ⇒ Boolean): (Zipper[A], Zipper[A])

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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.

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

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

    [use case]

    [use case]
    Definition Classes
    Selectable
    Full Signature

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

  139. def seq: IndexedSeq[A]

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

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

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

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

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

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

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

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

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

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

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

    Definition Classes
    GenSeqLike
  151. def stringPrefix: String

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

    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.

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

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

    Definition Classes
    AnyRef
  155. def tail: Zipper[A]

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

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

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

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

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

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

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

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

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

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

    Definition Classes
    GroupSelectable
  166. def toIndexedSeq: IndexedSeq[A]

    Definition Classes
    IndexedSeq → TraversableOnce → GenTraversableOnce
  167. def toIterable: Iterable[A]

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

    Definition Classes
    IterableLike → TraversableLike → GenTraversableOnce
  169. def toList: List[A]

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

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

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

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

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

    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
  175. def toTraversable: Traversable[A]

    Definition Classes
    TraversableLike → TraversableOnce → GenTraversableOnce
  176. def toVector: Vector[A]

    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
  177. def toZipper: Zipper[A]

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

    Definition Classes
    GenericTraversableTemplate
    Annotations
    @migration
    Migration

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

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

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

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

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

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

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

    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
  184. def updated[B >: A, That](index: Int, elem: B)(implicit bf: CanBuildFrom[Zipper[A], B, That]): That

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

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

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

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

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

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

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

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

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

    Definition Classes
    IterableLike → GenIterableLike

Deprecated Value Members

  1. def /:\[A1 >: A](z: A1)(op: (A1, A1) ⇒ A1): A1

    Definition Classes
    GenTraversableOnce
    Annotations
    @deprecated
    Deprecated

    (Since version 2.10.0) use fold instead

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