Package org.fxmisc.undo.impl
Class FixedSizeChangeQueue<C>
- java.lang.Object
-
- org.fxmisc.undo.impl.FixedSizeChangeQueue<C>
-
- All Implemented Interfaces:
ChangeQueue<C>
public class FixedSizeChangeQueue<C> extends java.lang.Object implements ChangeQueue<C>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classFixedSizeChangeQueue.QueuePositionImpl-
Nested classes/interfaces inherited from interface org.fxmisc.undo.impl.ChangeQueue
ChangeQueue.QueuePosition
-
-
Field Summary
Fields Modifier and Type Field Description private intcapacityprivate RevisionedChange<C>[]changesprivate intcurrentPositionprivate longrevisionprivate intsizeprivate intstartprivate longzeroPositionRevision
-
Constructor Summary
Constructors Constructor Description FixedSizeChangeQueue(int capacity)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private intarrayIndex(int queuePosition)private RevisionedChange<C>fetch(int position)private longfetchRevisionForPosition(int position)voidforgetHistory()ChangeQueue.QueuePositiongetCurrentPosition()booleanhasNext()booleanhasPrev()Cnext()Returns the next item and increases the current position by 1.CpeekNext()Returns the next item.CpeekPrev()Returns the previous item.Cprev()Returns the previous item and decreases the current position by 1.voidpush(C... changes)private RevisionedChange<C>put(int position, RevisionedChange<C> c)private intrelativize(int arrayPos)
-
-
-
Field Detail
-
changes
private final RevisionedChange<C>[] changes
-
capacity
private final int capacity
-
start
private int start
-
size
private int size
-
currentPosition
private int currentPosition
-
revision
private long revision
-
zeroPositionRevision
private long zeroPositionRevision
-
-
Method Detail
-
hasNext
public boolean hasNext()
- Specified by:
hasNextin interfaceChangeQueue<C>
-
hasPrev
public boolean hasPrev()
- Specified by:
hasPrevin interfaceChangeQueue<C>
-
peekNext
public C peekNext()
Description copied from interface:ChangeQueueReturns the next item. Current position stays unchanged.- Specified by:
peekNextin interfaceChangeQueue<C>
-
next
public C next()
Description copied from interface:ChangeQueueReturns the next item and increases the current position by 1.- Specified by:
nextin interfaceChangeQueue<C>
-
peekPrev
public C peekPrev()
Description copied from interface:ChangeQueueReturns the previous item. Current position stays unchanged.- Specified by:
peekPrevin interfaceChangeQueue<C>
-
prev
public C prev()
Description copied from interface:ChangeQueueReturns the previous item and decreases the current position by 1.- Specified by:
previn interfaceChangeQueue<C>
-
forgetHistory
public void forgetHistory()
- Specified by:
forgetHistoryin interfaceChangeQueue<C>
-
push
@SafeVarargs public final void push(C... changes)
- Specified by:
pushin interfaceChangeQueue<C>
-
getCurrentPosition
public ChangeQueue.QueuePosition getCurrentPosition()
- Specified by:
getCurrentPositionin interfaceChangeQueue<C>
-
fetchRevisionForPosition
private long fetchRevisionForPosition(int position)
-
fetch
private RevisionedChange<C> fetch(int position)
-
put
private RevisionedChange<C> put(int position, RevisionedChange<C> c)
-
arrayIndex
private int arrayIndex(int queuePosition)
-
relativize
private int relativize(int arrayPos)
-
-