class com.netflix.hystrix.HystrixObservableCollapser$1 implements com.netflix.hystrix.collapser.HystrixCollapserBridge<BatchReturnType, ResponseType, RequestArgumentType>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.netflix.hystrix.HystrixObservableCollapser$1
super_class: java.lang.Object
{
final com.netflix.hystrix.HystrixObservableCollapser this$0;
descriptor: Lcom/netflix/hystrix/HystrixObservableCollapser;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final com.netflix.hystrix.HystrixObservableCollapser val$self;
descriptor: Lcom/netflix/hystrix/HystrixObservableCollapser;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(com.netflix.hystrix.HystrixObservableCollapser, com.netflix.hystrix.HystrixObservableCollapser);
descriptor: (Lcom/netflix/hystrix/HystrixObservableCollapser;Lcom/netflix/hystrix/HystrixObservableCollapser;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 0: aload 0
aload 1
putfield com.netflix.hystrix.HystrixObservableCollapser$1.this$0:Lcom/netflix/hystrix/HystrixObservableCollapser;
aload 0
aload 2
putfield com.netflix.hystrix.HystrixObservableCollapser$1.val$self:Lcom/netflix/hystrix/HystrixObservableCollapser;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/HystrixObservableCollapser$1;
MethodParameters:
Name Flags
this$0 final
val$self final
public java.util.Collection<java.util.Collection<com.netflix.hystrix.HystrixCollapser$CollapsedRequest<ResponseType, RequestArgumentType>>> shardRequests(java.util.Collection<com.netflix.hystrix.HystrixCollapser$CollapsedRequest<ResponseType, RequestArgumentType>>);
descriptor: (Ljava/util/Collection;)Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.HystrixObservableCollapser$1.val$self:Lcom/netflix/hystrix/HystrixObservableCollapser;
aload 1
invokevirtual com.netflix.hystrix.HystrixObservableCollapser.shardRequests:(Ljava/util/Collection;)Ljava/util/Collection;
astore 2
start local 2 1: aload 0
getfield com.netflix.hystrix.HystrixObservableCollapser$1.val$self:Lcom/netflix/hystrix/HystrixObservableCollapser;
getfield com.netflix.hystrix.HystrixObservableCollapser.metrics:Lcom/netflix/hystrix/HystrixCollapserMetrics;
aload 2
invokeinterface java.util.Collection.size:()I
invokevirtual com.netflix.hystrix.HystrixCollapserMetrics.markShards:(I)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/netflix/hystrix/HystrixObservableCollapser$1;
0 3 1 requests Ljava/util/Collection<Lcom/netflix/hystrix/HystrixCollapser$CollapsedRequest<TResponseType;TRequestArgumentType;>;>;
1 3 2 shards Ljava/util/Collection<Ljava/util/Collection<Lcom/netflix/hystrix/HystrixCollapser$CollapsedRequest<TResponseType;TRequestArgumentType;>;>;>;
Signature: (Ljava/util/Collection<Lcom/netflix/hystrix/HystrixCollapser$CollapsedRequest<TResponseType;TRequestArgumentType;>;>;)Ljava/util/Collection<Ljava/util/Collection<Lcom/netflix/hystrix/HystrixCollapser$CollapsedRequest<TResponseType;TRequestArgumentType;>;>;>;
MethodParameters:
Name Flags
requests
public rx.Observable<BatchReturnType> createObservableCommand(java.util.Collection<com.netflix.hystrix.HystrixCollapser$CollapsedRequest<ResponseType, RequestArgumentType>>);
descriptor: (Ljava/util/Collection;)Lrx/Observable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.HystrixObservableCollapser$1.val$self:Lcom/netflix/hystrix/HystrixObservableCollapser;
aload 1
invokevirtual com.netflix.hystrix.HystrixObservableCollapser.createCommand:(Ljava/util/Collection;)Lcom/netflix/hystrix/HystrixObservableCommand;
astore 2
start local 2 1: aload 2
aload 0
invokevirtual com.netflix.hystrix.HystrixObservableCollapser$1.getCollapserKey:()Lcom/netflix/hystrix/HystrixCollapserKey;
aload 1
invokeinterface java.util.Collection.size:()I
invokevirtual com.netflix.hystrix.HystrixObservableCommand.markAsCollapsedCommand:(Lcom/netflix/hystrix/HystrixCollapserKey;I)V
2: aload 0
getfield com.netflix.hystrix.HystrixObservableCollapser$1.val$self:Lcom/netflix/hystrix/HystrixObservableCollapser;
getfield com.netflix.hystrix.HystrixObservableCollapser.metrics:Lcom/netflix/hystrix/HystrixCollapserMetrics;
aload 1
invokeinterface java.util.Collection.size:()I
invokevirtual com.netflix.hystrix.HystrixCollapserMetrics.markBatch:(I)V
3: aload 2
invokevirtual com.netflix.hystrix.HystrixObservableCommand.toObservable:()Lrx/Observable;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/netflix/hystrix/HystrixObservableCollapser$1;
0 4 1 requests Ljava/util/Collection<Lcom/netflix/hystrix/HystrixCollapser$CollapsedRequest<TResponseType;TRequestArgumentType;>;>;
1 4 2 command Lcom/netflix/hystrix/HystrixObservableCommand<TBatchReturnType;>;
Signature: (Ljava/util/Collection<Lcom/netflix/hystrix/HystrixCollapser$CollapsedRequest<TResponseType;TRequestArgumentType;>;>;)Lrx/Observable<TBatchReturnType;>;
MethodParameters:
Name Flags
requests
public rx.Observable<java.lang.Void> mapResponseToRequests(rx.Observable<BatchReturnType>, java.util.Collection<com.netflix.hystrix.HystrixCollapser$CollapsedRequest<ResponseType, RequestArgumentType>>);
descriptor: (Lrx/Observable;Ljava/util/Collection;)Lrx/Observable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.netflix.hystrix.HystrixObservableCollapser$1.val$self:Lcom/netflix/hystrix/HystrixObservableCollapser;
invokevirtual com.netflix.hystrix.HystrixObservableCollapser.getRequestArgumentKeySelector:()Lrx/functions/Func1;
astore 3
start local 3 1: aload 0
getfield com.netflix.hystrix.HystrixObservableCollapser$1.val$self:Lcom/netflix/hystrix/HystrixObservableCollapser;
invokevirtual com.netflix.hystrix.HystrixObservableCollapser.getBatchReturnTypeKeySelector:()Lrx/functions/Func1;
astore 4
start local 4 2: aload 0
getfield com.netflix.hystrix.HystrixObservableCollapser$1.val$self:Lcom/netflix/hystrix/HystrixObservableCollapser;
invokevirtual com.netflix.hystrix.HystrixObservableCollapser.getBatchReturnTypeToResponseTypeMapper:()Lrx/functions/Func1;
astore 5
start local 5 3: new java.util.HashMap
dup
aload 2
invokeinterface java.util.Collection.size:()I
invokespecial java.util.HashMap.<init>:(I)V
astore 6
start local 6 4: aload 2
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 8
goto 8
StackMap locals: com.netflix.hystrix.HystrixObservableCollapser$1 rx.Observable java.util.Collection rx.functions.Func1 rx.functions.Func1 rx.functions.Func1 java.util.Map top java.util.Iterator
StackMap stack:
5: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.netflix.hystrix.HystrixCollapser$CollapsedRequest
astore 7
start local 7 6: aload 3
aload 7
invokeinterface com.netflix.hystrix.HystrixCollapser$CollapsedRequest.getArgument:()Ljava/lang/Object;
invokeinterface rx.functions.Func1.call:(Ljava/lang/Object;)Ljava/lang/Object;
astore 9
start local 9 7: aload 6
aload 9
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 9 end local 7 8: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
9: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 7
start local 7 10: aload 1
11: new com.netflix.hystrix.HystrixObservableCollapser$1$1
dup
aload 0
aload 4
aload 6
aload 5
aload 7
invokespecial com.netflix.hystrix.HystrixObservableCollapser$1$1.<init>:(Lcom/netflix/hystrix/HystrixObservableCollapser$1;Lrx/functions/Func1;Ljava/util/Map;Lrx/functions/Func1;Ljava/util/Set;)V
invokevirtual rx.Observable.doOnNext:(Lrx/functions/Action1;)Lrx/Observable;
12: new com.netflix.hystrix.HystrixObservableCollapser$1$2
dup
aload 0
aload 6
invokespecial com.netflix.hystrix.HystrixObservableCollapser$1$2.<init>:(Lcom/netflix/hystrix/HystrixObservableCollapser$1;Ljava/util/Map;)V
invokevirtual rx.Observable.doOnError:(Lrx/functions/Action1;)Lrx/Observable;
13: new com.netflix.hystrix.HystrixObservableCollapser$1$3
dup
aload 0
aload 6
aload 7
invokespecial com.netflix.hystrix.HystrixObservableCollapser$1$3.<init>:(Lcom/netflix/hystrix/HystrixObservableCollapser$1;Ljava/util/Map;Ljava/util/Set;)V
invokevirtual rx.Observable.doOnCompleted:(Lrx/functions/Action0;)Lrx/Observable;
14: invokevirtual rx.Observable.ignoreElements:()Lrx/Observable;
ldc Ljava/lang/Void;
invokevirtual rx.Observable.cast:(Ljava/lang/Class;)Lrx/Observable;
15: areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/netflix/hystrix/HystrixObservableCollapser$1;
0 16 1 batchResponse Lrx/Observable<TBatchReturnType;>;
0 16 2 requests Ljava/util/Collection<Lcom/netflix/hystrix/HystrixCollapser$CollapsedRequest<TResponseType;TRequestArgumentType;>;>;
1 16 3 requestKeySelector Lrx/functions/Func1<TRequestArgumentType;TK;>;
2 16 4 batchResponseKeySelector Lrx/functions/Func1<TBatchReturnType;TK;>;
3 16 5 mapBatchTypeToResponseType Lrx/functions/Func1<TBatchReturnType;TResponseType;>;
4 16 6 requestsByKey Ljava/util/Map<TK;Lcom/netflix/hystrix/HystrixCollapser$CollapsedRequest<TResponseType;TRequestArgumentType;>;>;
6 8 7 cr Lcom/netflix/hystrix/HystrixCollapser$CollapsedRequest<TResponseType;TRequestArgumentType;>;
7 8 9 requestArg TK;
10 16 7 seenKeys Ljava/util/Set<TK;>;
Signature: (Lrx/Observable<TBatchReturnType;>;Ljava/util/Collection<Lcom/netflix/hystrix/HystrixCollapser$CollapsedRequest<TResponseType;TRequestArgumentType;>;>;)Lrx/Observable<Ljava/lang/Void;>;
MethodParameters:
Name Flags
batchResponse
requests
public com.netflix.hystrix.HystrixCollapserKey getCollapserKey();
descriptor: ()Lcom/netflix/hystrix/HystrixCollapserKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.HystrixObservableCollapser$1.val$self:Lcom/netflix/hystrix/HystrixObservableCollapser;
invokevirtual com.netflix.hystrix.HystrixObservableCollapser.getCollapserKey:()Lcom/netflix/hystrix/HystrixCollapserKey;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/HystrixObservableCollapser$1;
static com.netflix.hystrix.HystrixObservableCollapser access$0(com.netflix.hystrix.HystrixObservableCollapser$1);
descriptor: (Lcom/netflix/hystrix/HystrixObservableCollapser$1;)Lcom/netflix/hystrix/HystrixObservableCollapser;
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
getfield com.netflix.hystrix.HystrixObservableCollapser$1.this$0:Lcom/netflix/hystrix/HystrixObservableCollapser;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Lcom/netflix/hystrix/collapser/HystrixCollapserBridge<TBatchReturnType;TResponseType;TRequestArgumentType;>;
SourceFile: "HystrixObservableCollapser.java"
EnclosingMethod: com.netflix.hystrix.HystrixObservableCollapser.<init>:(Lcom/netflix/hystrix/HystrixCollapserKey;Lcom/netflix/hystrix/HystrixObservableCollapser$Scope;Lcom/netflix/hystrix/collapser/CollapserTimer;Lcom/netflix/hystrix/HystrixCollapserProperties$Setter;Lcom/netflix/hystrix/HystrixCollapserMetrics;)V
NestHost: com.netflix.hystrix.HystrixObservableCollapser
InnerClasses:
public abstract CollapsedRequest = com.netflix.hystrix.HystrixCollapser$CollapsedRequest of com.netflix.hystrix.HystrixCollapser
public Setter = com.netflix.hystrix.HystrixCollapserProperties$Setter of com.netflix.hystrix.HystrixCollapserProperties
com.netflix.hystrix.HystrixObservableCollapser$1
com.netflix.hystrix.HystrixObservableCollapser$1$1
com.netflix.hystrix.HystrixObservableCollapser$1$2
com.netflix.hystrix.HystrixObservableCollapser$1$3
public final Scope = com.netflix.hystrix.HystrixObservableCollapser$Scope of com.netflix.hystrix.HystrixObservableCollapser