final class org.bson.codecs.pojo.ConventionAnnotationImpl implements org.bson.codecs.pojo.Convention
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.bson.codecs.pojo.ConventionAnnotationImpl
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/bson/codecs/pojo/ConventionAnnotationImpl;
public void apply(org.bson.codecs.pojo.ClassModelBuilder<?>);
descriptor: (Lorg/bson/codecs/pojo/ClassModelBuilder;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.getAnnotations:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.annotation.Annotation
astore 2
start local 2 2: aload 0
aload 1
aload 2
invokevirtual org.bson.codecs.pojo.ConventionAnnotationImpl.processClassAnnotation:(Lorg/bson/codecs/pojo/ClassModelBuilder;Ljava/lang/annotation/Annotation;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 1
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.getPropertyModelBuilders:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals:
StackMap stack:
5: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bson.codecs.pojo.PropertyModelBuilder
astore 2
start local 2 6: aload 0
aload 1
aload 2
invokevirtual org.bson.codecs.pojo.ConventionAnnotationImpl.processPropertyAnnotations:(Lorg/bson/codecs/pojo/ClassModelBuilder;Lorg/bson/codecs/pojo/PropertyModelBuilder;)V
end local 2 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: aload 0
aload 1
invokevirtual org.bson.codecs.pojo.ConventionAnnotationImpl.processCreatorAnnotation:(Lorg/bson/codecs/pojo/ClassModelBuilder;)V
9: aload 0
aload 1
invokevirtual org.bson.codecs.pojo.ConventionAnnotationImpl.cleanPropertyBuilders:(Lorg/bson/codecs/pojo/ClassModelBuilder;)V
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/bson/codecs/pojo/ConventionAnnotationImpl;
0 11 1 classModelBuilder Lorg/bson/codecs/pojo/ClassModelBuilder<*>;
2 3 2 annotation Ljava/lang/annotation/Annotation;
6 7 2 propertyModelBuilder Lorg/bson/codecs/pojo/PropertyModelBuilder<*>;
Signature: (Lorg/bson/codecs/pojo/ClassModelBuilder<*>;)V
MethodParameters:
Name Flags
classModelBuilder final
private void processClassAnnotation(org.bson.codecs.pojo.ClassModelBuilder<?>, java.lang.annotation.Annotation);
descriptor: (Lorg/bson/codecs/pojo/ClassModelBuilder;Ljava/lang/annotation/Annotation;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof org.bson.codecs.pojo.annotations.BsonDiscriminator
ifeq 9
1: aload 2
checkcast org.bson.codecs.pojo.annotations.BsonDiscriminator
astore 3
start local 3 2: aload 3
invokeinterface org.bson.codecs.pojo.annotations.BsonDiscriminator.key:()Ljava/lang/String;
astore 4
start local 4 3: aload 4
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
4: aload 1
aload 4
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.discriminatorKey:(Ljava/lang/String;)Lorg/bson/codecs/pojo/ClassModelBuilder;
pop
5: StackMap locals: org.bson.codecs.pojo.annotations.BsonDiscriminator java.lang.String
StackMap stack:
aload 3
invokeinterface org.bson.codecs.pojo.annotations.BsonDiscriminator.value:()Ljava/lang/String;
astore 5
start local 5 6: aload 5
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
7: aload 1
aload 5
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.discriminator:(Ljava/lang/String;)Lorg/bson/codecs/pojo/ClassModelBuilder;
pop
8: StackMap locals: java.lang.String
StackMap stack:
aload 1
iconst_1
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.enableDiscriminator:(Z)Lorg/bson/codecs/pojo/ClassModelBuilder;
pop
end local 5 end local 4 end local 3 9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bson/codecs/pojo/ConventionAnnotationImpl;
0 10 1 classModelBuilder Lorg/bson/codecs/pojo/ClassModelBuilder<*>;
0 10 2 annotation Ljava/lang/annotation/Annotation;
2 9 3 discriminator Lorg/bson/codecs/pojo/annotations/BsonDiscriminator;
3 9 4 key Ljava/lang/String;
6 9 5 name Ljava/lang/String;
Signature: (Lorg/bson/codecs/pojo/ClassModelBuilder<*>;Ljava/lang/annotation/Annotation;)V
MethodParameters:
Name Flags
classModelBuilder final
annotation final
private void processPropertyAnnotations(org.bson.codecs.pojo.ClassModelBuilder<?>, org.bson.codecs.pojo.PropertyModelBuilder<?>);
descriptor: (Lorg/bson/codecs/pojo/ClassModelBuilder;Lorg/bson/codecs/pojo/PropertyModelBuilder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getReadAnnotations:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 15
StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder org.bson.codecs.pojo.PropertyModelBuilder top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.annotation.Annotation
astore 3
start local 3 2: aload 3
instanceof org.bson.codecs.pojo.annotations.BsonProperty
ifeq 10
3: aload 3
checkcast org.bson.codecs.pojo.annotations.BsonProperty
astore 5
start local 5 4: ldc ""
aload 5
invokeinterface org.bson.codecs.pojo.annotations.BsonProperty.value:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
5: aload 2
aload 5
invokeinterface org.bson.codecs.pojo.annotations.BsonProperty.value:()Ljava/lang/String;
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.readName:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
pop
6: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder org.bson.codecs.pojo.PropertyModelBuilder java.lang.annotation.Annotation java.util.Iterator org.bson.codecs.pojo.annotations.BsonProperty
StackMap stack:
aload 2
aload 5
invokeinterface org.bson.codecs.pojo.annotations.BsonProperty.useDiscriminator:()Z
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.discriminatorEnabled:(Z)Lorg/bson/codecs/pojo/PropertyModelBuilder;
pop
7: aload 2
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getName:()Ljava/lang/String;
aload 1
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.getIdPropertyName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
8: aload 1
aconst_null
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.idPropertyName:(Ljava/lang/String;)Lorg/bson/codecs/pojo/ClassModelBuilder;
pop
end local 5 9: goto 15
StackMap locals:
StackMap stack:
10: aload 3
instanceof org.bson.codecs.pojo.annotations.BsonId
ifeq 13
11: aload 1
aload 2
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getName:()Ljava/lang/String;
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.idPropertyName:(Ljava/lang/String;)Lorg/bson/codecs/pojo/ClassModelBuilder;
pop
12: goto 15
StackMap locals:
StackMap stack:
13: aload 3
instanceof org.bson.codecs.pojo.annotations.BsonIgnore
ifeq 15
14: aload 2
aconst_null
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.readName:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
pop
end local 3 15: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder org.bson.codecs.pojo.PropertyModelBuilder top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
16: aload 2
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getWriteAnnotations:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 25
StackMap locals:
StackMap stack:
17: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.annotation.Annotation
astore 3
start local 3 18: aload 3
instanceof org.bson.codecs.pojo.annotations.BsonProperty
ifeq 23
19: aload 3
checkcast org.bson.codecs.pojo.annotations.BsonProperty
astore 5
start local 5 20: ldc ""
aload 5
invokeinterface org.bson.codecs.pojo.annotations.BsonProperty.value:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 25
21: aload 2
aload 5
invokeinterface org.bson.codecs.pojo.annotations.BsonProperty.value:()Ljava/lang/String;
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.writeName:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
pop
end local 5 22: goto 25
StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder org.bson.codecs.pojo.PropertyModelBuilder java.lang.annotation.Annotation java.util.Iterator
StackMap stack:
23: aload 3
instanceof org.bson.codecs.pojo.annotations.BsonIgnore
ifeq 25
24: aload 2
aconst_null
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.writeName:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
pop
end local 3 25: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder org.bson.codecs.pojo.PropertyModelBuilder top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
26: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/bson/codecs/pojo/ConventionAnnotationImpl;
0 27 1 classModelBuilder Lorg/bson/codecs/pojo/ClassModelBuilder<*>;
0 27 2 propertyModelBuilder Lorg/bson/codecs/pojo/PropertyModelBuilder<*>;
2 15 3 annotation Ljava/lang/annotation/Annotation;
4 9 5 bsonProperty Lorg/bson/codecs/pojo/annotations/BsonProperty;
18 25 3 annotation Ljava/lang/annotation/Annotation;
20 22 5 bsonProperty Lorg/bson/codecs/pojo/annotations/BsonProperty;
Signature: (Lorg/bson/codecs/pojo/ClassModelBuilder<*>;Lorg/bson/codecs/pojo/PropertyModelBuilder<*>;)V
MethodParameters:
Name Flags
classModelBuilder final
propertyModelBuilder final
private <T> void processCreatorAnnotation(org.bson.codecs.pojo.ClassModelBuilder<T>);
descriptor: (Lorg/bson/codecs/pojo/ClassModelBuilder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=17, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.getType:()Ljava/lang/Class;
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aload 2
invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 14
StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable top int int java.lang.reflect.Constructor[]
StackMap stack:
3: aload 7
iload 5
aaload
astore 4
start local 4 4: aload 4
invokevirtual java.lang.reflect.Constructor.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifeq 13
aload 4
invokevirtual java.lang.reflect.Constructor.isSynthetic:()Z
ifne 13
5: aload 4
invokevirtual java.lang.reflect.Constructor.getDeclaredAnnotations:()[Ljava/lang/annotation/Annotation;
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 12
StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] top int int java.lang.annotation.Annotation[]
StackMap stack:
6: aload 11
iload 9
aaload
astore 8
start local 8 7: aload 8
invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
ldc Lorg/bson/codecs/pojo/annotations/BsonCreator;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 11
8: aload 3
ifnull 10
9: new org.bson.codecs.configuration.CodecConfigurationException
dup
ldc "Found multiple constructors annotated with @BsonCreator"
invokespecial org.bson.codecs.configuration.CodecConfigurationException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] java.lang.annotation.Annotation int int java.lang.annotation.Annotation[]
StackMap stack:
new org.bson.codecs.pojo.CreatorExecutable
dup
aload 2
aload 4
invokespecial org.bson.codecs.pojo.CreatorExecutable.<init>:(Ljava/lang/Class;Ljava/lang/reflect/Constructor;)V
astore 3
end local 8 11: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] top int int java.lang.annotation.Annotation[]
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
12: iload 9
iload 10
if_icmplt 6
end local 4 13: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable top int int java.lang.reflect.Constructor[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
14: iload 5
iload 6
if_icmplt 3
15: aload 2
astore 4
start local 4 16: iconst_0
istore 5
start local 5 17: goto 39
18: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int
StackMap stack:
aload 4
invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 37
StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int top int int java.lang.reflect.Method[]
StackMap stack:
19: aload 9
iload 7
aaload
astore 6
start local 6 20: aload 6
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 36
aload 6
invokevirtual java.lang.reflect.Method.isSynthetic:()Z
ifne 36
aload 6
invokevirtual java.lang.reflect.Method.isBridge:()Z
ifne 36
21: aload 6
invokevirtual java.lang.reflect.Method.getDeclaredAnnotations:()[Ljava/lang/annotation/Annotation;
dup
astore 13
arraylength
istore 12
iconst_0
istore 11
goto 35
StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int java.lang.reflect.Method int int java.lang.reflect.Method[] top int int java.lang.annotation.Annotation[]
StackMap stack:
22: aload 13
iload 11
aaload
astore 10
start local 10 23: aload 10
invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
ldc Lorg/bson/codecs/pojo/annotations/BsonCreator;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 34
24: aload 3
ifnull 26
25: new org.bson.codecs.configuration.CodecConfigurationException
dup
ldc "Found multiple constructors / methods annotated with @BsonCreator"
invokespecial org.bson.codecs.configuration.CodecConfigurationException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int java.lang.reflect.Method int int java.lang.reflect.Method[] java.lang.annotation.Annotation int int java.lang.annotation.Annotation[]
StackMap stack:
aload 4
aload 6
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 32
27: new org.bson.codecs.configuration.CodecConfigurationException
dup
28: ldc "Invalid method annotated with @BsonCreator. Returns '%s', expected %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
29: aload 6
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
aastore
dup
iconst_1
aload 4
aastore
30: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
31: invokespecial org.bson.codecs.configuration.CodecConfigurationException.<init>:(Ljava/lang/String;)V
athrow
32: StackMap locals:
StackMap stack:
new org.bson.codecs.pojo.CreatorExecutable
dup
aload 2
aload 6
invokespecial org.bson.codecs.pojo.CreatorExecutable.<init>:(Ljava/lang/Class;Ljava/lang/reflect/Method;)V
astore 3
33: iconst_1
istore 5
end local 10 34: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int java.lang.reflect.Method int int java.lang.reflect.Method[] top int int java.lang.annotation.Annotation[]
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
35: iload 11
iload 12
if_icmplt 22
end local 6 36: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int top int int java.lang.reflect.Method[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
37: iload 7
iload 8
if_icmplt 19
38: aload 4
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
astore 4
39: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int
StackMap stack:
aload 4
ifnull 40
iload 5
ifeq 18
40: StackMap locals:
StackMap stack:
aload 3
ifnull 83
41: aload 3
invokevirtual org.bson.codecs.pojo.CreatorExecutable.getProperties:()Ljava/util/List;
astore 6
start local 6 42: aload 3
invokevirtual org.bson.codecs.pojo.CreatorExecutable.getParameterTypes:()Ljava/util/List;
astore 7
start local 7 43: aload 3
invokevirtual org.bson.codecs.pojo.CreatorExecutable.getParameterGenericTypes:()Ljava/util/List;
astore 8
start local 8 44: aload 6
invokeinterface java.util.List.size:()I
aload 7
invokeinterface java.util.List.size:()I
if_icmpeq 46
45: aload 3
aload 2
ldc "All parameters in the @BsonCreator method / constructor must be annotated with a @BsonProperty."
invokevirtual org.bson.codecs.pojo.CreatorExecutable.getError:(Ljava/lang/Class;Ljava/lang/String;)Lorg/bson/codecs/configuration/CodecConfigurationException;
athrow
46: StackMap locals: java.util.List java.util.List java.util.List
StackMap stack:
iconst_0
istore 9
start local 9 47: goto 81
48: StackMap locals: int
StackMap stack:
aload 3
invokevirtual org.bson.codecs.pojo.CreatorExecutable.getIdPropertyIndex:()Ljava/lang/Integer;
ifnull 49
aload 3
invokevirtual org.bson.codecs.pojo.CreatorExecutable.getIdPropertyIndex:()Ljava/lang/Integer;
iload 9
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
ifeq 49
iconst_1
goto 50
StackMap locals:
StackMap stack:
49: iconst_0
StackMap locals:
StackMap stack: int
50: istore 10
start local 10 51: aload 7
iload 9
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Class
astore 11
start local 11 52: aload 8
iload 9
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.reflect.Type
astore 12
start local 12 53: aconst_null
astore 13
start local 13 54: iload 10
ifeq 57
55: aload 1
aload 1
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.getIdPropertyName:()Ljava/lang/String;
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.getProperty:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
astore 13
56: goto 76
57: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int java.util.List java.util.List java.util.List int int java.lang.Class java.lang.reflect.Type org.bson.codecs.pojo.PropertyModelBuilder
StackMap stack:
aload 6
iload 9
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.bson.codecs.pojo.annotations.BsonProperty
astore 14
start local 14 58: aload 1
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.getPropertyModelBuilders:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 16
goto 65
StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int java.util.List java.util.List java.util.List int int java.lang.Class java.lang.reflect.Type org.bson.codecs.pojo.PropertyModelBuilder org.bson.codecs.pojo.annotations.BsonProperty top java.util.Iterator
StackMap stack:
59: aload 16
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bson.codecs.pojo.PropertyModelBuilder
astore 15
start local 15 60: aload 14
invokeinterface org.bson.codecs.pojo.annotations.BsonProperty.value:()Ljava/lang/String;
aload 15
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getWriteName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 63
61: aload 15
astore 13
62: goto 66
63: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int java.util.List java.util.List java.util.List int int java.lang.Class java.lang.reflect.Type org.bson.codecs.pojo.PropertyModelBuilder org.bson.codecs.pojo.annotations.BsonProperty org.bson.codecs.pojo.PropertyModelBuilder java.util.Iterator
StackMap stack:
aload 14
invokeinterface org.bson.codecs.pojo.annotations.BsonProperty.value:()Ljava/lang/String;
aload 15
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getReadName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 65
64: aload 15
astore 13
end local 15 65: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int java.util.List java.util.List java.util.List int int java.lang.Class java.lang.reflect.Type org.bson.codecs.pojo.PropertyModelBuilder org.bson.codecs.pojo.annotations.BsonProperty top java.util.Iterator
StackMap stack:
aload 16
invokeinterface java.util.Iterator.hasNext:()Z
ifne 59
66: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int java.util.List java.util.List java.util.List int int java.lang.Class java.lang.reflect.Type org.bson.codecs.pojo.PropertyModelBuilder org.bson.codecs.pojo.annotations.BsonProperty
StackMap stack:
aload 13
ifnonnull 68
67: aload 1
aload 14
invokeinterface org.bson.codecs.pojo.annotations.BsonProperty.value:()Ljava/lang/String;
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.getProperty:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
astore 13
68: StackMap locals:
StackMap stack:
aload 13
ifnonnull 73
69: aload 0
aload 1
aload 14
invokeinterface org.bson.codecs.pojo.annotations.BsonProperty.value:()Ljava/lang/String;
70: aload 11
71: invokevirtual org.bson.codecs.pojo.ConventionAnnotationImpl.addCreatorPropertyToClassModelBuilder:(Lorg/bson/codecs/pojo/ClassModelBuilder;Ljava/lang/String;Ljava/lang/Class;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
astore 13
72: goto 76
73: StackMap locals:
StackMap stack:
aload 14
invokeinterface org.bson.codecs.pojo.annotations.BsonProperty.value:()Ljava/lang/String;
aload 13
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 75
74: aload 13
aload 14
invokeinterface org.bson.codecs.pojo.annotations.BsonProperty.value:()Ljava/lang/String;
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.writeName:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
pop
75: StackMap locals:
StackMap stack:
aload 11
aload 13
aload 12
invokestatic org.bson.codecs.pojo.ConventionAnnotationImpl.tryToExpandToGenericType:(Ljava/lang/Class;Lorg/bson/codecs/pojo/PropertyModelBuilder;Ljava/lang/reflect/Type;)V
end local 14 76: StackMap locals:
StackMap stack:
aload 13
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getTypeData:()Lorg/bson/codecs/pojo/TypeData;
aload 11
invokevirtual org.bson.codecs.pojo.TypeData.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 80
77: aload 3
aload 2
ldc "Invalid Property type for '%s'. Expected %s, found %s."
iconst_3
anewarray java.lang.Object
dup
iconst_0
78: aload 13
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getWriteName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 13
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getTypeData:()Lorg/bson/codecs/pojo/TypeData;
invokevirtual org.bson.codecs.pojo.TypeData.getType:()Ljava/lang/Class;
aastore
dup
iconst_2
aload 11
aastore
79: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual org.bson.codecs.pojo.CreatorExecutable.getError:(Ljava/lang/Class;Ljava/lang/String;)Lorg/bson/codecs/configuration/CodecConfigurationException;
athrow
end local 13 end local 12 end local 11 end local 10 80: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int java.util.List java.util.List java.util.List int
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
81: iload 9
aload 6
invokeinterface java.util.List.size:()I
if_icmplt 48
end local 9 82: aload 1
new org.bson.codecs.pojo.InstanceCreatorFactoryImpl
dup
aload 3
invokespecial org.bson.codecs.pojo.InstanceCreatorFactoryImpl.<init>:(Lorg/bson/codecs/pojo/CreatorExecutable;)V
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.instanceCreatorFactory:(Lorg/bson/codecs/pojo/InstanceCreatorFactory;)Lorg/bson/codecs/pojo/ClassModelBuilder;
pop
end local 8 end local 7 end local 6 83: StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.lang.Class org.bson.codecs.pojo.CreatorExecutable java.lang.Class int
StackMap stack:
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 84 0 this Lorg/bson/codecs/pojo/ConventionAnnotationImpl;
0 84 1 classModelBuilder Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
1 84 2 clazz Ljava/lang/Class<TT;>;
2 84 3 creatorExecutable Lorg/bson/codecs/pojo/CreatorExecutable<TT;>;
4 13 4 constructor Ljava/lang/reflect/Constructor<*>;
7 11 8 annotation Ljava/lang/annotation/Annotation;
16 84 4 bsonCreatorClass Ljava/lang/Class<*>;
17 84 5 foundStaticBsonCreatorMethod Z
20 36 6 method Ljava/lang/reflect/Method;
23 34 10 annotation Ljava/lang/annotation/Annotation;
42 83 6 properties Ljava/util/List<Lorg/bson/codecs/pojo/annotations/BsonProperty;>;
43 83 7 parameterTypes Ljava/util/List<Ljava/lang/Class<*>;>;
44 83 8 parameterGenericTypes Ljava/util/List<Ljava/lang/reflect/Type;>;
47 82 9 i I
51 80 10 isIdProperty Z
52 80 11 parameterType Ljava/lang/Class<*>;
53 80 12 genericType Ljava/lang/reflect/Type;
54 80 13 propertyModelBuilder Lorg/bson/codecs/pojo/PropertyModelBuilder<*>;
58 76 14 bsonProperty Lorg/bson/codecs/pojo/annotations/BsonProperty;
60 65 15 builder Lorg/bson/codecs/pojo/PropertyModelBuilder<*>;
Signature: <T:Ljava/lang/Object;>(Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;)V
MethodParameters:
Name Flags
classModelBuilder final
private static <T> void tryToExpandToGenericType(java.lang.Class<?>, org.bson.codecs.pojo.PropertyModelBuilder<T>, java.lang.reflect.Type);
descriptor: (Ljava/lang/Class;Lorg/bson/codecs/pojo/PropertyModelBuilder;Ljava/lang/reflect/Type;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getTypeData:()Lorg/bson/codecs/pojo/TypeData;
invokevirtual org.bson.codecs.pojo.TypeData.getType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 2
1: aload 1
aload 2
aload 0
invokestatic org.bson.codecs.pojo.TypeData.newInstance:(Ljava/lang/reflect/Type;Ljava/lang/Class;)Lorg/bson/codecs/pojo/TypeData;
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.typeData:(Lorg/bson/codecs/pojo/TypeData;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
pop
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 parameterType Ljava/lang/Class<*>;
0 3 1 propertyModelBuilder Lorg/bson/codecs/pojo/PropertyModelBuilder<TT;>;
0 3 2 genericType Ljava/lang/reflect/Type;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<*>;Lorg/bson/codecs/pojo/PropertyModelBuilder<TT;>;Ljava/lang/reflect/Type;)V
MethodParameters:
Name Flags
parameterType final
propertyModelBuilder final
genericType final
private <T, S> org.bson.codecs.pojo.PropertyModelBuilder<S> addCreatorPropertyToClassModelBuilder(org.bson.codecs.pojo.ClassModelBuilder<T>, java.lang.String, java.lang.Class<S>);
descriptor: (Lorg/bson/codecs/pojo/ClassModelBuilder;Ljava/lang/String;Ljava/lang/Class;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
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: new org.bson.codecs.pojo.PropertyMetadata
dup
aload 2
1: aload 1
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.getType:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aload 3
invokestatic org.bson.codecs.pojo.TypeData.builder:(Ljava/lang/Class;)Lorg/bson/codecs/pojo/TypeData$Builder;
invokevirtual org.bson.codecs.pojo.TypeData$Builder.build:()Lorg/bson/codecs/pojo/TypeData;
2: invokespecial org.bson.codecs.pojo.PropertyMetadata.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/bson/codecs/pojo/TypeData;)V
invokestatic org.bson.codecs.pojo.PojoBuilderHelper.createPropertyModelBuilder:(Lorg/bson/codecs/pojo/PropertyMetadata;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
3: aconst_null
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.readName:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
aload 2
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.writeName:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
4: astore 4
start local 4 5: aload 1
aload 4
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.addProperty:(Lorg/bson/codecs/pojo/PropertyModelBuilder;)Lorg/bson/codecs/pojo/ClassModelBuilder;
pop
6: 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 7 0 this Lorg/bson/codecs/pojo/ConventionAnnotationImpl;
0 7 1 classModelBuilder Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 7 2 name Ljava/lang/String;
0 7 3 clazz Ljava/lang/Class<TS;>;
5 7 4 propertyModelBuilder Lorg/bson/codecs/pojo/PropertyModelBuilder<TS;>;
Signature: <T:Ljava/lang/Object;S:Ljava/lang/Object;>(Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;Ljava/lang/String;Ljava/lang/Class<TS;>;)Lorg/bson/codecs/pojo/PropertyModelBuilder<TS;>;
MethodParameters:
Name Flags
classModelBuilder final
name final
clazz final
private void cleanPropertyBuilders(org.bson.codecs.pojo.ClassModelBuilder<?>);
descriptor: (Lorg/bson/codecs/pojo/ClassModelBuilder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 1
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.getPropertyModelBuilders:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: org.bson.codecs.pojo.ConventionAnnotationImpl org.bson.codecs.pojo.ClassModelBuilder java.util.List top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bson.codecs.pojo.PropertyModelBuilder
astore 3
start local 3 3: aload 3
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.isReadable:()Z
ifne 5
aload 3
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.isWritable:()Z
ifne 5
4: aload 2
aload 3
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getName:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 9
StackMap locals:
StackMap stack:
7: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 8: aload 1
aload 3
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.removeProperty:(Ljava/lang/String;)Z
pop
end local 3 9: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/bson/codecs/pojo/ConventionAnnotationImpl;
0 11 1 classModelBuilder Lorg/bson/codecs/pojo/ClassModelBuilder<*>;
1 11 2 propertiesToRemove Ljava/util/List<Ljava/lang/String;>;
3 5 3 propertyModelBuilder Lorg/bson/codecs/pojo/PropertyModelBuilder<*>;
8 9 3 propertyName Ljava/lang/String;
Signature: (Lorg/bson/codecs/pojo/ClassModelBuilder<*>;)V
MethodParameters:
Name Flags
classModelBuilder final
}
SourceFile: "ConventionAnnotationImpl.java"
InnerClasses:
public final Builder = org.bson.codecs.pojo.TypeData$Builder of org.bson.codecs.pojo.TypeData