V - the type of the value objectspublic class DefaultValueStack<V> extends java.lang.Object implements ValueStack<V>
takeSnapshot() and restoreSnapshot(Object) ()}. The implementation also serves as an Iterable
over the current stack values (the values are being provided with the last value (on top of the stack) first).| Constructor and Description |
|---|
DefaultValueStack()
Initializes an empty value stack.
|
DefaultValueStack(java.lang.Iterable<V> values)
Initializes a value stack containing the given values with the last value being at the top of the stack.
|
| Modifier and Type | Method and Description |
|---|---|
void |
clear()
Clears all values.
|
void |
dup()
Duplicates the top value.
|
boolean |
isEmpty()
Determines whether the stack is empty.
|
java.util.Iterator<V> |
iterator() |
V |
peek()
Returns the value at the top of the stack without removing it.
|
V |
peek(int down)
Returns the value the given number of elements below the top of the stack without removing it.
|
void |
poke(int down,
V value)
Replaces the element the given number of elements below the current top of the stack.
|
void |
poke(V value)
Replaces the current top value with the given value.
|
V |
pop()
Removes the value at the top of the stack and returns it.
|
V |
pop(int down)
Removes the value the given number of elements below the top of the stack.
|
void |
push(int down,
V value)
Inserts the given value a given number of elements below the current top of the stack.
|
void |
push(V value)
Pushes the given value onto the stack.
|
void |
pushAll(java.lang.Iterable<V> values)
Pushes all given elements onto the stack (in the order as given).
|
void |
pushAll(V firstValue,
V... moreValues)
Pushes all given elements onto the stack (in the order as given).
|
void |
restoreSnapshot(java.lang.Object snapshot)
Restores the stack state as previously returned by
ValueStack.takeSnapshot(). |
int |
size()
Returns the number of elements currently on the stack.
|
void |
swap()
Swaps the top two stack values.
|
void |
swap3()
Reverses the order of the top 3 stack values.
|
void |
swap4()
Reverses the order of the top 4 stack values.
|
void |
swap5()
Reverses the order of the top 5 stack values.
|
void |
swap6()
Reverses the order of the top 5 stack values.
|
java.lang.Object |
takeSnapshot()
Returns an object representing the current state of the stack.
|
public DefaultValueStack()
public DefaultValueStack(java.lang.Iterable<V> values)
values - the initial stack valuespublic boolean isEmpty()
ValueStackisEmpty in interface ValueStack<V>public int size()
ValueStacksize in interface ValueStack<V>public void clear()
ValueStackclear in interface ValueStack<V>public java.lang.Object takeSnapshot()
ValueStacktakeSnapshot in interface ValueStack<V>public void restoreSnapshot(java.lang.Object snapshot)
ValueStackValueStack.takeSnapshot().
This cost of running this operation is negligible and independent from the size of the stack.restoreSnapshot in interface ValueStack<V>snapshot - a snapshot object previously returned by ValueStack.takeSnapshot()public void push(V value)
ValueStackpush in interface ValueStack<V>value - the valuepublic void push(int down,
V value)
ValueStackpush in interface ValueStack<V>down - the number of elements to skip before inserting the value (0 being equivalent to push(value))value - the valuepublic void pushAll(V firstValue, V... moreValues)
ValueStackpushAll in interface ValueStack<V>firstValue - the first valuemoreValues - the other valuespublic void pushAll(java.lang.Iterable<V> values)
ValueStackpushAll in interface ValueStack<V>values - the valuespublic V pop()
ValueStackpop in interface ValueStack<V>public V pop(int down)
ValueStackpop in interface ValueStack<V>down - the number of elements to skip before removing the value (0 being equivalent to pop())public V peek()
ValueStackpeek in interface ValueStack<V>public V peek(int down)
ValueStackpeek in interface ValueStack<V>down - the number of elements to skip (0 being equivalent to peek())public void poke(V value)
ValueStackpoke in interface ValueStack<V>value - the valuepublic void poke(int down,
V value)
ValueStackpoke in interface ValueStack<V>down - the number of elements to skip before replacing the value (0 being equivalent to poke(value))value - the value to replace withpublic void dup()
ValueStackdup in interface ValueStack<V>public void swap()
ValueStackswap in interface ValueStack<V>public void swap3()
ValueStackswap3 in interface ValueStack<V>public void swap4()
ValueStackswap4 in interface ValueStack<V>public void swap5()
ValueStackswap5 in interface ValueStack<V>public void swap6()
ValueStackswap6 in interface ValueStack<V>