Top Inners Fields Constructors Methods
org.reactfx.util

public abstract Class FingerTree<T, S>

extends Object
Class Inheritance
Known Direct Subclasses
org.reactfx.util.FingerTree.NonEmptyFingerTree, org.reactfx.util.FingerTree.Empty
Static Imports
org.reactfx.util.Either.*, org.reactfx.util.LL.*, org.reactfx.util.Tuples.*

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
private static class
private static class
public abstract static class

Field Summary

Modifier and TypeField and Description
pack-priv final ToSemigroup<? super T, S>

Constructor Summary

AccessConstructor and Description
private
FingerTree(ToSemigroup<? super T, S> semigroup)

Method Summary

Modifier and TypeMethod and Description
public FingerTree.NonEmptyFingerTree<T, S>
append(T data)

public abstract List<T>
asList()

Returns a list view of this tree.

private static <T, S> FingerTree.Branch<T, S>
private static <T, S> FingerTree.Branch<T, S>
private static <T, S> FingerTree.Branch<T, S>
public abstract Either<FingerTree<T, S>, FingerTree.NonEmptyFingerTree<T, S>>
private static <T, S> FingerTree<T, S>
concat(LL.Cons<? extends FingerTree<T, S>> nodes)

public static <T, S> FingerTree<T, S>
empty(ToSemigroup<? super T, S> statisticsProvider)

pack-priv FingerTree.Empty<T, S>
public abstract <R> R
fold(R acc, BiFunction<? super R, ? super T, ? extends R> reduction)

public <R> R
foldBetween(R acc, BiFunction<? super R, ? super T, ? extends R> reduction, int startLeaf, int endLeaf)

public <R> R
foldBetween(R acc, BiFunction<? super R, ? super T, ? extends R> reduction, ToIntFunction<? super S> metric, int startPosition, int endPosition, TetraFunction<? super R, ? super T, Integer, Integer, ? extends R> rangeReduction)

pack-priv abstract <R> R
foldBetween0(R acc, BiFunction<? super R, ? super T, ? extends R> reduction, int startLeaf, int endLeaf)

pack-priv abstract <R> R
foldBetween0(R acc, BiFunction<? super R, ? super T, ? extends R> reduction, ToIntFunction<? super S> metric, int startPosition, int endPosition, TetraFunction<? super R, ? super T, Integer, Integer, ? extends R> rangeReduction)

public Tuple2<T, BiIndex>
get(ToIntFunction<? super S> metric, int index)

public <E> E
get(ToIntFunction<? super S> metric, int index, BiFunction<? super T, Integer, ? extends E> leafAccessor)

pack-priv abstract T
public abstract int
public T
getLeaf(int index)

pack-priv abstract T
getLeaf0(int index)

public abstract int
public S
getSummary(S whenEmpty)

public Optional<S>
getSummaryBetween(int startLeaf, int endLeaf)

public Optional<S>
getSummaryBetween(ToIntFunction<? super S> metric, int startPosition, int endPosition, TriFunction<? super T, Integer, Integer, ? extends S> subSummary)

pack-priv abstract S
getSummaryBetween0(int startLeaf, int endLeaf)

pack-priv abstract S
getSummaryBetween0(ToIntFunction<? super S> metric, int startPosition, int endPosition, TriFunction<? super T, Integer, Integer, ? extends S> subSummary)

public abstract Optional<S>
public FingerTree<T, S>
insertLeaf(int position, T data)

public final boolean
public abstract FingerTree<T, S>
join(FingerTree<T, S> rightTree)

pack-priv FingerTree.Leaf<T, S>
leaf(T data)

public BiIndex
locate(BiFunction<? super S, Integer, Either<Integer, Integer>> navigate, int position)

public BiIndex
locateProgressively(ToIntFunction<? super S> metric, int position)

public BiIndex
locateRegressively(ToIntFunction<? super S> metric, int position)

pack-priv final int
measure(ToIntFunction<? super S> metric)

public static <T> FingerTree<T, Void>
mkTree(List<? extends T> items)

public static <T, S> FingerTree<T, S>
mkTree(List<? extends T> items, ToSemigroup<? super T, S> summaryProvider)

public FingerTree.NonEmptyFingerTree<T, S>
prepend(T data)

public FingerTree<T, S>
removeLeafs(int fromLeaf, int toLeaf)

public Tuple2<FingerTree<T, S>, FingerTree<T, S>>
split(int beforeLeaf)

pack-priv abstract Tuple2<FingerTree<T, S>, FingerTree<T, S>>
split0(int beforeLeaf)

public FingerTree.NonEmptyFingerTree<T, S>
updateLeaf(int index, T data)

pack-priv abstract FingerTree.NonEmptyFingerTree<T, S>
updateLeaf0(int index, T data)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait