final class com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator extends com.google.common.collect.AbstractIterator<N>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator
super_class: com.google.common.collect.AbstractIterator
{
private final java.util.ArrayDeque<com.google.common.graph.Traverser$TreeTraverser<N>.DepthFirstPostOrderIterator.NodeAndChildren> stack;
descriptor: Ljava/util/ArrayDeque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayDeque<Lcom/google/common/graph/Traverser$TreeTraverser<TN;>.DepthFirstPostOrderIterator.NodeAndChildren;>;
final com.google.common.graph.Traverser$TreeTraverser this$1;
descriptor: Lcom/google/common/graph/Traverser$TreeTraverser;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(java.lang.Iterable<? extends N>);
descriptor: (Lcom/google/common/graph/Traverser$TreeTraverser;Ljava/lang/Iterable;)V
flags: (0x0000)
Code:
stack=6, locals=3, args_size=3
start local 0 // com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator this
start local 2 // java.lang.Iterable roots
0: .line 620
aload 0 /* this */
aload 1
putfield com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator.this$1:Lcom/google/common/graph/Traverser$TreeTraverser;
aload 0 /* this */
invokespecial com.google.common.collect.AbstractIterator.<init>:()V
1: .line 618
aload 0 /* this */
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator.stack:Ljava/util/ArrayDeque;
2: .line 621
aload 0 /* this */
getfield com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator.stack:Ljava/util/ArrayDeque;
new com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren
dup
aload 0 /* this */
aconst_null
aload 2 /* roots */
invokespecial com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren.<init>:(Lcom/google/common/graph/Traverser$TreeTraverser$DepthFirstPostOrderIterator;Ljava/lang/Object;Ljava/lang/Iterable;)V
invokevirtual java.util.ArrayDeque.addLast:(Ljava/lang/Object;)V
3: .line 622
return
end local 2 // java.lang.Iterable roots
end local 0 // com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/graph/Traverser$TreeTraverser$DepthFirstPostOrderIterator;
0 4 2 roots Ljava/lang/Iterable<+TN;>;
Signature: (Ljava/lang/Iterable<+TN;>;)V
MethodParameters:
Name Flags
this$0 final
roots
protected N computeNext();
descriptor: ()Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=1
start local 0 // com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator this
0: .line 626
goto 9
1: .line 627
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator.stack:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.getLast:()Ljava/lang/Object;
checkcast com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren
astore 1 /* top */
start local 1 // com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren top
2: .line 628
aload 1 /* top */
getfield com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren.childIterator:Ljava/util/Iterator;
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 6
3: .line 629
aload 1 /* top */
getfield com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren.childIterator:Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 2 /* child */
start local 2 // java.lang.Object child
4: .line 630
aload 0 /* this */
getfield com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator.stack:Ljava/util/ArrayDeque;
aload 0 /* this */
aload 2 /* child */
invokevirtual com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator.withChildren:(Ljava/lang/Object;)Lcom/google/common/graph/Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren;
invokevirtual java.util.ArrayDeque.addLast:(Ljava/lang/Object;)V
end local 2 // java.lang.Object child
5: .line 631
goto 9
6: .line 632
StackMap locals: com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren
StackMap stack:
aload 0 /* this */
getfield com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator.stack:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.removeLast:()Ljava/lang/Object;
pop
7: .line 633
aload 1 /* top */
getfield com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren.node:Ljava/lang/Object;
ifnull 9
8: .line 634
aload 1 /* top */
getfield com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren.node:Ljava/lang/Object;
areturn
end local 1 // com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren top
9: .line 626
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator.stack:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.isEmpty:()Z
ifeq 1
10: .line 638
aload 0 /* this */
invokevirtual com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator.endOfData:()Ljava/lang/Object;
areturn
end local 0 // com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/google/common/graph/Traverser$TreeTraverser$DepthFirstPostOrderIterator;
2 9 1 top Lcom/google/common/graph/Traverser$TreeTraverser<TN;>.DepthFirstPostOrderIterator.NodeAndChildren;
4 5 2 child TN;
Signature: ()TN;
com.google.common.graph.Traverser$TreeTraverser<N>.DepthFirstPostOrderIterator.NodeAndChildren withChildren(N);
descriptor: (Ljava/lang/Object;)Lcom/google/common/graph/Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren;
flags: (0x0000)
Code:
stack=6, locals=2, args_size=2
start local 0 // com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator this
start local 1 // java.lang.Object node
0: .line 642
new com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren
dup
aload 0 /* this */
aload 1 /* node */
aload 0 /* this */
getfield com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator.this$1:Lcom/google/common/graph/Traverser$TreeTraverser;
getfield com.google.common.graph.Traverser$TreeTraverser.tree:Lcom/google/common/graph/SuccessorsFunction;
aload 1 /* node */
invokeinterface com.google.common.graph.SuccessorsFunction.successors:(Ljava/lang/Object;)Ljava/lang/Iterable;
invokespecial com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren.<init>:(Lcom/google/common/graph/Traverser$TreeTraverser$DepthFirstPostOrderIterator;Ljava/lang/Object;Ljava/lang/Iterable;)V
areturn
end local 1 // java.lang.Object node
end local 0 // com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/graph/Traverser$TreeTraverser$DepthFirstPostOrderIterator;
0 1 1 node TN;
Signature: (TN;)Lcom/google/common/graph/Traverser$TreeTraverser<TN;>.DepthFirstPostOrderIterator.NodeAndChildren;
MethodParameters:
Name Flags
node
}
Signature: Lcom/google/common/collect/AbstractIterator<TN;>;
SourceFile: "Traverser.java"
NestHost: com.google.common.graph.Traverser
InnerClasses:
private final TreeTraverser = com.google.common.graph.Traverser$TreeTraverser of com.google.common.graph.Traverser
private final DepthFirstPostOrderIterator = com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator of com.google.common.graph.Traverser$TreeTraverser
private final NodeAndChildren = com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator$NodeAndChildren of com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator