Package gnu.lists
Class SubSequence<E>
- java.lang.Object
-
- gnu.lists.AbstractSequence<E>
-
- gnu.lists.SubSequence<E>
-
- All Implemented Interfaces:
BoundedHashable
,Consumable
,Sequence<E>
,Iterable<E>
,Collection<E>
,List<E>
public class SubSequence<E> extends AbstractSequence<E> implements Sequence<E>
A sequence consisting of a sub-range of the elements of a base sequence. The start and end positions are position triples (on the same sequence).
-
-
Field Summary
-
Fields inherited from class gnu.lists.AbstractSequence
noInts
-
Fields inherited from interface gnu.lists.Sequence
ATTRIBUTE_VALUE, BOOLEAN_VALUE, CDATA_VALUE, CHAR_VALUE, COMMENT_VALUE, DOCUMENT_VALUE, DOUBLE_VALUE, ELEMENT_VALUE, EOF_VALUE, eofValue, FLOAT_VALUE, INT_S16_VALUE, INT_S32_VALUE, INT_S64_VALUE, INT_S8_VALUE, INT_U16_VALUE, INT_U32_VALUE, INT_U64_VALUE, INT_U8_VALUE, OBJECT_VALUE, PRIM_VALUE, PROCESSING_INSTRUCTION_VALUE, TEXT_BYTE_VALUE
-
-
Constructor Summary
Constructors Constructor Description SubSequence()
SubSequence(AbstractSequence<E> base)
SubSequence(AbstractSequence<E> base, int startPos, int endPos)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
int
compare(int ipos1, int ipos2)
Compare two positions, and indicate their relative order.int
createPos(int offset, boolean isAfter)
Generate a position at a given index.int
createRelativePos(int pos, int offset, boolean isAfter)
int
endPos()
void
finalize()
E
get(int index)
See java.util.List.protected int
getIndexDifference(int ipos1, int ipos0)
Get offset of (ipos1) relative to (ipos0).int
getNextKind(int ipos)
Object
getPosNext(int ipos)
Get the element following the specified position.Object
getPosPrevious(int ipos)
Get the element before the specified position.protected boolean
isAfterPos(int ipos)
Tests whether the position has the "isAfter" property.protected int
nextIndex(int ipos)
Get the offset from the beginning corresponding to a position cookie.void
releasePos(int ipos)
Reclaim any resources used by the given position int.void
removePosRange(int istart, int iend)
Remove a range where each end-point is a position in a container.int
size()
See java.util.List.int
startPos()
protected Sequence<E>
subSequencePos(int ipos0, int ipos1)
-
Methods inherited from class gnu.lists.AbstractSequence
add, add, addAll, addAll, addPos, asImmutable, badRank, boundedHash, checkCanWrite, checkRank, compare, compare, consume, consume, consumeNext, consumePosRange, contains, containsAll, copyPos, effectiveIndex, effectiveIndex, effectiveIndex, effectiveIndex, effectiveIndex, elements, equals, equals, fill, fill, fillPosRange, firstAttributePos, firstChildPos, firstChildPos, fromEndIndex, get, get, get, get, getAttribute, getAttributeLength, getBooleanRaw, getByteRaw, getCharRaw, getContainingSequenceSize, getDoubleRaw, getElementKind, getFloatRaw, getInt, getInt, getInt, getInt, getInt, getIntRaw, getIterator, getIterator, getIteratorAtPos, getLongRaw, getLowBound, getNextTypeName, getNextTypeObject, getRaw, getRowMajor, getShortRaw, getSize, getSize, gotoAttributesStart, gotoChildrenStart, gotoParent, hashCode, hasNext, hasPrevious, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, nextIndex, nextMatching, nextPos, parentPos, previousPos, rank, remove, remove, removeAll, removePos, retainAll, set, set, setAt, setBuffer, setPosNext, setPosPrevious, setRaw, stableCompare, subList, subSequence, toArray, toArray, toString, toString, unsupported, unsupportedException
-
Methods inherited from interface gnu.kawa.util.BoundedHashable
boundedHash
-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Methods inherited from interface gnu.lists.Consumable
consume
-
Methods inherited from interface java.util.List
add, add, addAll, addAll, contains, containsAll, equals, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, replaceAll, retainAll, sort, spliterator, subList, toArray, toArray
-
-
-
-
Constructor Detail
-
SubSequence
public SubSequence()
-
SubSequence
public SubSequence(AbstractSequence<E> base, int startPos, int endPos)
-
SubSequence
public SubSequence(AbstractSequence<E> base)
-
-
Method Detail
-
size
public int size()
Description copied from interface:Sequence
See java.util.List.
-
removePosRange
public void removePosRange(int istart, int iend)
Description copied from class:AbstractSequence
Remove a range where each end-point is a position in a container.- Overrides:
removePosRange
in classAbstractSequence<E>
- Parameters:
istart
- start of range, as a poistioniend
- end of range
-
isAfterPos
protected boolean isAfterPos(int ipos)
Description copied from class:AbstractSequence
Tests whether the position has the "isAfter" property. I.e. if something is inserted at the position, will the iterator end up being after the new data?- Overrides:
isAfterPos
in classAbstractSequence<E>
-
createPos
public int createPos(int offset, boolean isAfter)
Description copied from class:AbstractSequence
Generate a position at a given index. The result is a position cookie that must be free'd with releasePos.- Overrides:
createPos
in classAbstractSequence<E>
- Parameters:
offset
- offset from beginning of desired positionisAfter
- should the position have the isAfter property
-
createRelativePos
public int createRelativePos(int pos, int offset, boolean isAfter)
- Overrides:
createRelativePos
in classAbstractSequence<E>
-
getIndexDifference
protected int getIndexDifference(int ipos1, int ipos0)
Description copied from class:AbstractSequence
Get offset of (ipos1) relative to (ipos0).- Overrides:
getIndexDifference
in classAbstractSequence<E>
-
releasePos
public void releasePos(int ipos)
Description copied from class:AbstractSequence
Reclaim any resources used by the given position int.- Overrides:
releasePos
in classAbstractSequence<E>
- Parameters:
ipos
- the Pos being free'd.
-
nextIndex
protected int nextIndex(int ipos)
Description copied from class:AbstractSequence
Get the offset from the beginning corresponding to a position cookie.- Overrides:
nextIndex
in classAbstractSequence<E>
-
compare
public int compare(int ipos1, int ipos2)
Description copied from class:AbstractSequence
Compare two positions, and indicate their relative order.- Overrides:
compare
in classAbstractSequence<E>
-
getPosNext
public Object getPosNext(int ipos)
Description copied from class:AbstractSequence
Get the element following the specified position.- Overrides:
getPosNext
in classAbstractSequence<E>
- Parameters:
ipos
- the specified position.- Returns:
- the following element, or eofValue if there is none. Called by SeqPosition.getNext. FIXME Should change eof handling so return type can be E.
-
getNextKind
public int getNextKind(int ipos)
- Overrides:
getNextKind
in classAbstractSequence<E>
-
startPos
public int startPos()
- Overrides:
startPos
in classAbstractSequence<E>
-
endPos
public int endPos()
- Overrides:
endPos
in classAbstractSequence<E>
-
getPosPrevious
public Object getPosPrevious(int ipos)
Description copied from class:AbstractSequence
Get the element before the specified position.- Overrides:
getPosPrevious
in classAbstractSequence<E>
- Parameters:
ipos
- the specified position.- Returns:
- the following element, or eofValue if there is none. FIXME Should change eof handling so return type can be E.
-
subSequencePos
protected Sequence<E> subSequencePos(int ipos0, int ipos1)
- Overrides:
subSequencePos
in classAbstractSequence<E>
-
clear
public void clear()
- Specified by:
clear
in interfaceCollection<E>
- Specified by:
clear
in interfaceList<E>
- Overrides:
clear
in classAbstractSequence<E>
-
-