Package org.apache.cassandra.utils
Class IntervalTree<C extends java.lang.Comparable<? super C>,D extends java.lang.Comparable<? super D>,I extends Interval<C,D>>
- java.lang.Object
-
- org.apache.cassandra.utils.IntervalTree<C,D,I>
-
- All Implemented Interfaces:
java.lang.Iterable<I>
- Direct Known Subclasses:
SSTableIntervalTree
public class IntervalTree<C extends java.lang.Comparable<? super C>,D extends java.lang.Comparable<? super D>,I extends Interval<C,D>> extends java.lang.Object implements java.lang.Iterable<I>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
IntervalTree.IntervalNode
-
Field Summary
Fields Modifier and Type Field Description static Interval[]
EMPTY_ARRAY
static boolean
EXPENSIVE_CHECKS
-
Constructor Summary
Constructors Modifier Constructor Description protected
IntervalTree(I[] minSortedIntervals, I[] maxSortedIntervals)
This constructor will not modify minSortedIntervals and maxSortedIntervals, but it also won't make defensive copies and will keep the originals.protected
IntervalTree(java.util.Collection<I> intervals)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <C extends java.lang.Comparable<? super C>,D extends java.lang.Comparable<? super D>,I extends Interval<C,D>>
IntervalTree<C,D,I>build(java.util.Collection<I> intervals)
protected IntervalTree<C,D,I>
create(I[] minOrder, I[] maxOrder)
static <C extends java.lang.Comparable<? super C>,D extends java.lang.Comparable<? super D>,I extends Interval<C,D>>
IntervalTree<C,D,I>emptyTree()
boolean
equals(java.lang.Object o)
int
hashCode()
int
intervalCount()
boolean
isEmpty()
java.util.Iterator<I>
iterator()
C
max()
C
min()
java.util.List<D>
search(C point)
java.util.List<D>
search(Interval<C,D> searchInterval)
java.lang.String
toString()
IntervalTree<C,D,I>
update(I[] removals, I[] additions)
The input arrays aren't defensively copied and will be sorted.
-
-
-
Field Detail
-
EXPENSIVE_CHECKS
public static final boolean EXPENSIVE_CHECKS
-
EMPTY_ARRAY
public static final Interval[] EMPTY_ARRAY
-
-
Constructor Detail
-
IntervalTree
protected IntervalTree(java.util.Collection<I> intervals)
-
-
Method Detail
-
build
public static <C extends java.lang.Comparable<? super C>,D extends java.lang.Comparable<? super D>,I extends Interval<C,D>> IntervalTree<C,D,I> build(java.util.Collection<I> intervals)
-
emptyTree
public static <C extends java.lang.Comparable<? super C>,D extends java.lang.Comparable<? super D>,I extends Interval<C,D>> IntervalTree<C,D,I> emptyTree()
-
intervalCount
public int intervalCount()
-
isEmpty
public boolean isEmpty()
-
max
public C max()
-
min
public C min()
-
update
public IntervalTree<C,D,I> update(I[] removals, I[] additions)
The input arrays aren't defensively copied and will be sorted. The update method doesn't allow duplicates or elements to be removed to be missing and this differs from the constructor which does not duplicate checking at all. It made more sense for update to be stricter because it is tracking removals and additions explicitly instead of building a list from scratch and in the targeted use case of a list of SSTables there are no duplicates. At a given point in time an sstable represents exactly one interval (although it may switch via removal and addition as in early open).
-
iterator
public java.util.Iterator<I> iterator()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public final int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-