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

Modifier and Type
Method
Description
`final 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.
`final boolean`
`moveToChild()`
Move to the first child node and return `true` upon success.
`final boolean`
`moveToParent()`
Move to the parent node and return `true` upon success.
`final 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 Details

### MutablePointTree

protected MutablePointTree()
Sole constructor.

## Method Details

### 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`