public abstract class com.google.common.collect.TreeTraverser<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.google.common.collect.TreeTraverser
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.collect.TreeTraverser this
         0: .line 76
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.google.common.collect.TreeTraverser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/TreeTraverser<TT;>;

  public static <T> com.google.common.collect.TreeTraverser<T> using(com.google.common.base.Function<T, ? extends java.lang.Iterable<T>>);
    descriptor: (Lcom/google/common/base/Function;)Lcom/google/common/collect/TreeTraverser;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.google.common.base.Function nodeToChildrenFunction
         0: .line 91
            aload 0 /* nodeToChildrenFunction */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 92
            new com.google.common.collect.TreeTraverser$1
            dup
            aload 0 /* nodeToChildrenFunction */
            invokespecial com.google.common.collect.TreeTraverser$1.<init>:(Lcom/google/common/base/Function;)V
            areturn
        end local 0 // com.google.common.base.Function nodeToChildrenFunction
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0  nodeToChildrenFunction  Lcom/google/common/base/Function<TT;+Ljava/lang/Iterable<TT;>;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/google/common/base/Function<TT;+Ljava/lang/Iterable<TT;>;>;)Lcom/google/common/collect/TreeTraverser<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                        Name  Flags
      nodeToChildrenFunction  final

  public abstract java.lang.Iterable<T> children(T);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Iterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (TT;)Ljava/lang/Iterable<TT;>;
    MethodParameters:
      Name  Flags
      root  

  public final com.google.common.collect.FluentIterable<T> preOrderTraversal(T);
    descriptor: (Ljava/lang/Object;)Lcom/google/common/collect/FluentIterable;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.collect.TreeTraverser this
        start local 1 // java.lang.Object root
         0: .line 115
            aload 1 /* root */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 116
            new com.google.common.collect.TreeTraverser$2
            dup
            aload 0 /* this */
            aload 1 /* root */
            invokespecial com.google.common.collect.TreeTraverser$2.<init>:(Lcom/google/common/collect/TreeTraverser;Ljava/lang/Object;)V
            areturn
        end local 1 // java.lang.Object root
        end local 0 // com.google.common.collect.TreeTraverser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/google/common/collect/TreeTraverser<TT;>;
            0    2     1  root  TT;
    Signature: (TT;)Lcom/google/common/collect/FluentIterable<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      root  final

  com.google.common.collect.UnmodifiableIterator<T> preOrderIterator(T);
    descriptor: (Ljava/lang/Object;)Lcom/google/common/collect/UnmodifiableIterator;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.collect.TreeTraverser this
        start local 1 // java.lang.Object root
         0: .line 137
            new com.google.common.collect.TreeTraverser$PreOrderIterator
            dup
            aload 0 /* this */
            aload 1 /* root */
            invokespecial com.google.common.collect.TreeTraverser$PreOrderIterator.<init>:(Lcom/google/common/collect/TreeTraverser;Ljava/lang/Object;)V
            areturn
        end local 1 // java.lang.Object root
        end local 0 // com.google.common.collect.TreeTraverser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/TreeTraverser<TT;>;
            0    1     1  root  TT;
    Signature: (TT;)Lcom/google/common/collect/UnmodifiableIterator<TT;>;
    MethodParameters:
      Name  Flags
      root  

  public final com.google.common.collect.FluentIterable<T> postOrderTraversal(T);
    descriptor: (Ljava/lang/Object;)Lcom/google/common/collect/FluentIterable;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.collect.TreeTraverser this
        start local 1 // java.lang.Object root
         0: .line 180
            aload 1 /* root */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 181
            new com.google.common.collect.TreeTraverser$3
            dup
            aload 0 /* this */
            aload 1 /* root */
            invokespecial com.google.common.collect.TreeTraverser$3.<init>:(Lcom/google/common/collect/TreeTraverser;Ljava/lang/Object;)V
            areturn
        end local 1 // java.lang.Object root
        end local 0 // com.google.common.collect.TreeTraverser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/google/common/collect/TreeTraverser<TT;>;
            0    2     1  root  TT;
    Signature: (TT;)Lcom/google/common/collect/FluentIterable<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      root  final

  com.google.common.collect.UnmodifiableIterator<T> postOrderIterator(T);
    descriptor: (Ljava/lang/Object;)Lcom/google/common/collect/UnmodifiableIterator;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.collect.TreeTraverser this
        start local 1 // java.lang.Object root
         0: .line 202
            new com.google.common.collect.TreeTraverser$PostOrderIterator
            dup
            aload 0 /* this */
            aload 1 /* root */
            invokespecial com.google.common.collect.TreeTraverser$PostOrderIterator.<init>:(Lcom/google/common/collect/TreeTraverser;Ljava/lang/Object;)V
            areturn
        end local 1 // java.lang.Object root
        end local 0 // com.google.common.collect.TreeTraverser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/TreeTraverser<TT;>;
            0    1     1  root  TT;
    Signature: (TT;)Lcom/google/common/collect/UnmodifiableIterator<TT;>;
    MethodParameters:
      Name  Flags
      root  

  public final com.google.common.collect.FluentIterable<T> breadthFirstTraversal(T);
    descriptor: (Ljava/lang/Object;)Lcom/google/common/collect/FluentIterable;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.collect.TreeTraverser this
        start local 1 // java.lang.Object root
         0: .line 255
            aload 1 /* root */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 256
            new com.google.common.collect.TreeTraverser$4
            dup
            aload 0 /* this */
            aload 1 /* root */
            invokespecial com.google.common.collect.TreeTraverser$4.<init>:(Lcom/google/common/collect/TreeTraverser;Ljava/lang/Object;)V
            areturn
        end local 1 // java.lang.Object root
        end local 0 // com.google.common.collect.TreeTraverser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/google/common/collect/TreeTraverser<TT;>;
            0    2     1  root  TT;
    Signature: (TT;)Lcom/google/common/collect/FluentIterable<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      root  final
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "TreeTraverser.java"
NestMembers:
  com.google.common.collect.TreeTraverser$1  com.google.common.collect.TreeTraverser$2  com.google.common.collect.TreeTraverser$2$1  com.google.common.collect.TreeTraverser$3  com.google.common.collect.TreeTraverser$3$1  com.google.common.collect.TreeTraverser$4  com.google.common.collect.TreeTraverser$BreadthFirstIterator  com.google.common.collect.TreeTraverser$PostOrderIterator  com.google.common.collect.TreeTraverser$PostOrderNode  com.google.common.collect.TreeTraverser$PreOrderIterator
InnerClasses:
  com.google.common.collect.TreeTraverser$1
  com.google.common.collect.TreeTraverser$2
  com.google.common.collect.TreeTraverser$3
  com.google.common.collect.TreeTraverser$4
  private final BreadthFirstIterator = com.google.common.collect.TreeTraverser$BreadthFirstIterator of com.google.common.collect.TreeTraverser
  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
  private final PreOrderIterator = com.google.common.collect.TreeTraverser$PreOrderIterator of com.google.common.collect.TreeTraverser
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtCompatible()