final class reactor.core.publisher.MonoUsingWhen<T, S> extends reactor.core.publisher.Mono<T> implements reactor.core.publisher.SourceProducer<T>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: reactor.core.publisher.MonoUsingWhen
super_class: reactor.core.publisher.Mono
{
final org.reactivestreams.Publisher<S> resourceSupplier;
descriptor: Lorg/reactivestreams/Publisher;
flags: (0x0010) ACC_FINAL
Signature: Lorg/reactivestreams/Publisher<TS;>;
final java.util.function.Function<? super S, ? extends reactor.core.publisher.Mono<? extends T>> resourceClosure;
descriptor: Ljava/util/function/Function;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/function/Function<-TS;+Lreactor/core/publisher/Mono<+TT;>;>;
final java.util.function.Function<? super S, ? extends org.reactivestreams.Publisher<?>> asyncComplete;
descriptor: Ljava/util/function/Function;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/function/Function<-TS;+Lorg/reactivestreams/Publisher<*>;>;
final java.util.function.BiFunction<? super S, ? super java.lang.Throwable, ? extends org.reactivestreams.Publisher<?>> asyncError;
descriptor: Ljava/util/function/BiFunction;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/function/BiFunction<-TS;-Ljava/lang/Throwable;+Lorg/reactivestreams/Publisher<*>;>;
final java.util.function.Function<? super S, ? extends org.reactivestreams.Publisher<?>> asyncCancel;
descriptor: Ljava/util/function/Function;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/function/Function<-TS;+Lorg/reactivestreams/Publisher<*>;>;
RuntimeVisibleAnnotations:
reactor.util.annotation.Nullable()
void <init>(org.reactivestreams.Publisher<S>, java.util.function.Function<? super S, ? extends reactor.core.publisher.Mono<? extends T>>, java.util.function.Function<? super S, ? extends org.reactivestreams.Publisher<?>>, java.util.function.BiFunction<? super S, ? super java.lang.Throwable, ? extends org.reactivestreams.Publisher<?>>, java.util.function.Function<? super S, ? extends org.reactivestreams.Publisher<?>>);
descriptor: (Lorg/reactivestreams/Publisher;Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BiFunction;Ljava/util/function/Function;)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial reactor.core.publisher.Mono.<init>:()V
1: aload 0
aload 1
ldc "resourceSupplier"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast org.reactivestreams.Publisher
putfield reactor.core.publisher.MonoUsingWhen.resourceSupplier:Lorg/reactivestreams/Publisher;
2: aload 0
aload 2
ldc "resourceClosure"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.util.function.Function
putfield reactor.core.publisher.MonoUsingWhen.resourceClosure:Ljava/util/function/Function;
3: aload 0
aload 3
ldc "asyncComplete"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.util.function.Function
putfield reactor.core.publisher.MonoUsingWhen.asyncComplete:Ljava/util/function/Function;
4: aload 0
aload 4
ldc "asyncError"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.util.function.BiFunction
putfield reactor.core.publisher.MonoUsingWhen.asyncError:Ljava/util/function/BiFunction;
5: aload 0
aload 5
putfield reactor.core.publisher.MonoUsingWhen.asyncCancel:Ljava/util/function/Function;
6: return
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 7 0 this Lreactor/core/publisher/MonoUsingWhen<TT;TS;>;
0 7 1 resourceSupplier Lorg/reactivestreams/Publisher<TS;>;
0 7 2 resourceClosure Ljava/util/function/Function<-TS;+Lreactor/core/publisher/Mono<+TT;>;>;
0 7 3 asyncComplete Ljava/util/function/Function<-TS;+Lorg/reactivestreams/Publisher<*>;>;
0 7 4 asyncError Ljava/util/function/BiFunction<-TS;-Ljava/lang/Throwable;+Lorg/reactivestreams/Publisher<*>;>;
0 7 5 asyncCancel Ljava/util/function/Function<-TS;+Lorg/reactivestreams/Publisher<*>;>;
Signature: (Lorg/reactivestreams/Publisher<TS;>;Ljava/util/function/Function<-TS;+Lreactor/core/publisher/Mono<+TT;>;>;Ljava/util/function/Function<-TS;+Lorg/reactivestreams/Publisher<*>;>;Ljava/util/function/BiFunction<-TS;-Ljava/lang/Throwable;+Lorg/reactivestreams/Publisher<*>;>;Ljava/util/function/Function<-TS;+Lorg/reactivestreams/Publisher<*>;>;)V
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
4:
reactor.util.annotation.Nullable()
MethodParameters:
Name Flags
resourceSupplier
resourceClosure
asyncComplete
asyncError
asyncCancel
public void subscribe(reactor.core.CoreSubscriber<? super T>);
descriptor: (Lreactor/core/CoreSubscriber;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield reactor.core.publisher.MonoUsingWhen.resourceSupplier:Lorg/reactivestreams/Publisher;
instanceof java.util.concurrent.Callable
ifeq 19
1: aload 0
getfield reactor.core.publisher.MonoUsingWhen.resourceSupplier:Lorg/reactivestreams/Publisher;
checkcast java.util.concurrent.Callable
astore 2
start local 2 2: aload 2
invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
astore 3
start local 3 3: aload 3
ifnonnull 6
4: aload 1
invokestatic reactor.core.publisher.Operators.complete:(Lorg/reactivestreams/Subscriber;)V
5: goto 18
6: StackMap locals: java.util.concurrent.Callable java.lang.Object
StackMap stack:
aload 3
aload 0
getfield reactor.core.publisher.MonoUsingWhen.resourceClosure:Ljava/util/function/Function;
invokestatic reactor.core.publisher.MonoUsingWhen.deriveMonoFromResource:(Ljava/lang/Object;Ljava/util/function/Function;)Lreactor/core/publisher/Mono;
astore 4
start local 4 7: aload 3
8: aload 1
9: aload 0
getfield reactor.core.publisher.MonoUsingWhen.asyncComplete:Ljava/util/function/Function;
10: aload 0
getfield reactor.core.publisher.MonoUsingWhen.asyncError:Ljava/util/function/BiFunction;
11: aload 0
getfield reactor.core.publisher.MonoUsingWhen.asyncCancel:Ljava/util/function/Function;
12: aconst_null
13: invokestatic reactor.core.publisher.MonoUsingWhen.prepareSubscriberForResource:(Ljava/lang/Object;Lreactor/core/CoreSubscriber;Ljava/util/function/Function;Ljava/util/function/BiFunction;Ljava/util/function/Function;Lreactor/core/publisher/Operators$DeferredSubscription;)Lreactor/core/publisher/MonoUsingWhen$MonoUsingWhenSubscriber;
astore 5
start local 5 14: aload 4
aload 5
invokevirtual reactor.core.publisher.Mono.subscribe:(Lreactor/core/CoreSubscriber;)V
end local 5 end local 4 end local 3 end local 2 15: goto 18
16: StackMap locals: reactor.core.publisher.MonoUsingWhen reactor.core.CoreSubscriber
StackMap stack: java.lang.Throwable
astore 2
start local 2 17: aload 1
aload 2
invokestatic reactor.core.publisher.Operators.error:(Lorg/reactivestreams/Subscriber;Ljava/lang/Throwable;)V
end local 2 18: StackMap locals:
StackMap stack:
return
19: StackMap locals:
StackMap stack:
aload 0
getfield reactor.core.publisher.MonoUsingWhen.resourceSupplier:Lorg/reactivestreams/Publisher;
new reactor.core.publisher.MonoUsingWhen$ResourceSubscriber
dup
aload 1
aload 0
getfield reactor.core.publisher.MonoUsingWhen.resourceClosure:Ljava/util/function/Function;
20: aload 0
getfield reactor.core.publisher.MonoUsingWhen.asyncComplete:Ljava/util/function/Function;
aload 0
getfield reactor.core.publisher.MonoUsingWhen.asyncError:Ljava/util/function/BiFunction;
aload 0
getfield reactor.core.publisher.MonoUsingWhen.asyncCancel:Ljava/util/function/Function;
21: aload 0
getfield reactor.core.publisher.MonoUsingWhen.resourceSupplier:Lorg/reactivestreams/Publisher;
instanceof reactor.core.publisher.Mono
invokespecial reactor.core.publisher.MonoUsingWhen$ResourceSubscriber.<init>:(Lreactor/core/CoreSubscriber;Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BiFunction;Ljava/util/function/Function;Z)V
22: invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
23: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lreactor/core/publisher/MonoUsingWhen<TT;TS;>;
0 24 1 actual Lreactor/core/CoreSubscriber<-TT;>;
2 15 2 resourceCallable Ljava/util/concurrent/Callable<TS;>;
3 15 3 resource TS;
7 15 4 p Lreactor/core/publisher/Mono<+TT;>;
14 15 5 subscriber Lreactor/core/publisher/FluxUsingWhen$UsingWhenSubscriber<-TT;TS;>;
17 18 2 e Ljava/lang/Throwable;
Exception table:
from to target type
1 15 16 Class java.lang.Throwable
Signature: (Lreactor/core/CoreSubscriber<-TT;>;)V
MethodParameters:
Name Flags
actual
public java.lang.Object scanUnsafe(reactor.core.Scannable$Attr);
descriptor: (Lreactor/core/Scannable$Attr;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic reactor.core.Scannable$Attr.RUN_STYLE:Lreactor/core/Scannable$Attr;
if_acmpne 1
getstatic reactor.core.Scannable$Attr$RunStyle.SYNC:Lreactor/core/Scannable$Attr$RunStyle;
areturn
1: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lreactor/core/publisher/MonoUsingWhen<TT;TS;>;
0 2 1 key Lreactor/core/Scannable$Attr;
MethodParameters:
Name Flags
key
private static <RESOURCE, T> reactor.core.publisher.Mono<? extends T> deriveMonoFromResource(RESOURCE, java.util.function.Function<? super RESOURCE, ? extends reactor.core.publisher.Mono<? extends T>>);
descriptor: (Ljava/lang/Object;Ljava/util/function/Function;)Lreactor/core/publisher/Mono;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast reactor.core.publisher.Mono
1: ldc "The resourceClosure function returned a null value"
2: invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast reactor.core.publisher.Mono
astore 2
start local 2 3: goto 6
end local 2 4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
start local 3 5: aload 3
invokestatic reactor.core.publisher.Mono.error:(Ljava/lang/Throwable;)Lreactor/core/publisher/Mono;
astore 2
end local 3 start local 2 6: StackMap locals: reactor.core.publisher.Mono
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 resource TRESOURCE;
0 7 1 resourceClosure Ljava/util/function/Function<-TRESOURCE;+Lreactor/core/publisher/Mono<+TT;>;>;
3 4 2 p Lreactor/core/publisher/Mono<+TT;>;
6 7 2 p Lreactor/core/publisher/Mono<+TT;>;
5 6 3 e Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.lang.Throwable
Signature: <RESOURCE:Ljava/lang/Object;T:Ljava/lang/Object;>(TRESOURCE;Ljava/util/function/Function<-TRESOURCE;+Lreactor/core/publisher/Mono<+TT;>;>;)Lreactor/core/publisher/Mono<+TT;>;
MethodParameters:
Name Flags
resource
resourceClosure
private static <RESOURCE, T> reactor.core.publisher.MonoUsingWhen$MonoUsingWhenSubscriber<? super T, RESOURCE> prepareSubscriberForResource(RESOURCE, reactor.core.CoreSubscriber<? super T>, java.util.function.Function<? super RESOURCE, ? extends org.reactivestreams.Publisher<?>>, java.util.function.BiFunction<? super RESOURCE, ? super java.lang.Throwable, ? extends org.reactivestreams.Publisher<?>>, java.util.function.Function<? super RESOURCE, ? extends org.reactivestreams.Publisher<?>>, reactor.core.publisher.Operators$DeferredSubscription);
descriptor: (Ljava/lang/Object;Lreactor/core/CoreSubscriber;Ljava/util/function/Function;Ljava/util/function/BiFunction;Ljava/util/function/Function;Lreactor/core/publisher/Operators$DeferredSubscription;)Lreactor/core/publisher/MonoUsingWhen$MonoUsingWhenSubscriber;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new reactor.core.publisher.MonoUsingWhen$MonoUsingWhenSubscriber
dup
aload 1
1: aload 0
2: aload 2
3: aload 3
4: aload 4
5: aload 5
6: invokespecial reactor.core.publisher.MonoUsingWhen$MonoUsingWhenSubscriber.<init>:(Lreactor/core/CoreSubscriber;Ljava/lang/Object;Ljava/util/function/Function;Ljava/util/function/BiFunction;Ljava/util/function/Function;Lreactor/core/publisher/Operators$DeferredSubscription;)V
areturn
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 7 0 resource TRESOURCE;
0 7 1 actual Lreactor/core/CoreSubscriber<-TT;>;
0 7 2 asyncComplete Ljava/util/function/Function<-TRESOURCE;+Lorg/reactivestreams/Publisher<*>;>;
0 7 3 asyncError Ljava/util/function/BiFunction<-TRESOURCE;-Ljava/lang/Throwable;+Lorg/reactivestreams/Publisher<*>;>;
0 7 4 asyncCancel Ljava/util/function/Function<-TRESOURCE;+Lorg/reactivestreams/Publisher<*>;>;
0 7 5 arbiter Lreactor/core/publisher/Operators$DeferredSubscription;
Signature: <RESOURCE:Ljava/lang/Object;T:Ljava/lang/Object;>(TRESOURCE;Lreactor/core/CoreSubscriber<-TT;>;Ljava/util/function/Function<-TRESOURCE;+Lorg/reactivestreams/Publisher<*>;>;Ljava/util/function/BiFunction<-TRESOURCE;-Ljava/lang/Throwable;+Lorg/reactivestreams/Publisher<*>;>;Ljava/util/function/Function<-TRESOURCE;+Lorg/reactivestreams/Publisher<*>;>;Lreactor/core/publisher/Operators$DeferredSubscription;)Lreactor/core/publisher/MonoUsingWhen$MonoUsingWhenSubscriber<-TT;TRESOURCE;>;
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
4:
reactor.util.annotation.Nullable()
5:
reactor.util.annotation.Nullable()
MethodParameters:
Name Flags
resource
actual
asyncComplete
asyncError
asyncCancel
arbiter
}
Signature: <T:Ljava/lang/Object;S:Ljava/lang/Object;>Lreactor/core/publisher/Mono<TT;>;Lreactor/core/publisher/SourceProducer<TT;>;
SourceFile: "MonoUsingWhen.java"
NestMembers:
reactor.core.publisher.MonoUsingWhen$MonoUsingWhenSubscriber reactor.core.publisher.MonoUsingWhen$ResourceSubscriber
InnerClasses:
public Attr = reactor.core.Scannable$Attr of reactor.core.Scannable
public final RunStyle = reactor.core.Scannable$Attr$RunStyle of reactor.core.Scannable$Attr
MonoUsingWhenSubscriber = reactor.core.publisher.MonoUsingWhen$MonoUsingWhenSubscriber of reactor.core.publisher.MonoUsingWhen
ResourceSubscriber = reactor.core.publisher.MonoUsingWhen$ResourceSubscriber of reactor.core.publisher.MonoUsingWhen
public DeferredSubscription = reactor.core.publisher.Operators$DeferredSubscription of reactor.core.publisher.Operators