A position in a sequence (list).
Conceptually similar to Java2's ListIterator, but we use the name "Position"
to indicate that it can be used to both indicate a position in a sequence
and to iterate through a sequence. If you use a SeqPosition as a
"position", you would not modify if (though it is possible the offset
of the position in the sequence may change due to other update operations
on the sequence). If you use a SeqPosition as an "iterator", you would
initialize it to some beginnning position, and then modify the current
position of the SeqPosition so it refers to successive elements.
See the
package overview
for more information.
add
public void add(Object o)
finalize
public void finalize()
fromEndIndex
public final int fromEndIndex()
getContainingSequenceSize
public int getContainingSequenceSize()
getNext
public Object getNext()
Get element following current position.
Does not move the position, in contrast to next() method.
- EOF if at end of sequence, otherwise the value following.
getNextKind
public int getNextKind()
Return a code (defined in Sequence) for the type of the next element.
getNextTypeName
public String getNextTypeName()
Get the "tag name" for the next element, if any.
getNextTypeObject
public Object getNextTypeObject()
Get the "tag object" for the next element, if any.
getPos
public int getPos()
Get a position int "cookie" for this SeqPosition.
The result can be passed to AbstractSequence's getPosNext(int),
createRelativePos, and other methods.
By default this is the value of ipos, but for sequences that need emore
state than an ipos for efficient position, we use a PositionManager index.
So this gets over-ridden in ExtPosition.
getPrevious
public Object getPrevious()
Get element before the current position.
Does not move the position, in contrast to previous() method.
- EOF if at beginning of sequence, otherwise the value prior.
gotoChildrenStart
public boolean gotoChildrenStart()
Set position before first child (of the element following position).
- true if there is a child sequence (which might be empty);
false if current position is end of sequence or following element
is atomic (cannot have children).
gotoNext
public boolean gotoNext()
Move one element forwards, if possible.
- if we succeeded in moving forwards (i.e. not at end of sequence).
gotoPrevious
public boolean gotoPrevious()
Move backwards one element.
- false iff already at beginning.
hasMoreElements
public final boolean hasMoreElements()
True if there is an element following the current position.
False if we are at the end. See java.util.Enumeration.
hasNext
public boolean hasNext()
See java.util.Iterator.
hasPrevious
public boolean hasPrevious()
See java.util.Iterator.
isAfter
public boolean isAfter()
Tests whether the position pair has the "isAfter" property.
I.e. if something is inserted at the position, will
the iterator end up being after the new data?
A toNext() or next() command should set isAfter() to true;
a toPrevious or previous command should set isAfter() to false.
make
public static SeqPosition make(AbstractSequence seq,
int ipos)
Creates a new SeqPosition, from a position pair.
The position pair is copied (using copyPos).
next
public Object next()
See java.util.ListIterator.
nextElement
public final Object nextElement()
See java.util.Enumeration.
nextIndex
public int nextIndex()
See java.util.Iterator.
previous
public Object previous()
See java.util.ListIterator.
previousIndex
public final int previousIndex()
See java.util.Iterator.
release
public void release()
remove
public void remove()
set
public final void set(Object value)
setNext
public void setNext(Object value)
setPos
public void setPos(int ipos)
setPrevious
public void setPrevious(Object value)
toInfo
public String toInfo()
toString
public String toString()