Package org.simpleframework.xml.stream
Class OutputStack
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<E>
-
- java.util.ArrayList<OutputNode>
-
- org.simpleframework.xml.stream.OutputStack
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,java.lang.Iterable<OutputNode>
,java.util.Collection<OutputNode>
,java.util.List<OutputNode>
,java.util.RandomAccess
class OutputStack extends java.util.ArrayList<OutputNode>
TheOutputStack
is used to keep track of the nodes that have been written to the document. This ensures that when nodes are written to the XML document that the writer can tell whether a child node for a givenOutputNode
can be created. Each created node is pushed, and popped when ended.- See Also:
OutputNode
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
OutputStack.Sequence
The is used to order theOutputNode
objects from the top down.
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set
active
Represents the set of nodes that have not been committed.
-
Constructor Summary
Constructors Constructor Description OutputStack(java.util.Set active)
Constructor for theOutputStack
object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description OutputNode
bottom()
This is used to acquire theOutputNode
from the bottom of the output stack.java.util.Iterator<OutputNode>
iterator()
This is returns anIterator
that is used to loop through the ouptut nodes from the top down.OutputNode
pop()
This is used to remove theOutputNode
from the top of the output stack.OutputNode
purge(int index)
Thepurge
method is used to purge a match from the provided position.OutputNode
push(OutputNode value)
This method is used to add anOutputNode
to the top of the stack.OutputNode
top()
This is used to acquire theOutputNode
from the top of the output stack.-
Methods inherited from class java.util.ArrayList
add, add, addAll, addAll, clear, clone, contains, ensureCapacity, equals, forEach, get, hashCode, indexOf, isEmpty, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeIf, removeRange, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray, trimToSize
-
-
-
-
Method Detail
-
pop
public OutputNode pop()
This is used to remove theOutputNode
from the top of the output stack. This is used when an element has been ended and the output writer wants to block child creation.- Returns:
- this returns the node from the top of the stack
-
top
public OutputNode top()
This is used to acquire theOutputNode
from the top of the output stack. This is used when the writer wants to determine the current element written to the XML document.- Returns:
- this returns the node from the top of the stack
-
bottom
public OutputNode bottom()
This is used to acquire theOutputNode
from the bottom of the output stack. This is used when the writer wants to determine the root element for the written XML document.- Returns:
- this returns the node from the bottom of the stack
-
push
public OutputNode push(OutputNode value)
This method is used to add anOutputNode
to the top of the stack. This is used when an element is written to the XML document, and allows the writer to determine if a child node can be created from a given output node.- Parameters:
value
- this is the output node to add to the stack
-
purge
public OutputNode purge(int index)
Thepurge
method is used to purge a match from the provided position. This also ensures that the active set has the node removed so that it is no longer relevant.- Parameters:
index
- the index of the node that is to be removed- Returns:
- returns the node removed from the specified index
-
iterator
public java.util.Iterator<OutputNode> iterator()
This is returns anIterator
that is used to loop through the ouptut nodes from the top down. This allows the node writer to determine whatMode
should be used by an output node. This reverses the iteration of the list.- Specified by:
iterator
in interfacejava.util.Collection<OutputNode>
- Specified by:
iterator
in interfacejava.lang.Iterable<OutputNode>
- Specified by:
iterator
in interfacejava.util.List<OutputNode>
- Overrides:
iterator
in classjava.util.ArrayList<OutputNode>
- Returns:
- returns an iterator to iterate from the top down
-
-