abstract class com.google.common.util.concurrent.AbstractTransformFuture<I, O, F, T> extends com.google.common.util.concurrent.FluentFuture$TrustedFuture<O> implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.google.common.util.concurrent.AbstractTransformFuture
  super_class: com.google.common.util.concurrent.FluentFuture$TrustedFuture
{
  com.google.common.util.concurrent.ListenableFuture<? extends I> inputFuture;
    descriptor: Lcom/google/common/util/concurrent/ListenableFuture;
    flags: (0x0000) 
    Signature: Lcom/google/common/util/concurrent/ListenableFuture<+TI;>;
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  F function;
    descriptor: Ljava/lang/Object;
    flags: (0x0000) 
    Signature: TF;
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  static <I, O> com.google.common.util.concurrent.ListenableFuture<O> create(com.google.common.util.concurrent.ListenableFuture<I>, com.google.common.util.concurrent.AsyncFunction<? super I, ? extends O>, java.util.concurrent.Executor);
    descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/AsyncFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.google.common.util.concurrent.ListenableFuture input
        start local 1 // com.google.common.util.concurrent.AsyncFunction function
        start local 2 // java.util.concurrent.Executor executor
         0: .line 37
            aload 2 /* executor */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 38
            new com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture
            dup
            aload 0 /* input */
            aload 1 /* function */
            invokespecial com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.<init>:(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/AsyncFunction;)V
            astore 3 /* output */
        start local 3 // com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture output
         2: .line 39
            aload 0 /* input */
            aload 3 /* output */
            aload 2 /* executor */
            aload 3 /* output */
            invokestatic com.google.common.util.concurrent.MoreExecutors.rejectionPropagatingExecutor:(Ljava/util/concurrent/Executor;Lcom/google/common/util/concurrent/AbstractFuture;)Ljava/util/concurrent/Executor;
            invokeinterface com.google.common.util.concurrent.ListenableFuture.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
         3: .line 40
            aload 3 /* output */
            areturn
        end local 3 // com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture output
        end local 2 // java.util.concurrent.Executor executor
        end local 1 // com.google.common.util.concurrent.AsyncFunction function
        end local 0 // com.google.common.util.concurrent.ListenableFuture input
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0     input  Lcom/google/common/util/concurrent/ListenableFuture<TI;>;
            0    4     1  function  Lcom/google/common/util/concurrent/AsyncFunction<-TI;+TO;>;
            0    4     2  executor  Ljava/util/concurrent/Executor;
            2    4     3    output  Lcom/google/common/util/concurrent/AbstractTransformFuture$AsyncTransformFuture<TI;TO;>;
    Signature: <I:Ljava/lang/Object;O:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ListenableFuture<TI;>;Lcom/google/common/util/concurrent/AsyncFunction<-TI;+TO;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture<TO;>;
    MethodParameters:
          Name  Flags
      input     
      function  
      executor  

  static <I, O> com.google.common.util.concurrent.ListenableFuture<O> create(com.google.common.util.concurrent.ListenableFuture<I>, com.google.common.base.Function<? super I, ? extends O>, java.util.concurrent.Executor);
    descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/base/Function;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.google.common.util.concurrent.ListenableFuture input
        start local 1 // com.google.common.base.Function function
        start local 2 // java.util.concurrent.Executor executor
         0: .line 45
            aload 1 /* function */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 46
            new com.google.common.util.concurrent.AbstractTransformFuture$TransformFuture
            dup
            aload 0 /* input */
            aload 1 /* function */
            invokespecial com.google.common.util.concurrent.AbstractTransformFuture$TransformFuture.<init>:(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/base/Function;)V
            astore 3 /* output */
        start local 3 // com.google.common.util.concurrent.AbstractTransformFuture$TransformFuture output
         2: .line 47
            aload 0 /* input */
            aload 3 /* output */
            aload 2 /* executor */
            aload 3 /* output */
            invokestatic com.google.common.util.concurrent.MoreExecutors.rejectionPropagatingExecutor:(Ljava/util/concurrent/Executor;Lcom/google/common/util/concurrent/AbstractFuture;)Ljava/util/concurrent/Executor;
            invokeinterface com.google.common.util.concurrent.ListenableFuture.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
         3: .line 48
            aload 3 /* output */
            areturn
        end local 3 // com.google.common.util.concurrent.AbstractTransformFuture$TransformFuture output
        end local 2 // java.util.concurrent.Executor executor
        end local 1 // com.google.common.base.Function function
        end local 0 // com.google.common.util.concurrent.ListenableFuture input
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0     input  Lcom/google/common/util/concurrent/ListenableFuture<TI;>;
            0    4     1  function  Lcom/google/common/base/Function<-TI;+TO;>;
            0    4     2  executor  Ljava/util/concurrent/Executor;
            2    4     3    output  Lcom/google/common/util/concurrent/AbstractTransformFuture$TransformFuture<TI;TO;>;
    Signature: <I:Ljava/lang/Object;O:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ListenableFuture<TI;>;Lcom/google/common/base/Function<-TI;+TO;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture<TO;>;
    MethodParameters:
          Name  Flags
      input     
      function  
      executor  

  void <init>(com.google.common.util.concurrent.ListenableFuture<? extends I>, );
    descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.google.common.util.concurrent.AbstractTransformFuture this
        start local 1 // com.google.common.util.concurrent.ListenableFuture inputFuture
        start local 2 // java.lang.Object function
         0: .line 58
            aload 0 /* this */
            invokespecial com.google.common.util.concurrent.FluentFuture$TrustedFuture.<init>:()V
         1: .line 59
            aload 0 /* this */
            aload 1 /* inputFuture */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.common.util.concurrent.ListenableFuture
            putfield com.google.common.util.concurrent.AbstractTransformFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
         2: .line 60
            aload 0 /* this */
            aload 2 /* function */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            putfield com.google.common.util.concurrent.AbstractTransformFuture.function:Ljava/lang/Object;
         3: .line 61
            return
        end local 2 // java.lang.Object function
        end local 1 // com.google.common.util.concurrent.ListenableFuture inputFuture
        end local 0 // com.google.common.util.concurrent.AbstractTransformFuture this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/google/common/util/concurrent/AbstractTransformFuture<TI;TO;TF;TT;>;
            0    4     1  inputFuture  Lcom/google/common/util/concurrent/ListenableFuture<+TI;>;
            0    4     2     function  TF;
    Signature: (Lcom/google/common/util/concurrent/ListenableFuture<+TI;>;TF;)V
    MethodParameters:
             Name  Flags
      inputFuture  
      function     

  public final void run();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractTransformFuture this
         0: .line 65
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractTransformFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
            astore 1 /* localInputFuture */
        start local 1 // com.google.common.util.concurrent.ListenableFuture localInputFuture
         1: .line 66
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractTransformFuture.function:Ljava/lang/Object;
            astore 2 /* localFunction */
        start local 2 // java.lang.Object localFunction
         2: .line 67
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AbstractTransformFuture.isCancelled:()Z
            aload 1 /* localInputFuture */
            ifnonnull 3
            iconst_1
            goto 4
      StackMap locals: com.google.common.util.concurrent.AbstractTransformFuture com.google.common.util.concurrent.ListenableFuture java.lang.Object
      StackMap stack: int
         3: iconst_0
      StackMap locals: com.google.common.util.concurrent.AbstractTransformFuture com.google.common.util.concurrent.ListenableFuture java.lang.Object
      StackMap stack: int int
         4: ior
            aload 2 /* localFunction */
            ifnonnull 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: int
         5: iconst_0
      StackMap locals: com.google.common.util.concurrent.AbstractTransformFuture com.google.common.util.concurrent.ListenableFuture java.lang.Object
      StackMap stack: int int
         6: ior
            ifeq 8
         7: .line 68
            return
         8: .line 70
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractTransformFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
         9: .line 72
            aload 1 /* localInputFuture */
            invokeinterface com.google.common.util.concurrent.ListenableFuture.isCancelled:()Z
            ifeq 12
        10: .line 75
            aload 0 /* this */
            aload 1 /* localInputFuture */
            invokevirtual com.google.common.util.concurrent.AbstractTransformFuture.setFuture:(Lcom/google/common/util/concurrent/ListenableFuture;)Z
            pop
        11: .line 76
            return
        12: .line 89
      StackMap locals:
      StackMap stack:
            aload 1 /* localInputFuture */
            invokestatic com.google.common.util.concurrent.Futures.getDone:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
            astore 3 /* sourceResult */
        start local 3 // java.lang.Object sourceResult
        13: .line 90
            goto 26
        end local 3 // java.lang.Object sourceResult
      StackMap locals:
      StackMap stack: java.util.concurrent.CancellationException
        14: pop
        15: .line 96
            aload 0 /* this */
            iconst_0
            invokevirtual com.google.common.util.concurrent.AbstractTransformFuture.cancel:(Z)Z
            pop
        16: .line 97
            return
        17: .line 98
      StackMap locals:
      StackMap stack: java.util.concurrent.ExecutionException
            astore 4 /* e */
        start local 4 // java.util.concurrent.ExecutionException e
        18: .line 100
            aload 0 /* this */
            aload 4 /* e */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            invokevirtual com.google.common.util.concurrent.AbstractTransformFuture.setException:(Ljava/lang/Throwable;)Z
            pop
        19: .line 101
            return
        end local 4 // java.util.concurrent.ExecutionException e
        20: .line 102
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 4 /* e */
        start local 4 // java.lang.RuntimeException e
        21: .line 104
            aload 0 /* this */
            aload 4 /* e */
            invokevirtual com.google.common.util.concurrent.AbstractTransformFuture.setException:(Ljava/lang/Throwable;)Z
            pop
        22: .line 105
            return
        end local 4 // java.lang.RuntimeException e
        23: .line 106
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 4 /* e */
        start local 4 // java.lang.Error e
        24: .line 112
            aload 0 /* this */
            aload 4 /* e */
            invokevirtual com.google.common.util.concurrent.AbstractTransformFuture.setException:(Ljava/lang/Throwable;)Z
            pop
        25: .line 113
            return
        end local 4 // java.lang.Error e
        start local 3 // java.lang.Object sourceResult
        26: .line 118
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 2 /* localFunction */
            aload 3 /* sourceResult */
            invokevirtual com.google.common.util.concurrent.AbstractTransformFuture.doTransform:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* transformResult */
        start local 4 // java.lang.Object transformResult
        27: .line 119
            goto 35
        end local 4 // java.lang.Object transformResult
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 5 /* t */
        start local 5 // java.lang.Throwable t
        29: .line 121
            aload 0 /* this */
            aload 5 /* t */
            invokevirtual com.google.common.util.concurrent.AbstractTransformFuture.setException:(Ljava/lang/Throwable;)Z
            pop
        30: .line 124
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractTransformFuture.function:Ljava/lang/Object;
        31: .line 122
            return
        end local 5 // java.lang.Throwable t
        32: .line 123
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        33: .line 124
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractTransformFuture.function:Ljava/lang/Object;
        34: .line 125
            aload 6
            athrow
        start local 4 // java.lang.Object transformResult
        35: .line 124
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractTransformFuture.function:Ljava/lang/Object;
        36: .line 163
            aload 0 /* this */
            aload 4 /* transformResult */
            invokevirtual com.google.common.util.concurrent.AbstractTransformFuture.setResult:(Ljava/lang/Object;)V
        37: .line 164
            return
        end local 4 // java.lang.Object transformResult
        end local 3 // java.lang.Object sourceResult
        end local 2 // java.lang.Object localFunction
        end local 1 // com.google.common.util.concurrent.ListenableFuture localInputFuture
        end local 0 // com.google.common.util.concurrent.AbstractTransformFuture this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   38     0              this  Lcom/google/common/util/concurrent/AbstractTransformFuture<TI;TO;TF;TT;>;
            1   38     1  localInputFuture  Lcom/google/common/util/concurrent/ListenableFuture<+TI;>;
            2   38     2     localFunction  TF;
           13   14     3      sourceResult  TI;
           26   38     3      sourceResult  TI;
           18   20     4                 e  Ljava/util/concurrent/ExecutionException;
           21   23     4                 e  Ljava/lang/RuntimeException;
           24   26     4                 e  Ljava/lang/Error;
           27   28     4   transformResult  TT;
           35   38     4   transformResult  TT;
           29   32     5                 t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          12    13      14  Class java.util.concurrent.CancellationException
          12    13      17  Class java.util.concurrent.ExecutionException
          12    13      20  Class java.lang.RuntimeException
          12    13      23  Class java.lang.Error
          26    27      28  Class java.lang.Throwable
          26    30      32  any

  abstract T doTransform(F, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0400) ACC_ABSTRACT
    Exceptions:
      throws java.lang.Exception
    Signature: (TF;TI;)TT;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.ForOverride()
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
      METHOD_RETURN
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
          Name  Flags
      function  
      result    

  abstract void setResult();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0400) ACC_ABSTRACT
    Signature: (TT;)V
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.ForOverride()
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
        Name  Flags
      result  

  protected final void afterDone();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractTransformFuture this
         0: .line 176
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractTransformFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
            invokevirtual com.google.common.util.concurrent.AbstractTransformFuture.maybePropagateCancellationTo:(Ljava/util/concurrent/Future;)V
         1: .line 177
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractTransformFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
         2: .line 178
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractTransformFuture.function:Ljava/lang/Object;
         3: .line 179
            return
        end local 0 // com.google.common.util.concurrent.AbstractTransformFuture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/google/common/util/concurrent/AbstractTransformFuture<TI;TO;TF;TT;>;

  protected java.lang.String pendingToString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractTransformFuture this
         0: .line 183
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractTransformFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
            astore 1 /* localInputFuture */
        start local 1 // com.google.common.util.concurrent.ListenableFuture localInputFuture
         1: .line 184
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractTransformFuture.function:Ljava/lang/Object;
            astore 2 /* localFunction */
        start local 2 // java.lang.Object localFunction
         2: .line 185
            aload 0 /* this */
            invokespecial com.google.common.util.concurrent.FluentFuture$TrustedFuture.pendingToString:()Ljava/lang/String;
            astore 3 /* superString */
        start local 3 // java.lang.String superString
         3: .line 186
            ldc ""
            astore 4 /* resultString */
        start local 4 // java.lang.String resultString
         4: .line 187
            aload 1 /* localInputFuture */
            ifnull 6
         5: .line 188
            new java.lang.StringBuilder
            dup
            ldc "inputFuture=["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* localInputFuture */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "], "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* resultString */
         6: .line 190
      StackMap locals: com.google.common.util.concurrent.AbstractTransformFuture com.google.common.util.concurrent.ListenableFuture java.lang.Object java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* localFunction */
            ifnull 8
         7: .line 191
            new java.lang.StringBuilder
            dup
            aload 4 /* resultString */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "function=["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* localFunction */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         8: .line 192
      StackMap locals:
      StackMap stack:
            aload 3 /* superString */
            ifnull 10
         9: .line 193
            new java.lang.StringBuilder
            dup
            aload 4 /* resultString */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* superString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        10: .line 195
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // java.lang.String resultString
        end local 3 // java.lang.String superString
        end local 2 // java.lang.Object localFunction
        end local 1 // com.google.common.util.concurrent.ListenableFuture localInputFuture
        end local 0 // com.google.common.util.concurrent.AbstractTransformFuture this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Lcom/google/common/util/concurrent/AbstractTransformFuture<TI;TO;TF;TT;>;
            1   11     1  localInputFuture  Lcom/google/common/util/concurrent/ListenableFuture<+TI;>;
            2   11     2     localFunction  TF;
            3   11     3       superString  Ljava/lang/String;
            4   11     4      resultString  Ljava/lang/String;
}
Signature: <I:Ljava/lang/Object;O:Ljava/lang/Object;F:Ljava/lang/Object;T:Ljava/lang/Object;>Lcom/google/common/util/concurrent/FluentFuture$TrustedFuture<TO;>;Ljava/lang/Runnable;
SourceFile: "AbstractTransformFuture.java"
NestMembers:
  com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture  com.google.common.util.concurrent.AbstractTransformFuture$TransformFuture
InnerClasses:
  private final AsyncTransformFuture = com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture of com.google.common.util.concurrent.AbstractTransformFuture
  private final TransformFuture = com.google.common.util.concurrent.AbstractTransformFuture$TransformFuture of com.google.common.util.concurrent.AbstractTransformFuture
  abstract TrustedFuture = com.google.common.util.concurrent.FluentFuture$TrustedFuture of com.google.common.util.concurrent.FluentFuture
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtCompatible()