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>
TheOutputStackis 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 givenOutputNodecan 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 classOutputStack.SequenceThe is used to order theOutputNodeobjects from the top down.
-
Field Summary
Fields Modifier and Type Field Description private java.util.SetactiveRepresents the set of nodes that have not been committed.
-
Constructor Summary
Constructors Constructor Description OutputStack(java.util.Set active)Constructor for theOutputStackobject.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description OutputNodebottom()This is used to acquire theOutputNodefrom the bottom of the output stack.java.util.Iterator<OutputNode>iterator()This is returns anIteratorthat is used to loop through the ouptut nodes from the top down.OutputNodepop()This is used to remove theOutputNodefrom the top of the output stack.OutputNodepurge(int index)Thepurgemethod is used to purge a match from the provided position.OutputNodepush(OutputNode value)This method is used to add anOutputNodeto the top of the stack.OutputNodetop()This is used to acquire theOutputNodefrom 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 theOutputNodefrom 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 theOutputNodefrom 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 theOutputNodefrom 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 anOutputNodeto 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)
Thepurgemethod 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 anIteratorthat is used to loop through the ouptut nodes from the top down. This allows the node writer to determine whatModeshould be used by an output node. This reverses the iteration of the list.- Specified by:
iteratorin interfacejava.util.Collection<OutputNode>- Specified by:
iteratorin interfacejava.lang.Iterable<OutputNode>- Specified by:
iteratorin interfacejava.util.List<OutputNode>- Overrides:
iteratorin classjava.util.ArrayList<OutputNode>- Returns:
- returns an iterator to iterate from the top down
-
-