class org.jdbi.v3.sqlobject.SqlMethodHandlerFactory implements org.jdbi.v3.sqlobject.HandlerFactory
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.jdbi.v3.sqlobject.SqlMethodHandlerFactory
super_class: java.lang.Object
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jdbi/v3/sqlobject/SqlMethodHandlerFactory;
public java.util.Optional<org.jdbi.v3.sqlobject.Handler> buildHandler(java.lang.Class<?>, java.lang.reflect.Method);
descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/util/Optional;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.lang.reflect.Method.getAnnotations:()[Ljava/lang/annotation/Annotation;
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
1: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/lang/annotation/Annotation.annotationType()Ljava/lang/Class; (9 itf)
(Ljava/lang/annotation/Annotation;)Ljava/lang/Class;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
2: invokedynamic test()Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
org/jdbi/v3/sqlobject/SqlMethodHandlerFactory.lambda$1(Ljava/lang/Class;)Z (6)
(Ljava/lang/Class;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
3: invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.List
4: astore 3
start local 3 5: aload 3
invokeinterface java.util.List.isEmpty:()Z
ifeq 7
6: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
7: StackMap locals: java.util.List
StackMap stack:
aload 3
invokeinterface java.util.List.size:()I
iconst_1
if_icmple 15
8: new java.lang.IllegalStateException
dup
9: ldc "Mutually exclusive annotations on method %s.%s: %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
10: aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_1
11: aload 2
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aastore
dup
iconst_2
12: aload 3
aastore
13: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
14: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.reflect.Method.isDefault:()Z
ifeq 22
aload 2
invokevirtual java.lang.reflect.Method.isSynthetic:()Z
ifne 22
16: new java.lang.IllegalStateException
dup
17: ldc "Default method %s.%s has @%s annotation. SQL object methods may be default, or have a SQL method annotation, but not both."
iconst_3
anewarray java.lang.Object
dup
iconst_0
18: aload 1
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_1
19: aload 2
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aastore
dup
iconst_2
20: aload 3
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Class
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
21: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
23: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/jdbi/v3/sqlobject/SqlMethodHandlerFactory.lambda$2(Ljava/lang/Class;)Lorg/jdbi/v3/sqlobject/SqlOperation; (6)
(Ljava/lang/Class;)Lorg/jdbi/v3/sqlobject/SqlOperation;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
24: aload 0
aload 1
aload 2
invokedynamic apply(Lorg/jdbi/v3/sqlobject/SqlMethodHandlerFactory;Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/jdbi/v3/sqlobject/SqlMethodHandlerFactory.lambda$3(Ljava/lang/Class;Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/SqlOperation;)Lorg/jdbi/v3/sqlobject/Handler; (7)
(Lorg/jdbi/v3/sqlobject/SqlOperation;)Lorg/jdbi/v3/sqlobject/Handler;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
25: invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
26: aload 1
aload 2
invokedynamic get(Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/jdbi/v3/sqlobject/SqlMethodHandlerFactory.lambda$4(Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/lang/IllegalStateException; (6)
()Ljava/lang/IllegalStateException;
invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
checkcast org.jdbi.v3.sqlobject.Handler
27: invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/jdbi/v3/sqlobject/SqlMethodHandlerFactory;
0 28 1 sqlObjectType Ljava/lang/Class<*>;
0 28 2 method Ljava/lang/reflect/Method;
5 28 3 sqlMethodAnnotations Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/reflect/Method;)Ljava/util/Optional<Lorg/jdbi/v3/sqlobject/Handler;>;
MethodParameters:
Name Flags
sqlObjectType
method
private org.jdbi.v3.sqlobject.Handler buildHandler(java.lang.Class<? extends org.jdbi.v3.sqlobject.Handler>, java.lang.Class<?>, java.lang.reflect.Method);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/reflect/Method;)Lorg/jdbi/v3/sqlobject/Handler;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Class;
aastore
dup
iconst_1
ldc Ljava/lang/reflect/Method;
aastore
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 3
aastore
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jdbi.v3.sqlobject.Handler
1: areturn
2: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 4
start local 4 3: aload 4
invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
invokestatic org.jdbi.v3.core.internal.exceptions.Sneaky.throwAnyway:(Ljava/lang/Throwable;)Lorg/jdbi/v3/core/internal/exceptions/DummyException;
athrow
end local 4 4: StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
pop
5: aload 1
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/reflect/Method;
aastore
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jdbi.v3.sqlobject.Handler
6: areturn
7: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 4
start local 4 8: aload 4
invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
invokestatic org.jdbi.v3.core.internal.exceptions.Sneaky.throwAnyway:(Ljava/lang/Throwable;)Lorg/jdbi/v3/core/internal/exceptions/DummyException;
athrow
end local 4 9: StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
pop
10: aload 1
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jdbi.v3.sqlobject.Handler
11: areturn
12: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 4
start local 4 13: aload 4
invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
invokestatic org.jdbi.v3.core.internal.exceptions.Sneaky.throwAnyway:(Ljava/lang/Throwable;)Lorg/jdbi/v3/core/internal/exceptions/DummyException;
athrow
end local 4 14: StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
astore 4
start local 4 15: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Handler class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " cannot be instantiated. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: ldc "Expected a constructor with parameters (Class, Method), (Method), or ()."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
17: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/jdbi/v3/sqlobject/SqlMethodHandlerFactory;
0 18 1 handlerType Ljava/lang/Class<+Lorg/jdbi/v3/sqlobject/Handler;>;
0 18 2 sqlObjectType Ljava/lang/Class<*>;
0 18 3 method Ljava/lang/reflect/Method;
3 4 4 e Ljava/lang/reflect/InvocationTargetException;
8 9 4 e Ljava/lang/reflect/InvocationTargetException;
13 14 4 e Ljava/lang/reflect/InvocationTargetException;
15 18 4 e Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
0 1 2 Class java.lang.reflect.InvocationTargetException
0 1 4 Class java.lang.ReflectiveOperationException
5 6 7 Class java.lang.reflect.InvocationTargetException
5 6 9 Class java.lang.ReflectiveOperationException
10 11 12 Class java.lang.reflect.InvocationTargetException
10 11 14 Class java.lang.ReflectiveOperationException
Signature: (Ljava/lang/Class<+Lorg/jdbi/v3/sqlobject/Handler;>;Ljava/lang/Class<*>;Ljava/lang/reflect/Method;)Lorg/jdbi/v3/sqlobject/Handler;
MethodParameters:
Name Flags
handlerType
sqlObjectType
method
private static boolean lambda$1(java.lang.Class);
descriptor: (Ljava/lang/Class;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc Lorg/jdbi/v3/sqlobject/SqlOperation;
invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljava/lang/Class<Ljava/lang/annotation/Annotation;>;
private static org.jdbi.v3.sqlobject.SqlOperation lambda$2(java.lang.Class);
descriptor: (Ljava/lang/Class;)Lorg/jdbi/v3/sqlobject/SqlOperation;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc Lorg/jdbi/v3/sqlobject/SqlOperation;
invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.jdbi.v3.sqlobject.SqlOperation
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljava/lang/Class<*>;
private org.jdbi.v3.sqlobject.Handler lambda$3(java.lang.Class, java.lang.reflect.Method, org.jdbi.v3.sqlobject.SqlOperation);
descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Method;Lorg/jdbi/v3/sqlobject/SqlOperation;)Lorg/jdbi/v3/sqlobject/Handler;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 3 0: aload 0
aload 3
invokeinterface org.jdbi.v3.sqlobject.SqlOperation.value:()Ljava/lang/Class;
aload 1
aload 2
invokevirtual org.jdbi.v3.sqlobject.SqlMethodHandlerFactory.buildHandler:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/reflect/Method;)Lorg/jdbi/v3/sqlobject/Handler;
areturn
end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jdbi/v3/sqlobject/SqlMethodHandlerFactory;
0 1 3 a Lorg/jdbi/v3/sqlobject/SqlOperation;
private static java.lang.IllegalStateException lambda$4(java.lang.Class, java.lang.reflect.Method);
descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/lang/IllegalStateException;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=7, locals=2, args_size=2
0: new java.lang.IllegalStateException
dup
1: ldc "Method %s.%s must be default or be annotated with a SQL method annotation."
iconst_2
anewarray java.lang.Object
dup
iconst_0
2: aload 0
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_1
3: aload 1
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aastore
4: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
5: areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "SqlMethodHandlerFactory.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles