public class org.springframework.util.function.SingletonSupplier<T> implements java.util.function.Supplier<T>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.util.function.SingletonSupplier
super_class: java.lang.Object
{
private final java.util.function.Supplier<? extends T> instanceSupplier;
descriptor: Ljava/util/function/Supplier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/Supplier<+TT;>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private final java.util.function.Supplier<? extends T> defaultSupplier;
descriptor: Ljava/util/function/Supplier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/Supplier<+TT;>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private volatile T singletonInstance;
descriptor: Ljava/lang/Object;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: TT;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void <init>(T, java.util.function.Supplier<? extends T>);
descriptor: (Ljava/lang/Object;Ljava/util/function/Supplier;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield org.springframework.util.function.SingletonSupplier.instanceSupplier:Ljava/util/function/Supplier;
2: aload 0
aload 2
putfield org.springframework.util.function.SingletonSupplier.defaultSupplier:Ljava/util/function/Supplier;
3: aload 0
aload 1
putfield org.springframework.util.function.SingletonSupplier.singletonInstance:Ljava/lang/Object;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/util/function/SingletonSupplier<TT;>;
0 5 1 instance TT;
0 5 2 defaultSupplier Ljava/util/function/Supplier<+TT;>;
Signature: (TT;Ljava/util/function/Supplier<+TT;>;)V
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
instance
defaultSupplier
public void <init>(java.util.function.Supplier<? extends T>, java.util.function.Supplier<? extends T>);
descriptor: (Ljava/util/function/Supplier;Ljava/util/function/Supplier;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.springframework.util.function.SingletonSupplier.instanceSupplier:Ljava/util/function/Supplier;
2: aload 0
aload 2
putfield org.springframework.util.function.SingletonSupplier.defaultSupplier:Ljava/util/function/Supplier;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/util/function/SingletonSupplier<TT;>;
0 4 1 instanceSupplier Ljava/util/function/Supplier<+TT;>;
0 4 2 defaultSupplier Ljava/util/function/Supplier<+TT;>;
Signature: (Ljava/util/function/Supplier<+TT;>;Ljava/util/function/Supplier<+TT;>;)V
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
instanceSupplier
defaultSupplier
private void <init>(java.util.function.Supplier<? extends T>);
descriptor: (Ljava/util/function/Supplier;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.springframework.util.function.SingletonSupplier.instanceSupplier:Ljava/util/function/Supplier;
2: aload 0
aconst_null
putfield org.springframework.util.function.SingletonSupplier.defaultSupplier:Ljava/util/function/Supplier;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/util/function/SingletonSupplier<TT;>;
0 4 1 supplier Ljava/util/function/Supplier<+TT;>;
Signature: (Ljava/util/function/Supplier<+TT;>;)V
MethodParameters:
Name Flags
supplier
private void <init>();
descriptor: (Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield org.springframework.util.function.SingletonSupplier.instanceSupplier:Ljava/util/function/Supplier;
2: aload 0
aconst_null
putfield org.springframework.util.function.SingletonSupplier.defaultSupplier:Ljava/util/function/Supplier;
3: aload 0
aload 1
putfield org.springframework.util.function.SingletonSupplier.singletonInstance:Ljava/lang/Object;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/util/function/SingletonSupplier<TT;>;
0 5 1 singletonInstance TT;
Signature: (TT;)V
MethodParameters:
Name Flags
singletonInstance
public T get();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield org.springframework.util.function.SingletonSupplier.singletonInstance:Ljava/lang/Object;
astore 1
start local 1 1: aload 1
ifnonnull 14
2: aload 0
dup
astore 2
monitorenter
3: aload 0
getfield org.springframework.util.function.SingletonSupplier.singletonInstance:Ljava/lang/Object;
astore 1
4: aload 1
ifnonnull 10
5: aload 0
getfield org.springframework.util.function.SingletonSupplier.instanceSupplier:Ljava/util/function/Supplier;
ifnull 7
6: aload 0
getfield org.springframework.util.function.SingletonSupplier.instanceSupplier:Ljava/util/function/Supplier;
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
astore 1
7: StackMap locals: java.lang.Object org.springframework.util.function.SingletonSupplier
StackMap stack:
aload 1
ifnonnull 9
aload 0
getfield org.springframework.util.function.SingletonSupplier.defaultSupplier:Ljava/util/function/Supplier;
ifnull 9
8: aload 0
getfield org.springframework.util.function.SingletonSupplier.defaultSupplier:Ljava/util/function/Supplier;
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
astore 1
9: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.springframework.util.function.SingletonSupplier.singletonInstance:Ljava/lang/Object;
10: StackMap locals:
StackMap stack:
aload 2
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 2
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/springframework/util/function/SingletonSupplier<TT;>;
1 15 1 instance TT;
Exception table:
from to target type
3 11 12 any
12 13 12 any
Signature: ()TT;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public T obtain();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.util.function.SingletonSupplier.get:()Ljava/lang/Object;
astore 1
start local 1 1: aload 1
ifnull 2
iconst_1
goto 3
StackMap locals: java.lang.Object
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ldc "No instance from Supplier"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/util/function/SingletonSupplier<TT;>;
1 5 1 instance TT;
Signature: ()TT;
public static <T> org.springframework.util.function.SingletonSupplier<T> of(T);
descriptor: (Ljava/lang/Object;)Lorg/springframework/util/function/SingletonSupplier;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.springframework.util.function.SingletonSupplier
dup
aload 0
invokespecial org.springframework.util.function.SingletonSupplier.<init>:(Ljava/lang/Object;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 instance TT;
Signature: <T:Ljava/lang/Object;>(TT;)Lorg/springframework/util/function/SingletonSupplier<TT;>;
MethodParameters:
Name Flags
instance
public static <T> org.springframework.util.function.SingletonSupplier<T> ofNullable(T);
descriptor: (Ljava/lang/Object;)Lorg/springframework/util/function/SingletonSupplier;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
new org.springframework.util.function.SingletonSupplier
dup
aload 0
invokespecial org.springframework.util.function.SingletonSupplier.<init>:(Ljava/lang/Object;)V
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: org.springframework.util.function.SingletonSupplier
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 instance TT;
Signature: <T:Ljava/lang/Object;>(TT;)Lorg/springframework/util/function/SingletonSupplier<TT;>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
instance
public static <T> org.springframework.util.function.SingletonSupplier<T> of(java.util.function.Supplier<T>);
descriptor: (Ljava/util/function/Supplier;)Lorg/springframework/util/function/SingletonSupplier;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.springframework.util.function.SingletonSupplier
dup
aload 0
invokespecial org.springframework.util.function.SingletonSupplier.<init>:(Ljava/util/function/Supplier;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 supplier Ljava/util/function/Supplier<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/util/function/Supplier<TT;>;)Lorg/springframework/util/function/SingletonSupplier<TT;>;
MethodParameters:
Name Flags
supplier
public static <T> org.springframework.util.function.SingletonSupplier<T> ofNullable(java.util.function.Supplier<T>);
descriptor: (Ljava/util/function/Supplier;)Lorg/springframework/util/function/SingletonSupplier;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
new org.springframework.util.function.SingletonSupplier
dup
aload 0
invokespecial org.springframework.util.function.SingletonSupplier.<init>:(Ljava/util/function/Supplier;)V
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: org.springframework.util.function.SingletonSupplier
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 supplier Ljava/util/function/Supplier<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/util/function/Supplier<TT;>;)Lorg/springframework/util/function/SingletonSupplier<TT;>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
supplier
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/function/Supplier<TT;>;
SourceFile: "SingletonSupplier.java"