final class com.google.common.graph.Traverser$TreeTraverser<N> extends com.google.common.graph.Traverser<N>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.common.graph.Traverser$TreeTraverser
super_class: com.google.common.graph.Traverser
{
private final com.google.common.graph.SuccessorsFunction<N> tree;
descriptor: Lcom/google/common/graph/SuccessorsFunction;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/google/common/graph/SuccessorsFunction<TN;>;
void <init>(com.google.common.graph.SuccessorsFunction<N>);
descriptor: (Lcom/google/common/graph/SuccessorsFunction;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.google.common.graph.Traverser.<init>:()V
1: aload 0
aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.common.graph.SuccessorsFunction
putfield com.google.common.graph.Traverser$TreeTraverser.tree:Lcom/google/common/graph/SuccessorsFunction;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/graph/Traverser$TreeTraverser<TN;>;
0 3 1 tree Lcom/google/common/graph/SuccessorsFunction<TN;>;
Signature: (Lcom/google/common/graph/SuccessorsFunction<TN;>;)V
MethodParameters:
Name Flags
tree
public java.lang.Iterable<N> breadthFirst(N);
descriptor: (Ljava/lang/Object;)Ljava/lang/Iterable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
invokestatic com.google.common.collect.ImmutableSet.of:(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet;
invokevirtual com.google.common.graph.Traverser$TreeTraverser.breadthFirst:(Ljava/lang/Iterable;)Ljava/lang/Iterable;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/graph/Traverser$TreeTraverser<TN;>;
0 2 1 startNode TN;
Signature: (TN;)Ljava/lang/Iterable<TN;>;
MethodParameters:
Name Flags
startNode final
public java.lang.Iterable<N> breadthFirst(java.lang.Iterable<? extends N>);
descriptor: (Ljava/lang/Iterable;)Ljava/lang/Iterable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
invokestatic com.google.common.collect.Iterables.isEmpty:(Ljava/lang/Iterable;)Z
ifeq 3
2: invokestatic com.google.common.collect.ImmutableSet.of:()Lcom/google/common/collect/ImmutableSet;
areturn
3: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: com.google.common.graph.Traverser$TreeTraverser java.lang.Iterable top java.util.Iterator
StackMap stack:
4: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Object
astore 2
start local 2 5: aload 0
aload 2
invokevirtual com.google.common.graph.Traverser$TreeTraverser.checkThatNodeIsInTree:(Ljava/lang/Object;)V
end local 2 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: new com.google.common.graph.Traverser$TreeTraverser$1
dup
aload 0
aload 1
invokespecial com.google.common.graph.Traverser$TreeTraverser$1.<init>:(Lcom/google/common/graph/Traverser$TreeTraverser;Ljava/lang/Iterable;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/graph/Traverser$TreeTraverser<TN;>;
0 8 1 startNodes Ljava/lang/Iterable<+TN;>;
5 6 2 startNode TN;
Signature: (Ljava/lang/Iterable<+TN;>;)Ljava/lang/Iterable<TN;>;
MethodParameters:
Name Flags
startNodes final
public java.lang.Iterable<N> depthFirstPreOrder(N);
descriptor: (Ljava/lang/Object;)Ljava/lang/Iterable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
invokestatic com.google.common.collect.ImmutableSet.of:(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet;
invokevirtual com.google.common.graph.Traverser$TreeTraverser.depthFirstPreOrder:(Ljava/lang/Iterable;)Ljava/lang/Iterable;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/graph/Traverser$TreeTraverser<TN;>;
0 2 1 startNode TN;
Signature: (TN;)Ljava/lang/Iterable<TN;>;
MethodParameters:
Name Flags
startNode final
public java.lang.Iterable<N> depthFirstPreOrder(java.lang.Iterable<? extends N>);
descriptor: (Ljava/lang/Iterable;)Ljava/lang/Iterable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
invokestatic com.google.common.collect.Iterables.isEmpty:(Ljava/lang/Iterable;)Z
ifeq 3
2: invokestatic com.google.common.collect.ImmutableSet.of:()Lcom/google/common/collect/ImmutableSet;
areturn
3: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: com.google.common.graph.Traverser$TreeTraverser java.lang.Iterable top java.util.Iterator
StackMap stack:
4: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Object
astore 2
start local 2 5: aload 0
aload 2
invokevirtual com.google.common.graph.Traverser$TreeTraverser.checkThatNodeIsInTree:(Ljava/lang/Object;)V
end local 2 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: new com.google.common.graph.Traverser$TreeTraverser$2
dup
aload 0
aload 1
invokespecial com.google.common.graph.Traverser$TreeTraverser$2.<init>:(Lcom/google/common/graph/Traverser$TreeTraverser;Ljava/lang/Iterable;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/graph/Traverser$TreeTraverser<TN;>;
0 8 1 startNodes Ljava/lang/Iterable<+TN;>;
5 6 2 node TN;
Signature: (Ljava/lang/Iterable<+TN;>;)Ljava/lang/Iterable<TN;>;
MethodParameters:
Name Flags
startNodes final
public java.lang.Iterable<N> depthFirstPostOrder(N);
descriptor: (Ljava/lang/Object;)Ljava/lang/Iterable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
invokestatic com.google.common.collect.ImmutableSet.of:(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet;
invokevirtual com.google.common.graph.Traverser$TreeTraverser.depthFirstPostOrder:(Ljava/lang/Iterable;)Ljava/lang/Iterable;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/graph/Traverser$TreeTraverser<TN;>;
0 2 1 startNode TN;
Signature: (TN;)Ljava/lang/Iterable<TN;>;
MethodParameters:
Name Flags
startNode final
public java.lang.Iterable<N> depthFirstPostOrder(java.lang.Iterable<? extends N>);
descriptor: (Ljava/lang/Iterable;)Ljava/lang/Iterable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
invokestatic com.google.common.collect.Iterables.isEmpty:(Ljava/lang/Iterable;)Z
ifeq 3
2: invokestatic com.google.common.collect.ImmutableSet.of:()Lcom/google/common/collect/ImmutableSet;
areturn
3: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: com.google.common.graph.Traverser$TreeTraverser java.lang.Iterable top java.util.Iterator
StackMap stack:
4: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Object
astore 2
start local 2 5: aload 0
aload 2
invokevirtual com.google.common.graph.Traverser$TreeTraverser.checkThatNodeIsInTree:(Ljava/lang/Object;)V
end local 2 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: new com.google.common.graph.Traverser$TreeTraverser$3
dup
aload 0
aload 1
invokespecial com.google.common.graph.Traverser$TreeTraverser$3.<init>:(Lcom/google/common/graph/Traverser$TreeTraverser;Ljava/lang/Iterable;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/graph/Traverser$TreeTraverser<TN;>;
0 8 1 startNodes Ljava/lang/Iterable<+TN;>;
5 6 2 startNode TN;
Signature: (Ljava/lang/Iterable<+TN;>;)Ljava/lang/Iterable<TN;>;
MethodParameters:
Name Flags
startNodes final
private void checkThatNodeIsInTree();
descriptor: (Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.graph.Traverser$TreeTraverser.tree:Lcom/google/common/graph/SuccessorsFunction;
aload 1
invokeinterface com.google.common.graph.SuccessorsFunction.successors:(Ljava/lang/Object;)Ljava/lang/Iterable;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/graph/Traverser$TreeTraverser<TN;>;
0 2 1 startNode TN;
Signature: (TN;)V
MethodParameters:
Name Flags
startNode
}
Signature: <N:Ljava/lang/Object;>Lcom/google/common/graph/Traverser<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
com.google.common.graph.Traverser$TreeTraverser$1
com.google.common.graph.Traverser$TreeTraverser$2
com.google.common.graph.Traverser$TreeTraverser$3
private final BreadthFirstIterator = com.google.common.graph.Traverser$TreeTraverser$BreadthFirstIterator of com.google.common.graph.Traverser$TreeTraverser
private final DepthFirstPostOrderIterator = com.google.common.graph.Traverser$TreeTraverser$DepthFirstPostOrderIterator of com.google.common.graph.Traverser$TreeTraverser
private final DepthFirstPreOrderIterator = com.google.common.graph.Traverser$TreeTraverser$DepthFirstPreOrderIterator of com.google.common.graph.Traverser$TreeTraverser