Package org.apache.lucene.codecs

## Class MutablePointTree

- java.lang.Object
- - org.apache.lucene.codecs.MutablePointTree

- All Implemented Interfaces:
    `Cloneable`, `PointValues.PointTree`

      public abstract class MutablePointTree
      extends Object
      implements PointValues.PointTree

  One leaf `PointValues.PointTree` whose order of points can be changed. This class is useful for codecs to optimize flush.
  NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `MutablePointTree()` | Sole constructor.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `PointValues.PointTree` | `clone()` | Clone, the current node becomes the root of the new tree.
    `abstract byte` | `getByteAt​(int i, int k)` | Get the k-th byte of the i-th value.
    `abstract int` | `getDocID​(int i)` | Return the doc ID of the i-th value.
    `byte[]` | `getMaxPackedValue()` | Return the maximum packed value of the current node.
    `byte[]` | `getMinPackedValue()` | Return the minimum packed value of the current node.
    `abstract void` | `getValue​(int i, BytesRef packedValue)` | Set `packedValue` with a reference to the packed bytes of the i-th value.
    `boolean` | `moveToChild()` | Move to the first child node and return `true` upon success.
    `boolean` | `moveToParent()` | Move to the parent node and return `true` upon success.
    `boolean` | `moveToSibling()` | Move to the next sibling node and return `true` upon success.
    `abstract void` | `restore​(int i, int j)` | Restore values between i-th and j-th(excluding) in temporary storage into original storage.
    `abstract void` | `save​(int i, int j)` | Save the i-th value into the j-th position in temporary storage.
    `abstract void` | `swap​(int i, int j)` | Swap the i-th and j-th values.
    `void` | `visitDocIDs​(PointValues.IntersectVisitor visitor)` | Visit all the docs below the current node.

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.lucene.index.PointValues.PointTree

      `size, visitDocValues`

- - ### Constructor Detail

    - #### MutablePointTree

          protected MutablePointTree()

      Sole constructor.

  - ### Method Detail

    - #### getValue

          public abstract void getValue​(int i,
                                        BytesRef packedValue)

      Set `packedValue` with a reference to the packed bytes of the i-th value.

    - #### getByteAt

          public abstract byte getByteAt​(int i,
                                         int k)

      Get the k-th byte of the i-th value.

    - #### getDocID

          public abstract int getDocID​(int i)

      Return the doc ID of the i-th value.

    - #### swap

          public abstract void swap​(int i,
                                    int j)

      Swap the i-th and j-th values.

    - #### save

          public abstract void save​(int i,
                                    int j)

      Save the i-th value into the j-th position in temporary storage.

    - #### restore

          public abstract void restore​(int i,
                                       int j)

      Restore values between i-th and j-th(excluding) in temporary storage into original storage.

    - #### clone

          public final PointValues.PointTree clone()

      Description copied from interface: `PointValues.PointTree`
      Clone, the current node becomes the root of the new tree.
      Specified by:
        `clone` in interface `PointValues.PointTree`
      Overrides:
        `clone` in class `Object`

    - #### moveToChild

          public final boolean moveToChild()

      Description copied from interface: `PointValues.PointTree`
      Move to the first child node and return `true` upon success. Returns `false` for leaf nodes and `true` otherwise.
      Specified by:
        `moveToChild` in interface `PointValues.PointTree`

    - #### moveToSibling

          public final boolean moveToSibling()

      Description copied from interface: `PointValues.PointTree`
      Move to the next sibling node and return `true` upon success. Returns `false` if the current node has no more siblings.
      Specified by:
        `moveToSibling` in interface `PointValues.PointTree`

    - #### moveToParent

          public final boolean moveToParent()

      Description copied from interface: `PointValues.PointTree`
      Move to the parent node and return `true` upon success. Returns `false` for the root node and `true` otherwise.
      Specified by:
        `moveToParent` in interface `PointValues.PointTree`

    - #### getMinPackedValue

          public byte[] getMinPackedValue()

      Description copied from interface: `PointValues.PointTree`
      Return the minimum packed value of the current node.
      Specified by:
        `getMinPackedValue` in interface `PointValues.PointTree`

    - #### getMaxPackedValue

          public byte[] getMaxPackedValue()

      Description copied from interface: `PointValues.PointTree`
      Return the maximum packed value of the current node.
      Specified by:
        `getMaxPackedValue` in interface `PointValues.PointTree`

    - #### visitDocIDs

          public void visitDocIDs​(PointValues.IntersectVisitor visitor)

      Description copied from interface: `PointValues.PointTree`
      Visit all the docs below the current node.
      Specified by:
        `visitDocIDs` in interface `PointValues.PointTree`