Package org.apache.uima.internal.util
Class OrderedFsSet_array<T extends FeatureStructure>
java.lang.Object
org.apache.uima.internal.util.OrderedFsSet_array<T>
- All Implemented Interfaces:
Iterable<T>
This one is being used, the other one (ending in 2) may be put back into service for large sizes,
later. (7/2017)
A set of FSs, ordered using a comparator Not thread-safe, use on single thread only
Use: set-sorted indexes in UIMA
Entries kept in order in 1 big TOP[]
have ensureCapacity - grows by doubling up to multiplication-limit point, then by addition
Adds optimized:
- maintain high mark, if >, add to end
shifting optimization:
for removes: shift space to back or front, whichever is closer
for adds: shift space from back or front, whichever is closer
-
Constructor Summary
ConstructorDescriptionOrderedFsSet_array
(Comparator<TOP> comparatorNoTypeWithID, Comparator<TOP> comparatorNoTypeWithoutID) OrderedFsSet_array
(OrderedFsSet_array<T> set, boolean isReadOnly) called to make a read-only copy -
Method Summary
Modifier and TypeMethodDescriptionboolean
boolean
add
(T fs1, Comparator<TOP> comparator) int
binarySearch
(TOP[] _a, int start, int end, TOP fs, Comparator<TOP> _comparatorWithID) int
binarySearchLeftMostEqual
(TOP fs, int start, int end, Comparator<TOP> comparator) Guaranteed by caller to have an equal (withoutID) item, but might be the "end" item searching up to find it.void
clear()
int
find
(TOP fs, Comparator<TOP> comparator) int
findWithoutID
(TOP fs) using NoType because all callers of this have already used the type of fs to select the right index.getAtPos
(int pos) boolean
isEmpty()
iterator()
boolean
Removes the exactly matching (including ID) FS if present Only called when type of FS matches this index's type, so the NoType comparator is used.int
size()
TOP[]
toArray()
<U> U[]
toArray
(U[] a1) toString()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
OrderedFsSet_array
public OrderedFsSet_array(Comparator<TOP> comparatorNoTypeWithID, Comparator<TOP> comparatorNoTypeWithoutID) -
OrderedFsSet_array
called to make a read-only copy- Parameters:
set
- -isReadOnly
- -
-
-
Method Details
-
size
public int size() -
isEmpty
public boolean isEmpty() -
add
-
add
- Parameters:
fs1
- item to addcomparator
- either the comparator without type with ID for sorted indexes, or the comparator withoutType without ID for set indexes- Returns:
- true if fs was added (not already present)
-
findWithoutID
using NoType because all callers of this have already used the type of fs to select the right index.- Parameters:
fs
- -- Returns:
- -
-
find
-
binarySearch
- Parameters:
_a
- the arraystart
- the index representing the lower bound (inclusive) to search forend
- the index representing the upper bound (exclusive) to search forfs
- - the fs to search for_comparatorWithID
- -- Returns:
- - the index of the found item, or if not found, the (-index) -1 of the position one more than where the item would go
-
remove
Removes the exactly matching (including ID) FS if present Only called when type of FS matches this index's type, so the NoType comparator is used.- Parameters:
o
- the object (must be a FS of the type of this index) to remove- Returns:
- true if it was removed, false if it wasn't in the index
-
clear
public void clear()- See Also:
-
binarySearchLeftMostEqual
Guaranteed by caller to have an equal (withoutID) item, but might be the "end" item searching up to find it.- Parameters:
fs
- - the fs to search forstart
- the index representing the lower bound (inclusive) to search forend
- the index representing the upper bound (exclusive) to search for Not called unless there's one equal item below this.comparator
- the comparator to use (with or without type)- Returns:
- - the index of the leftmost equal (without id) item
-
iterator
- Specified by:
iterator
in interfaceIterable<T extends FeatureStructure>
-
toArray
-
toArray
public <U> U[] toArray(U[] a1) -
getAtPos
-
toString
-