final class com.google.common.collect.TreeTraverser$PostOrderIterator extends com.google.common.collect.AbstractIterator<T>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.common.collect.TreeTraverser$PostOrderIterator
super_class: com.google.common.collect.AbstractIterator
{
private final java.util.ArrayDeque<com.google.common.collect.TreeTraverser$PostOrderNode<T>> stack;
descriptor: Ljava/util/ArrayDeque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayDeque<Lcom/google/common/collect/TreeTraverser$PostOrderNode<TT;>;>;
final com.google.common.collect.TreeTraverser this$0;
descriptor: Lcom/google/common/collect/TreeTraverser;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>();
descriptor: (Lcom/google/common/collect/TreeTraverser;Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 // com.google.common.collect.TreeTraverser$PostOrderIterator this
start local 2 // java.lang.Object root
0: .line 218
aload 0 /* this */
aload 1
putfield com.google.common.collect.TreeTraverser$PostOrderIterator.this$0:Lcom/google/common/collect/TreeTraverser;
aload 0 /* this */
invokespecial com.google.common.collect.AbstractIterator.<init>:()V
1: .line 219
aload 0 /* this */
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield com.google.common.collect.TreeTraverser$PostOrderIterator.stack:Ljava/util/ArrayDeque;
2: .line 220
aload 0 /* this */
getfield com.google.common.collect.TreeTraverser$PostOrderIterator.stack:Ljava/util/ArrayDeque;
aload 0 /* this */
aload 2 /* root */
invokevirtual com.google.common.collect.TreeTraverser$PostOrderIterator.expand:(Ljava/lang/Object;)Lcom/google/common/collect/TreeTraverser$PostOrderNode;
invokevirtual java.util.ArrayDeque.addLast:(Ljava/lang/Object;)V
3: .line 221
return
end local 2 // java.lang.Object root
end local 0 // com.google.common.collect.TreeTraverser$PostOrderIterator this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/collect/TreeTraverser$PostOrderIterator;
0 4 2 root TT;
Signature: (TT;)V
MethodParameters:
Name Flags
this$0 final
root
protected T computeNext();
descriptor: ()Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=1
start local 0 // com.google.common.collect.TreeTraverser$PostOrderIterator this
0: .line 225
goto 8
1: .line 226
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.google.common.collect.TreeTraverser$PostOrderIterator.stack:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.getLast:()Ljava/lang/Object;
checkcast com.google.common.collect.TreeTraverser$PostOrderNode
astore 1 /* top */
start local 1 // com.google.common.collect.TreeTraverser$PostOrderNode top
2: .line 227
aload 1 /* top */
getfield com.google.common.collect.TreeTraverser$PostOrderNode.childIterator:Ljava/util/Iterator;
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 6
3: .line 228
aload 1 /* top */
getfield com.google.common.collect.TreeTraverser$PostOrderNode.childIterator:Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 2 /* child */
start local 2 // java.lang.Object child
4: .line 229
aload 0 /* this */
getfield com.google.common.collect.TreeTraverser$PostOrderIterator.stack:Ljava/util/ArrayDeque;
aload 0 /* this */
aload 2 /* child */
invokevirtual com.google.common.collect.TreeTraverser$PostOrderIterator.expand:(Ljava/lang/Object;)Lcom/google/common/collect/TreeTraverser$PostOrderNode;
invokevirtual java.util.ArrayDeque.addLast:(Ljava/lang/Object;)V
end local 2 // java.lang.Object child
5: .line 230
goto 8
6: .line 231
StackMap locals: com.google.common.collect.TreeTraverser$PostOrderNode
StackMap stack:
aload 0 /* this */
getfield com.google.common.collect.TreeTraverser$PostOrderIterator.stack:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.removeLast:()Ljava/lang/Object;
pop
7: .line 232
aload 1 /* top */
getfield com.google.common.collect.TreeTraverser$PostOrderNode.root:Ljava/lang/Object;
areturn
end local 1 // com.google.common.collect.TreeTraverser$PostOrderNode top
8: .line 225
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.google.common.collect.TreeTraverser$PostOrderIterator.stack:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.isEmpty:()Z
ifeq 1
9: .line 235
aload 0 /* this */
invokevirtual com.google.common.collect.TreeTraverser$PostOrderIterator.endOfData:()Ljava/lang/Object;
areturn
end local 0 // com.google.common.collect.TreeTraverser$PostOrderIterator this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/google/common/collect/TreeTraverser$PostOrderIterator;
2 8 1 top Lcom/google/common/collect/TreeTraverser$PostOrderNode<TT;>;
4 5 2 child TT;
Signature: ()TT;
private com.google.common.collect.TreeTraverser$PostOrderNode<T> expand(T);
descriptor: (Ljava/lang/Object;)Lcom/google/common/collect/TreeTraverser$PostOrderNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 // com.google.common.collect.TreeTraverser$PostOrderIterator this
start local 1 // java.lang.Object t
0: .line 239
new com.google.common.collect.TreeTraverser$PostOrderNode
dup
aload 1 /* t */
aload 0 /* this */
getfield com.google.common.collect.TreeTraverser$PostOrderIterator.this$0:Lcom/google/common/collect/TreeTraverser;
aload 1 /* t */
invokevirtual com.google.common.collect.TreeTraverser.children:(Ljava/lang/Object;)Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
invokespecial com.google.common.collect.TreeTraverser$PostOrderNode.<init>:(Ljava/lang/Object;Ljava/util/Iterator;)V
areturn
end local 1 // java.lang.Object t
end local 0 // com.google.common.collect.TreeTraverser$PostOrderIterator this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/TreeTraverser$PostOrderIterator;
0 1 1 t TT;
Signature: (TT;)Lcom/google/common/collect/TreeTraverser$PostOrderNode<TT;>;
MethodParameters:
Name Flags
t
}
Signature: Lcom/google/common/collect/AbstractIterator<TT;>;
SourceFile: "TreeTraverser.java"
NestHost: com.google.common.collect.TreeTraverser
InnerClasses:
private final PostOrderIterator = com.google.common.collect.TreeTraverser$PostOrderIterator of com.google.common.collect.TreeTraverser
private final PostOrderNode = com.google.common.collect.TreeTraverser$PostOrderNode of com.google.common.collect.TreeTraverser