public class org.bson.codecs.pojo.ClassModelBuilder<T>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bson.codecs.pojo.ClassModelBuilder
super_class: java.lang.Object
{
static final java.lang.String ID_PROPERTY_NAME;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "_id"
private final java.util.List<org.bson.codecs.pojo.PropertyModelBuilder<?>> propertyModelBuilders;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/bson/codecs/pojo/PropertyModelBuilder<*>;>;
private org.bson.codecs.pojo.IdGenerator<?> idGenerator;
descriptor: Lorg/bson/codecs/pojo/IdGenerator;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/bson/codecs/pojo/IdGenerator<*>;
private org.bson.codecs.pojo.InstanceCreatorFactory<T> instanceCreatorFactory;
descriptor: Lorg/bson/codecs/pojo/InstanceCreatorFactory;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/bson/codecs/pojo/InstanceCreatorFactory<TT;>;
private java.lang.Class<T> type;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<TT;>;
private java.util.Map<java.lang.String, org.bson.codecs.pojo.TypeParameterMap> propertyNameToTypeParameterMap;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/bson/codecs/pojo/TypeParameterMap;>;
private java.util.List<org.bson.codecs.pojo.Convention> conventions;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/bson/codecs/pojo/Convention;>;
private java.util.List<java.lang.annotation.Annotation> annotations;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljava/lang/annotation/Annotation;>;
private boolean discriminatorEnabled;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.String discriminator;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String discriminatorKey;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String idPropertyName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.bson.codecs.pojo.ClassModelBuilder.propertyModelBuilders:Ljava/util/List;
2: aload 0
invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
putfield org.bson.codecs.pojo.ClassModelBuilder.propertyNameToTypeParameterMap:Ljava/util/Map;
3: aload 0
getstatic org.bson.codecs.pojo.Conventions.DEFAULT_CONVENTIONS:Ljava/util/List;
putfield org.bson.codecs.pojo.ClassModelBuilder.conventions:Ljava/util/List;
4: aload 0
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
putfield org.bson.codecs.pojo.ClassModelBuilder.annotations:Ljava/util/List;
5: aload 0
ldc "type"
aload 1
invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
invokestatic org.bson.codecs.pojo.PojoBuilderHelper.configureClassModelBuilder:(Lorg/bson/codecs/pojo/ClassModelBuilder;Ljava/lang/Class;)V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 7 1 type Ljava/lang/Class<TT;>;
Signature: (Ljava/lang/Class<TT;>;)V
MethodParameters:
Name Flags
type final
public org.bson.codecs.pojo.ClassModelBuilder<T> idGenerator(org.bson.codecs.pojo.IdGenerator<?>);
descriptor: (Lorg/bson/codecs/pojo/IdGenerator;)Lorg/bson/codecs/pojo/ClassModelBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.bson.codecs.pojo.ClassModelBuilder.idGenerator:Lorg/bson/codecs/pojo/IdGenerator;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 2 1 idGenerator Lorg/bson/codecs/pojo/IdGenerator<*>;
Signature: (Lorg/bson/codecs/pojo/IdGenerator<*>;)Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
MethodParameters:
Name Flags
idGenerator final
public org.bson.codecs.pojo.IdGenerator<?> getIdGenerator();
descriptor: ()Lorg/bson/codecs/pojo/IdGenerator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.idGenerator:Lorg/bson/codecs/pojo/IdGenerator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
Signature: ()Lorg/bson/codecs/pojo/IdGenerator<*>;
public org.bson.codecs.pojo.ClassModelBuilder<T> instanceCreatorFactory(org.bson.codecs.pojo.InstanceCreatorFactory<T>);
descriptor: (Lorg/bson/codecs/pojo/InstanceCreatorFactory;)Lorg/bson/codecs/pojo/ClassModelBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "instanceCreatorFactory"
aload 1
invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bson.codecs.pojo.InstanceCreatorFactory
putfield org.bson.codecs.pojo.ClassModelBuilder.instanceCreatorFactory:Lorg/bson/codecs/pojo/InstanceCreatorFactory;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 2 1 instanceCreatorFactory Lorg/bson/codecs/pojo/InstanceCreatorFactory<TT;>;
Signature: (Lorg/bson/codecs/pojo/InstanceCreatorFactory<TT;>;)Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
MethodParameters:
Name Flags
instanceCreatorFactory final
public org.bson.codecs.pojo.InstanceCreatorFactory<T> getInstanceCreatorFactory();
descriptor: ()Lorg/bson/codecs/pojo/InstanceCreatorFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.instanceCreatorFactory:Lorg/bson/codecs/pojo/InstanceCreatorFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
Signature: ()Lorg/bson/codecs/pojo/InstanceCreatorFactory<TT;>;
public org.bson.codecs.pojo.ClassModelBuilder<T> type(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)Lorg/bson/codecs/pojo/ClassModelBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "type"
aload 1
invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
putfield org.bson.codecs.pojo.ClassModelBuilder.type:Ljava/lang/Class;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 2 1 type Ljava/lang/Class<TT;>;
Signature: (Ljava/lang/Class<TT;>;)Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
MethodParameters:
Name Flags
type final
public java.lang.Class<T> getType();
descriptor: ()Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.type:Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
Signature: ()Ljava/lang/Class<TT;>;
public org.bson.codecs.pojo.ClassModelBuilder<T> conventions(java.util.List<org.bson.codecs.pojo.Convention>);
descriptor: (Ljava/util/List;)Lorg/bson/codecs/pojo/ClassModelBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "conventions"
aload 1
invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
putfield org.bson.codecs.pojo.ClassModelBuilder.conventions:Ljava/util/List;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 2 1 conventions Ljava/util/List<Lorg/bson/codecs/pojo/Convention;>;
Signature: (Ljava/util/List<Lorg/bson/codecs/pojo/Convention;>;)Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
MethodParameters:
Name Flags
conventions final
public java.util.List<org.bson.codecs.pojo.Convention> getConventions();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.conventions:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
Signature: ()Ljava/util/List<Lorg/bson/codecs/pojo/Convention;>;
public org.bson.codecs.pojo.ClassModelBuilder<T> annotations(java.util.List<java.lang.annotation.Annotation>);
descriptor: (Ljava/util/List;)Lorg/bson/codecs/pojo/ClassModelBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "annotations"
aload 1
invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
putfield org.bson.codecs.pojo.ClassModelBuilder.annotations:Ljava/util/List;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 2 1 annotations Ljava/util/List<Ljava/lang/annotation/Annotation;>;
Signature: (Ljava/util/List<Ljava/lang/annotation/Annotation;>;)Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
MethodParameters:
Name Flags
annotations final
public java.util.List<java.lang.annotation.Annotation> getAnnotations();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.annotations:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
Signature: ()Ljava/util/List<Ljava/lang/annotation/Annotation;>;
public org.bson.codecs.pojo.ClassModelBuilder<T> discriminator(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/bson/codecs/pojo/ClassModelBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.bson.codecs.pojo.ClassModelBuilder.discriminator:Ljava/lang/String;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 2 1 discriminator Ljava/lang/String;
Signature: (Ljava/lang/String;)Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
MethodParameters:
Name Flags
discriminator final
public java.lang.String getDiscriminator();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.discriminator:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
public org.bson.codecs.pojo.ClassModelBuilder<T> discriminatorKey(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/bson/codecs/pojo/ClassModelBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.bson.codecs.pojo.ClassModelBuilder.discriminatorKey:Ljava/lang/String;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 2 1 discriminatorKey Ljava/lang/String;
Signature: (Ljava/lang/String;)Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
MethodParameters:
Name Flags
discriminatorKey final
public java.lang.String getDiscriminatorKey();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.discriminatorKey:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
public org.bson.codecs.pojo.ClassModelBuilder<T> enableDiscriminator(boolean);
descriptor: (Z)Lorg/bson/codecs/pojo/ClassModelBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.bson.codecs.pojo.ClassModelBuilder.discriminatorEnabled:Z
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 2 1 discriminatorEnabled Z
Signature: (Z)Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
MethodParameters:
Name Flags
discriminatorEnabled final
public java.lang.Boolean useDiscriminator();
descriptor: ()Ljava/lang/Boolean;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.discriminatorEnabled:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
public org.bson.codecs.pojo.ClassModelBuilder<T> idPropertyName(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/bson/codecs/pojo/ClassModelBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.bson.codecs.pojo.ClassModelBuilder.idPropertyName:Ljava/lang/String;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 2 1 idPropertyName Ljava/lang/String;
Signature: (Ljava/lang/String;)Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
MethodParameters:
Name Flags
idPropertyName final
public java.lang.String getIdPropertyName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.idPropertyName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
public boolean removeProperty(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.propertyModelBuilders:Ljava/util/List;
aload 0
ldc "propertyName"
aload 1
invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.getProperty:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 1 1 propertyName Ljava/lang/String;
MethodParameters:
Name Flags
propertyName final
public org.bson.codecs.pojo.PropertyModelBuilder<?> getProperty(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: ldc "propertyName"
aload 1
invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.propertyModelBuilders:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: org.bson.codecs.pojo.ClassModelBuilder java.lang.String top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bson.codecs.pojo.PropertyModelBuilder
astore 2
start local 2 3: aload 2
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
4: aload 2
areturn
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 7 1 propertyName Ljava/lang/String;
3 5 2 propertyModelBuilder Lorg/bson/codecs/pojo/PropertyModelBuilder<*>;
Signature: (Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder<*>;
MethodParameters:
Name Flags
propertyName final
public java.util.List<org.bson.codecs.pojo.PropertyModelBuilder<?>> getPropertyModelBuilders();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.propertyModelBuilders:Ljava/util/List;
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
Signature: ()Ljava/util/List<Lorg/bson/codecs/pojo/PropertyModelBuilder<*>;>;
public org.bson.codecs.pojo.ClassModel<T> build();
descriptor: ()Lorg/bson/codecs/pojo/ClassModel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=7, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aconst_null
astore 2
start local 2 2: ldc "type"
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.type:Ljava/lang/Class;
invokestatic org.bson.codecs.pojo.PojoBuilderHelper.stateNotNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.conventions:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: org.bson.codecs.pojo.ClassModelBuilder java.util.List org.bson.codecs.pojo.PropertyModel top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bson.codecs.pojo.Convention
astore 3
start local 3 5: aload 3
aload 0
invokeinterface org.bson.codecs.pojo.Convention.apply:(Lorg/bson/codecs/pojo/ClassModelBuilder;)V
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: ldc "instanceCreatorFactory"
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.instanceCreatorFactory:Lorg/bson/codecs/pojo/InstanceCreatorFactory;
invokestatic org.bson.codecs.pojo.PojoBuilderHelper.stateNotNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.discriminatorEnabled:Z
ifeq 11
9: ldc "discriminatorKey"
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.discriminatorKey:Ljava/lang/String;
invokestatic org.bson.codecs.pojo.PojoBuilderHelper.stateNotNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: ldc "discriminator"
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.discriminator:Ljava/lang/String;
invokestatic org.bson.codecs.pojo.PojoBuilderHelper.stateNotNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: StackMap locals: org.bson.codecs.pojo.ClassModelBuilder java.util.List org.bson.codecs.pojo.PropertyModel
StackMap stack:
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.propertyModelBuilders:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 20
StackMap locals: org.bson.codecs.pojo.ClassModelBuilder java.util.List org.bson.codecs.pojo.PropertyModel top java.util.Iterator
StackMap stack:
12: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bson.codecs.pojo.PropertyModelBuilder
astore 3
start local 3 13: aload 3
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.getName:()Ljava/lang/String;
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.idPropertyName:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
istore 5
start local 5 14: iload 5
ifeq 16
15: aload 3
ldc "_id"
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.readName:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
ldc "_id"
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.writeName:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
pop
16: StackMap locals: org.bson.codecs.pojo.ClassModelBuilder java.util.List org.bson.codecs.pojo.PropertyModel org.bson.codecs.pojo.PropertyModelBuilder java.util.Iterator int
StackMap stack:
aload 3
invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.build:()Lorg/bson/codecs/pojo/PropertyModel;
astore 6
start local 6 17: aload 1
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
18: iload 5
ifeq 20
19: aload 6
astore 2
end local 6 end local 5 end local 3 20: StackMap locals: org.bson.codecs.pojo.ClassModelBuilder java.util.List org.bson.codecs.pojo.PropertyModel top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
21: aload 0
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.type:Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aload 1
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.validatePropertyModels:(Ljava/lang/String;Ljava/util/List;)V
22: new org.bson.codecs.pojo.ClassModel
dup
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.type:Ljava/lang/Class;
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.propertyNameToTypeParameterMap:Ljava/util/Map;
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.instanceCreatorFactory:Lorg/bson/codecs/pojo/InstanceCreatorFactory;
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.discriminatorEnabled:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.discriminatorKey:Ljava/lang/String;
23: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.discriminator:Ljava/lang/String;
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.type:Ljava/lang/Class;
aload 2
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.idGenerator:Lorg/bson/codecs/pojo/IdGenerator;
invokestatic org.bson.codecs.pojo.IdPropertyModelHolder.create:(Ljava/lang/Class;Lorg/bson/codecs/pojo/PropertyModel;Lorg/bson/codecs/pojo/IdGenerator;)Lorg/bson/codecs/pojo/IdPropertyModelHolder;
aload 1
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
24: invokespecial org.bson.codecs.pojo.ClassModel.<init>:(Ljava/lang/Class;Ljava/util/Map;Lorg/bson/codecs/pojo/InstanceCreatorFactory;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lorg/bson/codecs/pojo/IdPropertyModelHolder;Ljava/util/List;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
1 25 1 propertyModels Ljava/util/List<Lorg/bson/codecs/pojo/PropertyModel<*>;>;
2 25 2 idPropertyModel Lorg/bson/codecs/pojo/PropertyModel<*>;
5 6 3 convention Lorg/bson/codecs/pojo/Convention;
13 20 3 propertyModelBuilder Lorg/bson/codecs/pojo/PropertyModelBuilder<*>;
14 20 5 isIdProperty Z
17 20 6 model Lorg/bson/codecs/pojo/PropertyModel<*>;
Signature: ()Lorg/bson/codecs/pojo/ClassModel<TT;>;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: ldc "ClassModelBuilder{type=%s}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.type:Ljava/lang/Class;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
java.util.Map<java.lang.String, org.bson.codecs.pojo.TypeParameterMap> getPropertyNameToTypeParameterMap();
descriptor: ()Ljava/util/Map;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.propertyNameToTypeParameterMap:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/bson/codecs/pojo/TypeParameterMap;>;
org.bson.codecs.pojo.ClassModelBuilder<T> propertyNameToTypeParameterMap(java.util.Map<java.lang.String, org.bson.codecs.pojo.TypeParameterMap>);
descriptor: (Ljava/util/Map;)Lorg/bson/codecs/pojo/ClassModelBuilder;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.util.HashMap
dup
aload 1
invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield org.bson.codecs.pojo.ClassModelBuilder.propertyNameToTypeParameterMap:Ljava/util/Map;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 2 1 propertyNameToTypeParameterMap Ljava/util/Map<Ljava/lang/String;Lorg/bson/codecs/pojo/TypeParameterMap;>;
Signature: (Ljava/util/Map<Ljava/lang/String;Lorg/bson/codecs/pojo/TypeParameterMap;>;)Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
MethodParameters:
Name Flags
propertyNameToTypeParameterMap final
org.bson.codecs.pojo.ClassModelBuilder<T> addProperty(org.bson.codecs.pojo.PropertyModelBuilder<?>);
descriptor: (Lorg/bson/codecs/pojo/PropertyModelBuilder;)Lorg/bson/codecs/pojo/ClassModelBuilder;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.propertyModelBuilders:Ljava/util/List;
ldc "propertyModelBuilder"
aload 1
invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bson.codecs.pojo.PropertyModelBuilder
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 2 1 propertyModelBuilder Lorg/bson/codecs/pojo/PropertyModelBuilder<*>;
Signature: (Lorg/bson/codecs/pojo/PropertyModelBuilder<*>;)Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
MethodParameters:
Name Flags
propertyModelBuilder final
private void validatePropertyModels(java.lang.String, java.util.List<org.bson.codecs.pojo.PropertyModel<?>>);
descriptor: (Ljava/lang/String;Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 3
start local 3 1: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 4
start local 4 2: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 5
start local 5 3: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 12
StackMap locals: org.bson.codecs.pojo.ClassModelBuilder java.lang.String java.util.List java.util.Map java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
4: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bson.codecs.pojo.PropertyModel
astore 6
start local 6 5: aload 6
invokevirtual org.bson.codecs.pojo.PropertyModel.hasError:()Z
ifeq 7
6: new org.bson.codecs.configuration.CodecConfigurationException
dup
aload 6
invokevirtual org.bson.codecs.pojo.PropertyModel.getError:()Ljava/lang/String;
invokespecial org.bson.codecs.configuration.CodecConfigurationException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: org.bson.codecs.pojo.ClassModelBuilder java.lang.String java.util.List java.util.Map java.util.Map java.util.Map org.bson.codecs.pojo.PropertyModel java.util.Iterator
StackMap stack:
aload 0
ldc "property"
aload 6
invokevirtual org.bson.codecs.pojo.PropertyModel.getName:()Ljava/lang/String;
aload 3
aload 1
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.checkForDuplicates:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V
8: aload 6
invokevirtual org.bson.codecs.pojo.PropertyModel.isReadable:()Z
ifeq 10
9: aload 0
ldc "read property"
aload 6
invokevirtual org.bson.codecs.pojo.PropertyModel.getReadName:()Ljava/lang/String;
aload 4
aload 1
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.checkForDuplicates:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V
10: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.bson.codecs.pojo.PropertyModel.isWritable:()Z
ifeq 12
11: aload 0
ldc "write property"
aload 6
invokevirtual org.bson.codecs.pojo.PropertyModel.getWriteName:()Ljava/lang/String;
aload 5
aload 1
invokevirtual org.bson.codecs.pojo.ClassModelBuilder.checkForDuplicates:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V
end local 6 12: StackMap locals: org.bson.codecs.pojo.ClassModelBuilder java.lang.String java.util.List java.util.Map java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
13: aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.idPropertyName:Ljava/lang/String;
ifnull 15
aload 3
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.idPropertyName:Ljava/lang/String;
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 15
14: new org.bson.codecs.configuration.CodecConfigurationException
dup
ldc "Invalid id property, property named '%s' can not be found."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.bson.codecs.pojo.ClassModelBuilder.idPropertyName:Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial org.bson.codecs.configuration.CodecConfigurationException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals: org.bson.codecs.pojo.ClassModelBuilder java.lang.String java.util.List java.util.Map java.util.Map java.util.Map
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 16 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 16 1 declaringClass Ljava/lang/String;
0 16 2 propertyModels Ljava/util/List<Lorg/bson/codecs/pojo/PropertyModel<*>;>;
1 16 3 propertyNameMap Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
2 16 4 propertyReadNameMap Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
3 16 5 propertyWriteNameMap Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
5 12 6 propertyModel Lorg/bson/codecs/pojo/PropertyModel<*>;
Signature: (Ljava/lang/String;Ljava/util/List<Lorg/bson/codecs/pojo/PropertyModel<*>;>;)V
MethodParameters:
Name Flags
declaringClass final
propertyModels final
private void checkForDuplicates(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.Integer>, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
aload 2
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 4
1: new org.bson.codecs.configuration.CodecConfigurationException
dup
ldc "Duplicate %s named '%s' found in %s."
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
2: aload 4
aastore
3: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial org.bson.codecs.configuration.CodecConfigurationException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 3
aload 2
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bson/codecs/pojo/ClassModelBuilder<TT;>;
0 6 1 propertyType Ljava/lang/String;
0 6 2 propertyName Ljava/lang/String;
0 6 3 propertyNameMap Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
0 6 4 declaringClass Ljava/lang/String;
Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;Ljava/lang/String;)V
MethodParameters:
Name Flags
propertyType final
propertyName final
propertyNameMap final
declaringClass final
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "ClassModelBuilder.java"