public class com.google.common.util.concurrent.ClosingFuture$Combiner
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.google.common.util.concurrent.ClosingFuture$Combiner
super_class: java.lang.Object
{
private final com.google.common.util.concurrent.ClosingFuture$CloseableList closeables;
descriptor: Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean allMustSucceed;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected final com.google.common.collect.ImmutableList<com.google.common.util.concurrent.ClosingFuture<?>> inputs;
descriptor: Lcom/google/common/collect/ImmutableList;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Lcom/google/common/collect/ImmutableList<Lcom/google/common/util/concurrent/ClosingFuture<*>;>;
private static final com.google.common.base.Function<com.google.common.util.concurrent.ClosingFuture<?>, com.google.common.util.concurrent.FluentFuture<?>> INNER_FUTURE;
descriptor: Lcom/google/common/base/Function;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/common/base/Function<Lcom/google/common/util/concurrent/ClosingFuture<*>;Lcom/google/common/util/concurrent/FluentFuture<*>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new com.google.common.util.concurrent.ClosingFuture$Combiner$1
dup
invokespecial com.google.common.util.concurrent.ClosingFuture$Combiner$1.<init>:()V
1: putstatic com.google.common.util.concurrent.ClosingFuture$Combiner.INNER_FUTURE:Lcom/google/common/base/Function;
2: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(boolean, java.lang.Iterable<? extends com.google.common.util.concurrent.ClosingFuture<?>>);
descriptor: (ZLjava/lang/Iterable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new com.google.common.util.concurrent.ClosingFuture$CloseableList
dup
invokespecial com.google.common.util.concurrent.ClosingFuture$CloseableList.<init>:()V
putfield com.google.common.util.concurrent.ClosingFuture$Combiner.closeables:Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
2: aload 0
iload 1
putfield com.google.common.util.concurrent.ClosingFuture$Combiner.allMustSucceed:Z
3: aload 0
aload 2
invokestatic com.google.common.collect.ImmutableList.copyOf:(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
putfield com.google.common.util.concurrent.ClosingFuture$Combiner.inputs:Lcom/google/common/collect/ImmutableList;
4: aload 2
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: com.google.common.util.concurrent.ClosingFuture$Combiner int java.lang.Iterable top java.util.Iterator
StackMap stack:
5: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.google.common.util.concurrent.ClosingFuture
astore 3
start local 3 6: aload 3
aload 0
getfield com.google.common.util.concurrent.ClosingFuture$Combiner.closeables:Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
invokevirtual com.google.common.util.concurrent.ClosingFuture.becomeSubsumedInto:(Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;)V
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
0 9 1 allMustSucceed Z
0 9 2 inputs Ljava/lang/Iterable<+Lcom/google/common/util/concurrent/ClosingFuture<*>;>;
6 7 3 input Lcom/google/common/util/concurrent/ClosingFuture<*>;
Signature: (ZLjava/lang/Iterable<+Lcom/google/common/util/concurrent/ClosingFuture<*>;>;)V
MethodParameters:
Name Flags
allMustSucceed
inputs
public <V> com.google.common.util.concurrent.ClosingFuture<V> call(com.google.common.util.concurrent.ClosingFuture$Combiner$CombiningCallable<V>, java.util.concurrent.Executor);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture$Combiner$CombiningCallable;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new com.google.common.util.concurrent.ClosingFuture$Combiner$2
dup
aload 0
aload 1
invokespecial com.google.common.util.concurrent.ClosingFuture$Combiner$2.<init>:(Lcom/google/common/util/concurrent/ClosingFuture$Combiner;Lcom/google/common/util/concurrent/ClosingFuture$Combiner$CombiningCallable;)V
1: astore 3
start local 3 2: new com.google.common.util.concurrent.ClosingFuture
dup
aload 0
invokevirtual com.google.common.util.concurrent.ClosingFuture$Combiner.futureCombiner:()Lcom/google/common/util/concurrent/Futures$FutureCombiner;
aload 3
aload 2
invokevirtual com.google.common.util.concurrent.Futures$FutureCombiner.call:(Ljava/util/concurrent/Callable;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture;
invokespecial com.google.common.util.concurrent.ClosingFuture.<init>:(Lcom/google/common/util/concurrent/ListenableFuture;)V
astore 4
start local 4 3: aload 4
getfield com.google.common.util.concurrent.ClosingFuture.closeables:Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
aload 0
getfield com.google.common.util.concurrent.ClosingFuture$Combiner.closeables:Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
invokevirtual com.google.common.util.concurrent.ClosingFuture$CloseableList.add:(Ljava/lang/AutoCloseable;Ljava/util/concurrent/Executor;)V
4: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
0 5 1 combiningCallable Lcom/google/common/util/concurrent/ClosingFuture$Combiner$CombiningCallable<TV;>;
0 5 2 executor Ljava/util/concurrent/Executor;
2 5 3 callable Ljava/util/concurrent/Callable<TV;>;
3 5 4 derived Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
Signature: <V:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ClosingFuture$Combiner$CombiningCallable<TV;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
MethodParameters:
Name Flags
combiningCallable final
executor
public <V> com.google.common.util.concurrent.ClosingFuture<V> callAsync(com.google.common.util.concurrent.ClosingFuture$Combiner$AsyncCombiningCallable<V>, java.util.concurrent.Executor);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture$Combiner$AsyncCombiningCallable;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new com.google.common.util.concurrent.ClosingFuture$Combiner$3
dup
aload 0
aload 1
invokespecial com.google.common.util.concurrent.ClosingFuture$Combiner$3.<init>:(Lcom/google/common/util/concurrent/ClosingFuture$Combiner;Lcom/google/common/util/concurrent/ClosingFuture$Combiner$AsyncCombiningCallable;)V
1: astore 3
start local 3 2: new com.google.common.util.concurrent.ClosingFuture
dup
aload 0
invokevirtual com.google.common.util.concurrent.ClosingFuture$Combiner.futureCombiner:()Lcom/google/common/util/concurrent/Futures$FutureCombiner;
aload 3
aload 2
invokevirtual com.google.common.util.concurrent.Futures$FutureCombiner.callAsync:(Lcom/google/common/util/concurrent/AsyncCallable;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture;
invokespecial com.google.common.util.concurrent.ClosingFuture.<init>:(Lcom/google/common/util/concurrent/ListenableFuture;)V
3: astore 4
start local 4 4: aload 4
getfield com.google.common.util.concurrent.ClosingFuture.closeables:Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
aload 0
getfield com.google.common.util.concurrent.ClosingFuture$Combiner.closeables:Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
invokevirtual com.google.common.util.concurrent.ClosingFuture$CloseableList.add:(Ljava/lang/AutoCloseable;Ljava/util/concurrent/Executor;)V
5: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
0 6 1 combiningCallable Lcom/google/common/util/concurrent/ClosingFuture$Combiner$AsyncCombiningCallable<TV;>;
0 6 2 executor Ljava/util/concurrent/Executor;
2 6 3 asyncCallable Lcom/google/common/util/concurrent/AsyncCallable<TV;>;
4 6 4 derived Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
Signature: <V:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ClosingFuture$Combiner$AsyncCombiningCallable<TV;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
MethodParameters:
Name Flags
combiningCallable final
executor
private com.google.common.util.concurrent.Futures$FutureCombiner<java.lang.Object> futureCombiner();
descriptor: ()Lcom/google/common/util/concurrent/Futures$FutureCombiner;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.ClosingFuture$Combiner.allMustSucceed:Z
ifeq 2
1: aload 0
invokevirtual com.google.common.util.concurrent.ClosingFuture$Combiner.inputFutures:()Lcom/google/common/collect/ImmutableList;
invokestatic com.google.common.util.concurrent.Futures.whenAllSucceed:(Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/Futures$FutureCombiner;
goto 3
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.util.concurrent.ClosingFuture$Combiner.inputFutures:()Lcom/google/common/collect/ImmutableList;
invokestatic com.google.common.util.concurrent.Futures.whenAllComplete:(Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/Futures$FutureCombiner;
3: StackMap locals:
StackMap stack: com.google.common.util.concurrent.Futures$FutureCombiner
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
Signature: ()Lcom/google/common/util/concurrent/Futures$FutureCombiner<Ljava/lang/Object;>;
private com.google.common.collect.ImmutableList<com.google.common.util.concurrent.FluentFuture<?>> inputFutures();
descriptor: ()Lcom/google/common/collect/ImmutableList;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.ClosingFuture$Combiner.inputs:Lcom/google/common/collect/ImmutableList;
invokestatic com.google.common.collect.FluentIterable.from:(Ljava/lang/Iterable;)Lcom/google/common/collect/FluentIterable;
getstatic com.google.common.util.concurrent.ClosingFuture$Combiner.INNER_FUTURE:Lcom/google/common/base/Function;
invokevirtual com.google.common.collect.FluentIterable.transform:(Lcom/google/common/base/Function;)Lcom/google/common/collect/FluentIterable;
invokevirtual com.google.common.collect.FluentIterable.toList:()Lcom/google/common/collect/ImmutableList;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
Signature: ()Lcom/google/common/collect/ImmutableList<Lcom/google/common/util/concurrent/FluentFuture<*>;>;
}
SourceFile: "ClosingFuture.java"
NestHost: com.google.common.util.concurrent.ClosingFuture
InnerClasses:
private final CloseableList = com.google.common.util.concurrent.ClosingFuture$CloseableList of com.google.common.util.concurrent.ClosingFuture
public Combiner = com.google.common.util.concurrent.ClosingFuture$Combiner of com.google.common.util.concurrent.ClosingFuture
com.google.common.util.concurrent.ClosingFuture$Combiner$1
com.google.common.util.concurrent.ClosingFuture$Combiner$2
com.google.common.util.concurrent.ClosingFuture$Combiner$3
public abstract AsyncCombiningCallable = com.google.common.util.concurrent.ClosingFuture$Combiner$AsyncCombiningCallable of com.google.common.util.concurrent.ClosingFuture$Combiner
public abstract CombiningCallable = com.google.common.util.concurrent.ClosingFuture$Combiner$CombiningCallable of com.google.common.util.concurrent.ClosingFuture$Combiner
public final FutureCombiner = com.google.common.util.concurrent.Futures$FutureCombiner of com.google.common.util.concurrent.Futures
RuntimeVisibleAnnotations:
com.google.errorprone.annotations.DoNotMock(value = "Use ClosingFuture.whenAllSucceed() or .whenAllComplete() instead.")