Package org.glassfish.pfl.basic.contain
Class MarkStack<E>
- java.lang.Object
-
- org.glassfish.pfl.basic.contain.MarkStack<E>
-
public final class MarkStack<E> extends java.lang.ObjectA stack with additional operations that support recording the current top of stack as a mark, and then later popping all items pushed since the last mark call.
-
-
Constructor Summary
Constructors Constructor Description MarkStack()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanisEmpty()Return true iff the stack is empty.voidmark()Record the current position in the stack for a subsequent popMark call.Epeek()Return the top element of the stack.Epop()Return the top element of the stack and remove it from the stack.java.util.List<E>popMark()Return an ordered list of stack elements starting with the element that was on top of the stack when mark was called.Epush(E elem)
-
-
-
Field Detail
-
items
private java.util.List<E> items
-
marks
private java.util.List<java.lang.Integer> marks
-
-
Method Detail
-
pop
public E pop()
Return the top element of the stack and remove it from the stack.- Throws:
java.util.EmptyStackException- is thrown if the stack is empty.java.lang.IllegalStateException- if an attempt is made to pop past the top mark.
-
isEmpty
public boolean isEmpty()
Return true iff the stack is empty.
-
peek
public E peek()
Return the top element of the stack. Does not change the stack.- Throws:
java.util.EmptyStackException- is thrown if the stack is empty.
-
mark
public void mark()
Record the current position in the stack for a subsequent popMark call. This allow marking the start of a related group of items on the stack that can be popped together later by popMark. Multiple mark calls are supported.
-
popMark
public java.util.List<E> popMark()
Return an ordered list of stack elements starting with the element that was on top of the stack when mark was called.
-
-