final class org.mongodb.morphia.IndexHelper
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.mongodb.morphia.IndexHelper
super_class: java.lang.Object
{
private static final org.mongodb.morphia.logging.Logger LOG;
descriptor: Lorg/mongodb/morphia/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.bson.codecs.EncoderContext ENCODER_CONTEXT;
descriptor: Lorg/bson/codecs/EncoderContext;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.mongodb.morphia.mapping.Mapper mapper;
descriptor: Lorg/mongodb/morphia/mapping/Mapper;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.client.MongoDatabase database;
descriptor: Lcom/mongodb/client/MongoDatabase;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/mongodb/morphia/IndexHelper;
invokestatic org.mongodb.morphia.logging.MorphiaLoggerFactory.get:(Ljava/lang/Class;)Lorg/mongodb/morphia/logging/Logger;
putstatic org.mongodb.morphia.IndexHelper.LOG:Lorg/mongodb/morphia/logging/Logger;
1: invokestatic org.bson.codecs.EncoderContext.builder:()Lorg/bson/codecs/EncoderContext$Builder;
invokevirtual org.bson.codecs.EncoderContext$Builder.build:()Lorg/bson/codecs/EncoderContext;
putstatic org.mongodb.morphia.IndexHelper.ENCODER_CONTEXT:Lorg/bson/codecs/EncoderContext;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.mongodb.morphia.mapping.Mapper, com.mongodb.client.MongoDatabase);
descriptor: (Lorg/mongodb/morphia/mapping/Mapper;Lcom/mongodb/client/MongoDatabase;)V
flags: (0x0000)
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.mongodb.morphia.IndexHelper.mapper:Lorg/mongodb/morphia/mapping/Mapper;
2: aload 0
aload 2
putfield org.mongodb.morphia.IndexHelper.database:Lcom/mongodb/client/MongoDatabase;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/mongodb/morphia/IndexHelper;
0 4 1 mapper Lorg/mongodb/morphia/mapping/Mapper;
0 4 2 database Lcom/mongodb/client/MongoDatabase;
MethodParameters:
Name Flags
mapper final
database final
private static java.lang.String join(java.util.List<java.lang.String>, char);
descriptor: (Ljava/util/List;C)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 1: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: java.util.List int java.lang.StringBuilder top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 3: aload 2
invokevirtual java.lang.StringBuilder.length:()I
ifeq 5
4: aload 2
iload 1
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
5: StackMap locals: java.util.List int java.lang.StringBuilder java.lang.String java.util.Iterator
StackMap stack:
aload 2
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 3 6: StackMap locals: java.util.List int java.lang.StringBuilder top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 path Ljava/util/List<Ljava/lang/String;>;
0 8 1 delimiter C
1 8 2 builder Ljava/lang/StringBuilder;
3 6 3 element Ljava/lang/String;
Signature: (Ljava/util/List<Ljava/lang/String;>;C)Ljava/lang/String;
MethodParameters:
Name Flags
path final
delimiter final
private void calculateWeights(org.mongodb.morphia.annotations.Index, com.mongodb.client.model.IndexOptions);
descriptor: (Lorg/mongodb/morphia/annotations/Index;Lcom/mongodb/client/model/IndexOptions;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: new org.bson.Document
dup
invokespecial org.bson.Document.<init>:()V
astore 3
start local 3 1: aload 1
invokeinterface org.mongodb.morphia.annotations.Index.fields:()[Lorg/mongodb/morphia/annotations/Field;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 8
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.annotations.Index com.mongodb.client.model.IndexOptions org.bson.Document top int int org.mongodb.morphia.annotations.Field[]
StackMap stack:
2: aload 7
iload 5
aaload
astore 4
start local 4 3: aload 4
invokeinterface org.mongodb.morphia.annotations.Field.weight:()I
iconst_m1
if_icmpeq 7
4: aload 4
invokeinterface org.mongodb.morphia.annotations.Field.type:()Lorg/mongodb/morphia/utils/IndexType;
getstatic org.mongodb.morphia.utils.IndexType.TEXT:Lorg/mongodb/morphia/utils/IndexType;
if_acmpeq 6
5: new org.mongodb.morphia.mapping.MappingException
dup
new java.lang.StringBuilder
dup
ldc "Weight values only apply to text indexes: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface org.mongodb.morphia.annotations.Index.fields:()[Lorg/mongodb/morphia/annotations/Field;
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.mongodb.morphia.mapping.MappingException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.annotations.Index com.mongodb.client.model.IndexOptions org.bson.Document org.mongodb.morphia.annotations.Field int int org.mongodb.morphia.annotations.Field[]
StackMap stack:
aload 3
aload 4
invokeinterface org.mongodb.morphia.annotations.Field.value:()Ljava/lang/String;
aload 4
invokeinterface org.mongodb.morphia.annotations.Field.weight:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.bson.Document.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 7: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.annotations.Index com.mongodb.client.model.IndexOptions org.bson.Document top int int org.mongodb.morphia.annotations.Field[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
iload 6
if_icmplt 2
9: aload 3
invokevirtual org.bson.Document.isEmpty:()Z
ifne 11
10: aload 2
aload 3
invokevirtual com.mongodb.client.model.IndexOptions.weights:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/model/IndexOptions;
pop
11: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.annotations.Index com.mongodb.client.model.IndexOptions org.bson.Document
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/mongodb/morphia/IndexHelper;
0 12 1 index Lorg/mongodb/morphia/annotations/Index;
0 12 2 indexOptions Lcom/mongodb/client/model/IndexOptions;
1 12 3 weights Lorg/bson/Document;
3 7 4 field Lorg/mongodb/morphia/annotations/Field;
MethodParameters:
Name Flags
index final
indexOptions final
org.mongodb.morphia.annotations.Index convert(org.mongodb.morphia.annotations.Text, java.lang.String);
descriptor: (Lorg/mongodb/morphia/annotations/Text;Ljava/lang/String;)Lorg/mongodb/morphia/annotations/Index;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new org.mongodb.morphia.IndexBuilder
dup
invokespecial org.mongodb.morphia.IndexBuilder.<init>:()V
1: aload 1
invokeinterface org.mongodb.morphia.annotations.Text.options:()Lorg/mongodb/morphia/annotations/IndexOptions;
invokevirtual org.mongodb.morphia.IndexBuilder.options:(Lorg/mongodb/morphia/annotations/IndexOptions;)Lorg/mongodb/morphia/IndexBuilder;
2: new org.mongodb.morphia.FieldBuilder
dup
invokespecial org.mongodb.morphia.FieldBuilder.<init>:()V
3: aload 2
invokevirtual org.mongodb.morphia.FieldBuilder.value:(Ljava/lang/String;)Lorg/mongodb/morphia/FieldBuilder;
4: getstatic org.mongodb.morphia.utils.IndexType.TEXT:Lorg/mongodb/morphia/utils/IndexType;
invokevirtual org.mongodb.morphia.FieldBuilder.type:(Lorg/mongodb/morphia/utils/IndexType;)Lorg/mongodb/morphia/FieldBuilder;
5: aload 1
invokeinterface org.mongodb.morphia.annotations.Text.value:()I
invokevirtual org.mongodb.morphia.FieldBuilder.weight:(I)Lorg/mongodb/morphia/FieldBuilder;
6: invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
invokevirtual org.mongodb.morphia.IndexBuilder.fields:(Ljava/util/List;)Lorg/mongodb/morphia/IndexBuilder;
7: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/mongodb/morphia/IndexHelper;
0 8 1 text Lorg/mongodb/morphia/annotations/Text;
0 8 2 nameToStore Ljava/lang/String;
MethodParameters:
Name Flags
text final
nameToStore final
org.mongodb.morphia.annotations.Index convert(org.mongodb.morphia.annotations.Indexed, java.lang.String);
descriptor: (Lorg/mongodb/morphia/annotations/Indexed;Ljava/lang/String;)Lorg/mongodb/morphia/annotations/Index;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface org.mongodb.morphia.annotations.Indexed.dropDups:()Z
ifne 1
aload 1
invokeinterface org.mongodb.morphia.annotations.Indexed.options:()Lorg/mongodb/morphia/annotations/IndexOptions;
invokeinterface org.mongodb.morphia.annotations.IndexOptions.dropDups:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
getstatic org.mongodb.morphia.IndexHelper.LOG:Lorg/mongodb/morphia/logging/Logger;
ldc "Support for dropDups has been removed from the server. Please remove this setting."
invokeinterface org.mongodb.morphia.logging.Logger.warning:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokeinterface org.mongodb.morphia.annotations.Indexed.options:()Lorg/mongodb/morphia/annotations/IndexOptions;
invokevirtual org.mongodb.morphia.IndexHelper.extractOptions:(Lorg/mongodb/morphia/annotations/IndexOptions;)Ljava/util/Map;
astore 3
start local 3 3: aload 0
aload 1
invokevirtual org.mongodb.morphia.IndexHelper.extractOptions:(Lorg/mongodb/morphia/annotations/Indexed;)Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifne 5
aload 3
invokeinterface java.util.Map.isEmpty:()Z
ifne 5
4: new org.mongodb.morphia.mapping.MappingException
dup
ldc "Mixed usage of deprecated @Indexed values with the new @IndexOption values is not allowed. Please migrate all settings to @IndexOptions"
invokespecial org.mongodb.morphia.mapping.MappingException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.util.Map
StackMap stack:
new org.mongodb.morphia.FieldBuilder
dup
invokespecial org.mongodb.morphia.FieldBuilder.<init>:()V
6: aload 2
invokevirtual org.mongodb.morphia.FieldBuilder.value:(Ljava/lang/String;)Lorg/mongodb/morphia/FieldBuilder;
7: aload 1
invokeinterface org.mongodb.morphia.annotations.Indexed.value:()Lorg/mongodb/morphia/utils/IndexDirection;
invokevirtual org.mongodb.morphia.utils.IndexDirection.toIndexValue:()Ljava/lang/Object;
invokestatic org.mongodb.morphia.utils.IndexType.fromValue:(Ljava/lang/Object;)Lorg/mongodb/morphia/utils/IndexType;
invokevirtual org.mongodb.morphia.FieldBuilder.type:(Lorg/mongodb/morphia/utils/IndexType;)Lorg/mongodb/morphia/FieldBuilder;
8: invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
astore 4
start local 4 9: aload 3
invokeinterface java.util.Map.isEmpty:()Z
ifeq 15
10: new org.mongodb.morphia.IndexBuilder
dup
invokespecial org.mongodb.morphia.IndexBuilder.<init>:()V
11: new org.mongodb.morphia.IndexOptionsBuilder
dup
invokespecial org.mongodb.morphia.IndexOptionsBuilder.<init>:()V
12: aload 1
invokevirtual org.mongodb.morphia.IndexOptionsBuilder.migrate:(Lorg/mongodb/morphia/annotations/Indexed;)Lorg/mongodb/morphia/IndexOptionsBuilder;
13: invokevirtual org.mongodb.morphia.IndexBuilder.options:(Lorg/mongodb/morphia/annotations/IndexOptions;)Lorg/mongodb/morphia/IndexBuilder;
14: aload 4
invokevirtual org.mongodb.morphia.IndexBuilder.fields:(Ljava/util/List;)Lorg/mongodb/morphia/IndexBuilder;
goto 18
15: StackMap locals: java.util.List
StackMap stack:
new org.mongodb.morphia.IndexBuilder
dup
invokespecial org.mongodb.morphia.IndexBuilder.<init>:()V
16: aload 1
invokeinterface org.mongodb.morphia.annotations.Indexed.options:()Lorg/mongodb/morphia/annotations/IndexOptions;
invokevirtual org.mongodb.morphia.IndexBuilder.options:(Lorg/mongodb/morphia/annotations/IndexOptions;)Lorg/mongodb/morphia/IndexBuilder;
17: aload 4
invokevirtual org.mongodb.morphia.IndexBuilder.fields:(Ljava/util/List;)Lorg/mongodb/morphia/IndexBuilder;
18: StackMap locals:
StackMap stack: org.mongodb.morphia.IndexBuilder
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/mongodb/morphia/IndexHelper;
0 19 1 indexed Lorg/mongodb/morphia/annotations/Indexed;
0 19 2 nameToStore Ljava/lang/String;
3 19 3 newOptions Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
9 19 4 fields Ljava/util/List<Lorg/mongodb/morphia/annotations/Field;>;
MethodParameters:
Name Flags
indexed final
nameToStore final
private java.util.List<org.mongodb.morphia.annotations.Index> collectFieldIndexes(org.mongodb.morphia.mapping.MappedClass);
descriptor: (Lorg/mongodb/morphia/mapping/MappedClass;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, 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.mongodb.morphia.mapping.MappedClass.getPersistenceFields:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 10
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.mongodb.morphia.mapping.MappedField
astore 3
start local 3 3: aload 3
ldc Lorg/mongodb/morphia/annotations/Indexed;
invokevirtual org.mongodb.morphia.mapping.MappedField.hasAnnotation:(Ljava/lang/Class;)Z
ifeq 7
4: aload 3
ldc Lorg/mongodb/morphia/annotations/Indexed;
invokevirtual org.mongodb.morphia.mapping.MappedField.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.mongodb.morphia.annotations.Indexed
astore 5
start local 5 5: aload 2
aload 0
aload 5
aload 3
invokevirtual org.mongodb.morphia.mapping.MappedField.getNameToStore:()Ljava/lang/String;
invokevirtual org.mongodb.morphia.IndexHelper.convert:(Lorg/mongodb/morphia/annotations/Indexed;Ljava/lang/String;)Lorg/mongodb/morphia/annotations/Index;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 6: goto 10
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List org.mongodb.morphia.mapping.MappedField java.util.Iterator
StackMap stack:
7: aload 3
ldc Lorg/mongodb/morphia/annotations/Text;
invokevirtual org.mongodb.morphia.mapping.MappedField.hasAnnotation:(Ljava/lang/Class;)Z
ifeq 10
8: aload 3
ldc Lorg/mongodb/morphia/annotations/Text;
invokevirtual org.mongodb.morphia.mapping.MappedField.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.mongodb.morphia.annotations.Text
astore 5
start local 5 9: aload 2
aload 0
aload 5
aload 3
invokevirtual org.mongodb.morphia.mapping.MappedField.getNameToStore:()Ljava/lang/String;
invokevirtual org.mongodb.morphia.IndexHelper.convert:(Lorg/mongodb/morphia/annotations/Text;Ljava/lang/String;)Lorg/mongodb/morphia/annotations/Index;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 3 10: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
11: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/mongodb/morphia/IndexHelper;
0 12 1 mc Lorg/mongodb/morphia/mapping/MappedClass;
1 12 2 list Ljava/util/List<Lorg/mongodb/morphia/annotations/Index;>;
3 10 3 mf Lorg/mongodb/morphia/mapping/MappedField;
5 6 5 indexed Lorg/mongodb/morphia/annotations/Indexed;
9 10 5 text Lorg/mongodb/morphia/annotations/Text;
Signature: (Lorg/mongodb/morphia/mapping/MappedClass;)Ljava/util/List<Lorg/mongodb/morphia/annotations/Index;>;
MethodParameters:
Name Flags
mc final
private java.util.List<org.mongodb.morphia.annotations.Index> collectIndexes(org.mongodb.morphia.mapping.MappedClass, java.util.List<org.mongodb.morphia.mapping.MappedClass>);
descriptor: (Lorg/mongodb/morphia/mapping/MappedClass;Ljava/util/List;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 1
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 1
aload 1
invokevirtual org.mongodb.morphia.mapping.MappedClass.getEmbeddedAnnotation:()Lorg/mongodb/morphia/annotations/Embedded;
ifnull 2
aload 2
invokeinterface java.util.List.isEmpty:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.mongodb.morphia.IndexHelper.collectTopLevelIndexes:(Lorg/mongodb/morphia/mapping/MappedClass;)Ljava/util/List;
astore 3
start local 3 3: aload 3
aload 0
aload 1
invokevirtual org.mongodb.morphia.IndexHelper.collectFieldIndexes:(Lorg/mongodb/morphia/mapping/MappedClass;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
4: aload 3
aload 0
aload 1
aload 2
invokevirtual org.mongodb.morphia.IndexHelper.collectNestedIndexes:(Lorg/mongodb/morphia/mapping/MappedClass;Ljava/util/List;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
5: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/mongodb/morphia/IndexHelper;
0 6 1 mc Lorg/mongodb/morphia/mapping/MappedClass;
0 6 2 parentMCs Ljava/util/List<Lorg/mongodb/morphia/mapping/MappedClass;>;
3 6 3 indexes Ljava/util/List<Lorg/mongodb/morphia/annotations/Index;>;
Signature: (Lorg/mongodb/morphia/mapping/MappedClass;Ljava/util/List<Lorg/mongodb/morphia/mapping/MappedClass;>;)Ljava/util/List<Lorg/mongodb/morphia/annotations/Index;>;
MethodParameters:
Name Flags
mc final
parentMCs final
private java.util.List<org.mongodb.morphia.annotations.Index> collectNestedIndexes(org.mongodb.morphia.mapping.MappedClass, java.util.List<org.mongodb.morphia.mapping.MappedClass>);
descriptor: (Lorg/mongodb/morphia/mapping/MappedClass;Ljava/util/List;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=18, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 1
invokevirtual org.mongodb.morphia.mapping.MappedClass.getPersistenceFields:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 35
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.mongodb.morphia.mapping.MappedField
astore 4
start local 4 3: aload 4
invokevirtual org.mongodb.morphia.mapping.MappedField.isTypeMongoCompatible:()Z
ifne 35
aload 4
ldc Lorg/mongodb/morphia/annotations/Reference;
invokevirtual org.mongodb.morphia.mapping.MappedField.hasAnnotation:(Ljava/lang/Class;)Z
ifne 35
aload 4
ldc Lorg/mongodb/morphia/annotations/Serialized;
invokevirtual org.mongodb.morphia.mapping.MappedField.hasAnnotation:(Ljava/lang/Class;)Z
ifne 35
4: aload 4
ldc Lorg/mongodb/morphia/annotations/NotSaved;
invokevirtual org.mongodb.morphia.mapping.MappedField.hasAnnotation:(Ljava/lang/Class;)Z
ifne 35
aload 4
invokevirtual org.mongodb.morphia.mapping.MappedField.isTransient:()Z
ifne 35
5: new java.util.ArrayList
dup
aload 2
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 6
start local 6 6: aload 6
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 7
start local 7 8: aload 0
getfield org.mongodb.morphia.IndexHelper.mapper:Lorg/mongodb/morphia/mapping/Mapper;
aload 4
invokevirtual org.mongodb.morphia.mapping.MappedField.isSingleValue:()Z
ifeq 9
aload 4
invokevirtual org.mongodb.morphia.mapping.MappedField.getType:()Ljava/lang/Class;
goto 10
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.mapping.MappedField java.util.Iterator java.util.List java.util.List
StackMap stack: org.mongodb.morphia.mapping.Mapper
9: aload 4
invokevirtual org.mongodb.morphia.mapping.MappedField.getSubClass:()Ljava/lang/Class;
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.mapping.MappedField java.util.Iterator java.util.List java.util.List
StackMap stack: org.mongodb.morphia.mapping.Mapper java.lang.Class
10: invokevirtual org.mongodb.morphia.mapping.Mapper.getMappedClass:(Ljava/lang/Object;)Lorg/mongodb/morphia/mapping/MappedClass;
astore 8
start local 8 11: aload 7
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
12: aload 7
aload 0
getfield org.mongodb.morphia.IndexHelper.mapper:Lorg/mongodb/morphia/mapping/Mapper;
aload 8
invokevirtual org.mongodb.morphia.mapping.Mapper.getSubTypes:(Lorg/mongodb/morphia/mapping/MappedClass;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
13: aload 7
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 34
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.mapping.MappedField java.util.Iterator java.util.List java.util.List org.mongodb.morphia.mapping.MappedClass top java.util.Iterator
StackMap stack:
14: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.mongodb.morphia.mapping.MappedClass
astore 9
start local 9 15: aload 0
aload 9
aload 6
invokevirtual org.mongodb.morphia.IndexHelper.collectIndexes:(Lorg/mongodb/morphia/mapping/MappedClass;Ljava/util/List;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 33
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.mapping.MappedField java.util.Iterator java.util.List java.util.List org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.mapping.MappedClass java.util.Iterator top java.util.Iterator
StackMap stack:
16: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.mongodb.morphia.annotations.Index
astore 11
start local 11 17: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 13
start local 13 18: aload 11
invokeinterface org.mongodb.morphia.annotations.Index.fields:()[Lorg/mongodb/morphia/annotations/Field;
dup
astore 17
arraylength
istore 16
iconst_0
istore 15
goto 29
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.mapping.MappedField java.util.Iterator java.util.List java.util.List org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.mapping.MappedClass java.util.Iterator org.mongodb.morphia.annotations.Index java.util.Iterator java.util.List top int int org.mongodb.morphia.annotations.Field[]
StackMap stack:
19: aload 17
iload 15
aaload
astore 14
start local 14 20: aload 13
new org.mongodb.morphia.FieldBuilder
dup
invokespecial org.mongodb.morphia.FieldBuilder.<init>:()V
21: aload 14
invokeinterface org.mongodb.morphia.annotations.Field.value:()Ljava/lang/String;
ldc "$**"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 23
22: aload 14
invokeinterface org.mongodb.morphia.annotations.Field.value:()Ljava/lang/String;
goto 24
23: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.mapping.MappedField java.util.Iterator java.util.List java.util.List org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.mapping.MappedClass java.util.Iterator org.mongodb.morphia.annotations.Index java.util.Iterator java.util.List org.mongodb.morphia.annotations.Field int int org.mongodb.morphia.annotations.Field[]
StackMap stack: java.util.List org.mongodb.morphia.FieldBuilder
new java.lang.StringBuilder
dup
aload 4
invokevirtual org.mongodb.morphia.mapping.MappedField.getNameToStore:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 14
invokeinterface org.mongodb.morphia.annotations.Field.value:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
24: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.mapping.MappedField java.util.Iterator java.util.List java.util.List org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.mapping.MappedClass java.util.Iterator org.mongodb.morphia.annotations.Index java.util.Iterator java.util.List org.mongodb.morphia.annotations.Field int int org.mongodb.morphia.annotations.Field[]
StackMap stack: java.util.List org.mongodb.morphia.FieldBuilder java.lang.String
invokevirtual org.mongodb.morphia.FieldBuilder.value:(Ljava/lang/String;)Lorg/mongodb/morphia/FieldBuilder;
25: aload 14
invokeinterface org.mongodb.morphia.annotations.Field.type:()Lorg/mongodb/morphia/utils/IndexType;
invokevirtual org.mongodb.morphia.FieldBuilder.type:(Lorg/mongodb/morphia/utils/IndexType;)Lorg/mongodb/morphia/FieldBuilder;
26: aload 14
invokeinterface org.mongodb.morphia.annotations.Field.weight:()I
invokevirtual org.mongodb.morphia.FieldBuilder.weight:(I)Lorg/mongodb/morphia/FieldBuilder;
27: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 14 28: iinc 15 1
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.mapping.MappedField java.util.Iterator java.util.List java.util.List org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.mapping.MappedClass java.util.Iterator org.mongodb.morphia.annotations.Index java.util.Iterator java.util.List top int int org.mongodb.morphia.annotations.Field[]
StackMap stack:
29: iload 15
iload 16
if_icmplt 19
30: aload 3
new org.mongodb.morphia.IndexBuilder
dup
aload 11
invokespecial org.mongodb.morphia.IndexBuilder.<init>:(Lorg/mongodb/morphia/annotations/Index;)V
31: aload 13
invokevirtual org.mongodb.morphia.IndexBuilder.fields:(Ljava/util/List;)Lorg/mongodb/morphia/IndexBuilder;
32: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 13 end local 11 33: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.mapping.MappedField java.util.Iterator java.util.List java.util.List org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.mapping.MappedClass java.util.Iterator top java.util.Iterator
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 16
end local 9 34: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.mapping.MappedField java.util.Iterator java.util.List java.util.List org.mongodb.morphia.mapping.MappedClass top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
end local 8 end local 7 end local 6 end local 4 35: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
36: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lorg/mongodb/morphia/IndexHelper;
0 37 1 mc Lorg/mongodb/morphia/mapping/MappedClass;
0 37 2 parentMCs Ljava/util/List<Lorg/mongodb/morphia/mapping/MappedClass;>;
1 37 3 list Ljava/util/List<Lorg/mongodb/morphia/annotations/Index;>;
3 35 4 mf Lorg/mongodb/morphia/mapping/MappedField;
6 35 6 parents Ljava/util/List<Lorg/mongodb/morphia/mapping/MappedClass;>;
8 35 7 classes Ljava/util/List<Lorg/mongodb/morphia/mapping/MappedClass;>;
11 35 8 mappedClass Lorg/mongodb/morphia/mapping/MappedClass;
15 34 9 aClass Lorg/mongodb/morphia/mapping/MappedClass;
17 33 11 index Lorg/mongodb/morphia/annotations/Index;
18 33 13 fields Ljava/util/List<Lorg/mongodb/morphia/annotations/Field;>;
20 28 14 field Lorg/mongodb/morphia/annotations/Field;
Signature: (Lorg/mongodb/morphia/mapping/MappedClass;Ljava/util/List<Lorg/mongodb/morphia/mapping/MappedClass;>;)Ljava/util/List<Lorg/mongodb/morphia/annotations/Index;>;
MethodParameters:
Name Flags
mc final
parentMCs final
private java.util.List<org.mongodb.morphia.annotations.Index> collectTopLevelIndexes(org.mongodb.morphia.mapping.MappedClass);
descriptor: (Lorg/mongodb/morphia/mapping/MappedClass;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=16, 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
ifnull 31
2: aload 1
ldc Lorg/mongodb/morphia/annotations/Indexes;
invokevirtual org.mongodb.morphia.mapping.MappedClass.getAnnotations:(Ljava/lang/Class;)Ljava/util/List;
astore 3
start local 3 3: aload 3
ifnull 30
4: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 29
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.mongodb.morphia.annotations.Indexes
astore 4
start local 4 6: aload 4
invokeinterface org.mongodb.morphia.annotations.Indexes.value:()[Lorg/mongodb/morphia/annotations/Index;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 28
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.annotations.Indexes java.util.Iterator top int int org.mongodb.morphia.annotations.Index[]
StackMap stack:
7: aload 9
iload 7
aaload
astore 6
start local 6 8: aload 6
astore 10
start local 10 9: aload 6
invokeinterface org.mongodb.morphia.annotations.Index.fields:()[Lorg/mongodb/morphia/annotations/Field;
arraylength
ifne 16
10: getstatic org.mongodb.morphia.IndexHelper.LOG:Lorg/mongodb/morphia/logging/Logger;
ldc "This index on '%s' is using deprecated configuration options. Please update to use the fields value on @Index: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
11: aload 1
invokevirtual org.mongodb.morphia.mapping.MappedClass.getClazz:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 6
invokeinterface org.mongodb.morphia.annotations.Index.toString:()Ljava/lang/String;
aastore
12: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.mongodb.morphia.logging.Logger.warning:(Ljava/lang/String;)V
13: new org.mongodb.morphia.IndexBuilder
dup
invokespecial org.mongodb.morphia.IndexBuilder.<init>:()V
14: aload 6
invokevirtual org.mongodb.morphia.IndexBuilder.migrate:(Lorg/mongodb/morphia/annotations/Index;)Lorg/mongodb/morphia/IndexBuilder;
15: astore 10
16: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.annotations.Indexes java.util.Iterator org.mongodb.morphia.annotations.Index int int org.mongodb.morphia.annotations.Index[] org.mongodb.morphia.annotations.Index
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 11
start local 11 17: aload 10
invokeinterface org.mongodb.morphia.annotations.Index.fields:()[Lorg/mongodb/morphia/annotations/Field;
dup
astore 15
arraylength
istore 14
iconst_0
istore 13
goto 25
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.annotations.Indexes java.util.Iterator org.mongodb.morphia.annotations.Index int int org.mongodb.morphia.annotations.Index[] org.mongodb.morphia.annotations.Index java.util.List top int int org.mongodb.morphia.annotations.Field[]
StackMap stack:
18: aload 15
iload 13
aaload
astore 12
start local 12 19: aload 11
new org.mongodb.morphia.FieldBuilder
dup
invokespecial org.mongodb.morphia.FieldBuilder.<init>:()V
20: aload 0
aload 1
aload 6
invokeinterface org.mongodb.morphia.annotations.Index.options:()Lorg/mongodb/morphia/annotations/IndexOptions;
aload 12
invokeinterface org.mongodb.morphia.annotations.Field.value:()Ljava/lang/String;
ldc "\\."
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual org.mongodb.morphia.IndexHelper.findField:(Lorg/mongodb/morphia/mapping/MappedClass;Lorg/mongodb/morphia/annotations/IndexOptions;Ljava/util/List;)Ljava/lang/String;
invokevirtual org.mongodb.morphia.FieldBuilder.value:(Ljava/lang/String;)Lorg/mongodb/morphia/FieldBuilder;
21: aload 12
invokeinterface org.mongodb.morphia.annotations.Field.type:()Lorg/mongodb/morphia/utils/IndexType;
invokevirtual org.mongodb.morphia.FieldBuilder.type:(Lorg/mongodb/morphia/utils/IndexType;)Lorg/mongodb/morphia/FieldBuilder;
22: aload 12
invokeinterface org.mongodb.morphia.annotations.Field.weight:()I
invokevirtual org.mongodb.morphia.FieldBuilder.weight:(I)Lorg/mongodb/morphia/FieldBuilder;
23: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 12 24: iinc 13 1
StackMap locals:
StackMap stack:
25: iload 13
iload 14
if_icmplt 18
26: aload 2
aload 0
aload 10
aload 11
invokevirtual org.mongodb.morphia.IndexHelper.replaceFields:(Lorg/mongodb/morphia/annotations/Index;Ljava/util/List;)Lorg/mongodb/morphia/annotations/Index;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 10 end local 6 27: iinc 7 1
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List org.mongodb.morphia.annotations.Indexes java.util.Iterator top int int org.mongodb.morphia.annotations.Index[]
StackMap stack:
28: iload 7
iload 8
if_icmplt 7
end local 4 29: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
30: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass java.util.List java.util.List
StackMap stack:
aload 2
aload 0
aload 1
invokevirtual org.mongodb.morphia.mapping.MappedClass.getSuperClass:()Lorg/mongodb/morphia/mapping/MappedClass;
invokevirtual org.mongodb.morphia.IndexHelper.collectTopLevelIndexes:(Lorg/mongodb/morphia/mapping/MappedClass;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
end local 3 31: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/mongodb/morphia/IndexHelper;
0 32 1 mc Lorg/mongodb/morphia/mapping/MappedClass;
1 32 2 list Ljava/util/List<Lorg/mongodb/morphia/annotations/Index;>;
3 31 3 annotations Ljava/util/List<Lorg/mongodb/morphia/annotations/Indexes;>;
6 29 4 indexes Lorg/mongodb/morphia/annotations/Indexes;
8 27 6 index Lorg/mongodb/morphia/annotations/Index;
9 27 10 updated Lorg/mongodb/morphia/annotations/Index;
17 27 11 fields Ljava/util/List<Lorg/mongodb/morphia/annotations/Field;>;
19 24 12 field Lorg/mongodb/morphia/annotations/Field;
Signature: (Lorg/mongodb/morphia/mapping/MappedClass;)Ljava/util/List<Lorg/mongodb/morphia/annotations/Index;>;
MethodParameters:
Name Flags
mc final
private java.util.Map<java.lang.String, java.lang.Object> extractOptions(org.mongodb.morphia.annotations.IndexOptions);
descriptor: (Lorg/mongodb/morphia/annotations/IndexOptions;)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.mongodb.morphia.AnnotationBuilder.toMap:(Ljava/lang/annotation/Annotation;)Ljava/util/Map;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/mongodb/morphia/IndexHelper;
0 1 1 options Lorg/mongodb/morphia/annotations/IndexOptions;
Signature: (Lorg/mongodb/morphia/annotations/IndexOptions;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
MethodParameters:
Name Flags
options final
private java.util.Map<java.lang.String, java.lang.Object> extractOptions(org.mongodb.morphia.annotations.Indexed);
descriptor: (Lorg/mongodb/morphia/annotations/Indexed;)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.mongodb.morphia.AnnotationBuilder.toMap:(Ljava/lang/annotation/Annotation;)Ljava/util/Map;
astore 2
start local 2 1: aload 1
invokeinterface org.mongodb.morphia.annotations.Indexed.options:()Lorg/mongodb/morphia/annotations/IndexOptions;
invokeinterface org.mongodb.morphia.annotations.IndexOptions.collation:()Lorg/mongodb/morphia/annotations/Collation;
invokeinterface org.mongodb.morphia.annotations.Collation.locale:()Ljava/lang/String;
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
2: aload 2
ldc "options"
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: StackMap locals: java.util.Map
StackMap stack:
aload 2
ldc "value"
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/mongodb/morphia/IndexHelper;
0 5 1 indexed Lorg/mongodb/morphia/annotations/Indexed;
1 5 2 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
Signature: (Lorg/mongodb/morphia/annotations/Indexed;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
MethodParameters:
Name Flags
indexed final
private org.mongodb.morphia.mapping.MappingException pathFail(org.mongodb.morphia.mapping.MappedClass, java.util.List<java.lang.String>);
descriptor: (Lorg/mongodb/morphia/mapping/MappedClass;Ljava/util/List;)Lorg/mongodb/morphia/mapping/MappingException;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new org.mongodb.morphia.mapping.MappingException
dup
ldc "Could not resolve path '%s' against '%s'."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
bipush 46
invokestatic org.mongodb.morphia.IndexHelper.join:(Ljava/util/List;C)Ljava/lang/String;
aastore
dup
iconst_1
aload 1
invokevirtual org.mongodb.morphia.mapping.MappedClass.getClazz:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial org.mongodb.morphia.mapping.MappingException.<init>:(Ljava/lang/String;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/mongodb/morphia/IndexHelper;
0 1 1 mc Lorg/mongodb/morphia/mapping/MappedClass;
0 1 2 path Ljava/util/List<Ljava/lang/String;>;
Signature: (Lorg/mongodb/morphia/mapping/MappedClass;Ljava/util/List<Ljava/lang/String;>;)Lorg/mongodb/morphia/mapping/MappingException;
MethodParameters:
Name Flags
mc final
path final
private org.mongodb.morphia.annotations.Index replaceFields(org.mongodb.morphia.annotations.Index, java.util.List<org.mongodb.morphia.annotations.Field>);
descriptor: (Lorg/mongodb/morphia/annotations/Index;Ljava/util/List;)Lorg/mongodb/morphia/annotations/Index;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new org.mongodb.morphia.IndexBuilder
dup
aload 1
invokespecial org.mongodb.morphia.IndexBuilder.<init>:(Lorg/mongodb/morphia/annotations/Index;)V
1: aload 2
invokevirtual org.mongodb.morphia.IndexBuilder.fields:(Ljava/util/List;)Lorg/mongodb/morphia/IndexBuilder;
2: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/mongodb/morphia/IndexHelper;
0 3 1 original Lorg/mongodb/morphia/annotations/Index;
0 3 2 list Ljava/util/List<Lorg/mongodb/morphia/annotations/Field;>;
Signature: (Lorg/mongodb/morphia/annotations/Index;Ljava/util/List<Lorg/mongodb/morphia/annotations/Field;>;)Lorg/mongodb/morphia/annotations/Index;
MethodParameters:
Name Flags
original final
list final
private org.bson.BsonDocument toBsonDocument(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)Lorg/bson/BsonDocument;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new org.bson.BsonDocumentWriter
dup
new org.bson.BsonDocument
dup
invokespecial org.bson.BsonDocument.<init>:()V
invokespecial org.bson.BsonDocumentWriter.<init>:(Lorg/bson/BsonDocument;)V
astore 3
start local 3 1: aload 3
invokevirtual org.bson.BsonDocumentWriter.writeStartDocument:()V
2: aload 3
aload 1
invokevirtual org.bson.BsonDocumentWriter.writeName:(Ljava/lang/String;)V
3: aload 0
getfield org.mongodb.morphia.IndexHelper.database:Lcom/mongodb/client/MongoDatabase;
invokeinterface com.mongodb.client.MongoDatabase.getCodecRegistry:()Lorg/bson/codecs/configuration/CodecRegistry;
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
aload 3
aload 2
getstatic org.mongodb.morphia.IndexHelper.ENCODER_CONTEXT:Lorg/bson/codecs/EncoderContext;
invokeinterface org.bson.codecs.Encoder.encode:(Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
4: aload 3
invokevirtual org.bson.BsonDocumentWriter.writeEndDocument:()V
5: aload 3
invokevirtual org.bson.BsonDocumentWriter.getDocument:()Lorg/bson/BsonDocument;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/mongodb/morphia/IndexHelper;
0 6 1 key Ljava/lang/String;
0 6 2 value Ljava/lang/Object;
1 6 3 writer Lorg/bson/BsonDocumentWriter;
MethodParameters:
Name Flags
key final
value final
org.bson.BsonDocument calculateKeys(org.mongodb.morphia.mapping.MappedClass, org.mongodb.morphia.annotations.Index);
descriptor: (Lorg/mongodb/morphia/mapping/MappedClass;Lorg/mongodb/morphia/annotations/Index;)Lorg/bson/BsonDocument;
flags: (0x0000)
Code:
stack=7, locals=10, args_size=3
start local 0 start local 1 start local 2 0: new org.bson.BsonDocument
dup
invokespecial org.bson.BsonDocument.<init>:()V
astore 3
start local 3 1: aload 2
invokeinterface org.mongodb.morphia.annotations.Index.fields:()[Lorg/mongodb/morphia/annotations/Field;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 15
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.annotations.Index org.bson.BsonDocument top int int org.mongodb.morphia.annotations.Field[]
StackMap stack:
2: aload 7
iload 5
aaload
astore 4
start local 4 3: aload 0
aload 1
aload 2
invokeinterface org.mongodb.morphia.annotations.Index.options:()Lorg/mongodb/morphia/annotations/IndexOptions;
new java.util.ArrayList
dup
aload 4
invokeinterface org.mongodb.morphia.annotations.Field.value:()Ljava/lang/String;
ldc "\\."
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
invokevirtual org.mongodb.morphia.IndexHelper.findField:(Lorg/mongodb/morphia/mapping/MappedClass;Lorg/mongodb/morphia/annotations/IndexOptions;Ljava/util/List;)Ljava/lang/String;
astore 8
start local 8 4: goto 13
end local 8 StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.annotations.Index org.bson.BsonDocument org.mongodb.morphia.annotations.Field int int org.mongodb.morphia.annotations.Field[]
StackMap stack: java.lang.Exception
5: pop
6: aload 4
invokeinterface org.mongodb.morphia.annotations.Field.value:()Ljava/lang/String;
astore 8
start local 8 7: ldc "The path '%s' can not be validated against '%s' and may represent an invalid index"
iconst_2
anewarray java.lang.Object
dup
iconst_0
8: aload 8
aastore
dup
iconst_1
aload 1
invokevirtual org.mongodb.morphia.mapping.MappedClass.getClazz:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
9: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 9
start local 9 10: aload 2
invokeinterface org.mongodb.morphia.annotations.Index.options:()Lorg/mongodb/morphia/annotations/IndexOptions;
invokeinterface org.mongodb.morphia.annotations.IndexOptions.disableValidation:()Z
ifne 12
11: new org.mongodb.morphia.mapping.MappingException
dup
aload 9
invokespecial org.mongodb.morphia.mapping.MappingException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals: java.lang.String java.lang.String
StackMap stack:
getstatic org.mongodb.morphia.IndexHelper.LOG:Lorg/mongodb/morphia/logging/Logger;
aload 9
invokeinterface org.mongodb.morphia.logging.Logger.warning:(Ljava/lang/String;)V
end local 9 13: StackMap locals:
StackMap stack:
aload 3
aload 0
aload 8
aload 4
invokeinterface org.mongodb.morphia.annotations.Field.type:()Lorg/mongodb/morphia/utils/IndexType;
invokevirtual org.mongodb.morphia.utils.IndexType.toIndexValue:()Ljava/lang/Object;
invokevirtual org.mongodb.morphia.IndexHelper.toBsonDocument:(Ljava/lang/String;Ljava/lang/Object;)Lorg/bson/BsonDocument;
invokevirtual org.bson.BsonDocument.putAll:(Ljava/util/Map;)V
end local 8 end local 4 14: iinc 5 1
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.annotations.Index org.bson.BsonDocument top int int org.mongodb.morphia.annotations.Field[]
StackMap stack:
15: iload 5
iload 6
if_icmplt 2
16: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/mongodb/morphia/IndexHelper;
0 17 1 mc Lorg/mongodb/morphia/mapping/MappedClass;
0 17 2 index Lorg/mongodb/morphia/annotations/Index;
1 17 3 keys Lorg/bson/BsonDocument;
3 14 4 field Lorg/mongodb/morphia/annotations/Field;
4 5 8 path Ljava/lang/String;
7 14 8 path Ljava/lang/String;
10 13 9 message Ljava/lang/String;
Exception table:
from to target type
3 4 5 Class java.lang.Exception
MethodParameters:
Name Flags
mc final
index final
com.mongodb.client.model.IndexOptions convert(org.mongodb.morphia.annotations.IndexOptions, boolean);
descriptor: (Lorg/mongodb/morphia/annotations/IndexOptions;Z)Lcom/mongodb/client/model/IndexOptions;
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.dropDups:()Z
ifeq 2
1: getstatic org.mongodb.morphia.IndexHelper.LOG:Lorg/mongodb/morphia/logging/Logger;
ldc "Support for dropDups has been removed from the server. Please remove this setting."
invokeinterface org.mongodb.morphia.logging.Logger.warning:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
new com.mongodb.client.model.IndexOptions
dup
invokespecial com.mongodb.client.model.IndexOptions.<init>:()V
3: aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.background:()Z
ifne 4
iload 2
ifne 4
iconst_0
goto 5
StackMap locals:
StackMap stack: com.mongodb.client.model.IndexOptions
4: iconst_1
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.annotations.IndexOptions int
StackMap stack: com.mongodb.client.model.IndexOptions int
5: invokevirtual com.mongodb.client.model.IndexOptions.background:(Z)Lcom/mongodb/client/model/IndexOptions;
6: aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.sparse:()Z
invokevirtual com.mongodb.client.model.IndexOptions.sparse:(Z)Lcom/mongodb/client/model/IndexOptions;
7: aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.unique:()Z
invokevirtual com.mongodb.client.model.IndexOptions.unique:(Z)Lcom/mongodb/client/model/IndexOptions;
8: astore 3
start local 3 9: aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.language:()Ljava/lang/String;
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
10: aload 3
aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.language:()Ljava/lang/String;
invokevirtual com.mongodb.client.model.IndexOptions.defaultLanguage:(Ljava/lang/String;)Lcom/mongodb/client/model/IndexOptions;
pop
11: StackMap locals: com.mongodb.client.model.IndexOptions
StackMap stack:
aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.languageOverride:()Ljava/lang/String;
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 13
12: aload 3
aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.languageOverride:()Ljava/lang/String;
invokevirtual com.mongodb.client.model.IndexOptions.languageOverride:(Ljava/lang/String;)Lcom/mongodb/client/model/IndexOptions;
pop
13: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.name:()Ljava/lang/String;
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
14: aload 3
aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.name:()Ljava/lang/String;
invokevirtual com.mongodb.client.model.IndexOptions.name:(Ljava/lang/String;)Lcom/mongodb/client/model/IndexOptions;
pop
15: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.expireAfterSeconds:()I
iconst_m1
if_icmpeq 17
16: aload 3
aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.expireAfterSeconds:()I
i2l
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual com.mongodb.client.model.IndexOptions.expireAfter:(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Lcom/mongodb/client/model/IndexOptions;
pop
17: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.partialFilter:()Ljava/lang/String;
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 19
18: aload 3
aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.partialFilter:()Ljava/lang/String;
invokestatic org.bson.Document.parse:(Ljava/lang/String;)Lorg/bson/Document;
invokevirtual com.mongodb.client.model.IndexOptions.partialFilterExpression:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/model/IndexOptions;
pop
19: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.collation:()Lorg/mongodb/morphia/annotations/Collation;
invokeinterface org.mongodb.morphia.annotations.Collation.locale:()Ljava/lang/String;
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 21
20: aload 3
aload 0
aload 1
invokeinterface org.mongodb.morphia.annotations.IndexOptions.collation:()Lorg/mongodb/morphia/annotations/Collation;
invokevirtual org.mongodb.morphia.IndexHelper.convert:(Lorg/mongodb/morphia/annotations/Collation;)Lcom/mongodb/client/model/Collation;
invokevirtual com.mongodb.client.model.IndexOptions.collation:(Lcom/mongodb/client/model/Collation;)Lcom/mongodb/client/model/IndexOptions;
pop
21: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/mongodb/morphia/IndexHelper;
0 22 1 options Lorg/mongodb/morphia/annotations/IndexOptions;
0 22 2 background Z
9 22 3 indexOptions Lcom/mongodb/client/model/IndexOptions;
MethodParameters:
Name Flags
options final
background final
com.mongodb.client.model.Collation convert(org.mongodb.morphia.annotations.Collation);
descriptor: (Lorg/mongodb/morphia/annotations/Collation;)Lcom/mongodb/client/model/Collation;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: invokestatic com.mongodb.client.model.Collation.builder:()Lcom/mongodb/client/model/Collation$Builder;
1: aload 1
invokeinterface org.mongodb.morphia.annotations.Collation.locale:()Ljava/lang/String;
invokevirtual com.mongodb.client.model.Collation$Builder.locale:(Ljava/lang/String;)Lcom/mongodb/client/model/Collation$Builder;
2: aload 1
invokeinterface org.mongodb.morphia.annotations.Collation.backwards:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual com.mongodb.client.model.Collation$Builder.backwards:(Ljava/lang/Boolean;)Lcom/mongodb/client/model/Collation$Builder;
3: aload 1
invokeinterface org.mongodb.morphia.annotations.Collation.caseLevel:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual com.mongodb.client.model.Collation$Builder.caseLevel:(Ljava/lang/Boolean;)Lcom/mongodb/client/model/Collation$Builder;
4: aload 1
invokeinterface org.mongodb.morphia.annotations.Collation.alternate:()Lcom/mongodb/client/model/CollationAlternate;
invokevirtual com.mongodb.client.model.Collation$Builder.collationAlternate:(Lcom/mongodb/client/model/CollationAlternate;)Lcom/mongodb/client/model/Collation$Builder;
5: aload 1
invokeinterface org.mongodb.morphia.annotations.Collation.caseFirst:()Lcom/mongodb/client/model/CollationCaseFirst;
invokevirtual com.mongodb.client.model.Collation$Builder.collationCaseFirst:(Lcom/mongodb/client/model/CollationCaseFirst;)Lcom/mongodb/client/model/Collation$Builder;
6: aload 1
invokeinterface org.mongodb.morphia.annotations.Collation.maxVariable:()Lcom/mongodb/client/model/CollationMaxVariable;
invokevirtual com.mongodb.client.model.Collation$Builder.collationMaxVariable:(Lcom/mongodb/client/model/CollationMaxVariable;)Lcom/mongodb/client/model/Collation$Builder;
7: aload 1
invokeinterface org.mongodb.morphia.annotations.Collation.strength:()Lcom/mongodb/client/model/CollationStrength;
invokevirtual com.mongodb.client.model.Collation$Builder.collationStrength:(Lcom/mongodb/client/model/CollationStrength;)Lcom/mongodb/client/model/Collation$Builder;
8: aload 1
invokeinterface org.mongodb.morphia.annotations.Collation.normalization:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual com.mongodb.client.model.Collation$Builder.normalization:(Ljava/lang/Boolean;)Lcom/mongodb/client/model/Collation$Builder;
9: aload 1
invokeinterface org.mongodb.morphia.annotations.Collation.numericOrdering:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual com.mongodb.client.model.Collation$Builder.numericOrdering:(Ljava/lang/Boolean;)Lcom/mongodb/client/model/Collation$Builder;
10: invokevirtual com.mongodb.client.model.Collation$Builder.build:()Lcom/mongodb/client/model/Collation;
11: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/mongodb/morphia/IndexHelper;
0 12 1 collation Lorg/mongodb/morphia/annotations/Collation;
MethodParameters:
Name Flags
collation final
java.lang.String findField(org.mongodb.morphia.mapping.MappedClass, org.mongodb.morphia.annotations.IndexOptions, java.util.List<java.lang.String>);
descriptor: (Lorg/mongodb/morphia/mapping/MappedClass;Lorg/mongodb/morphia/annotations/IndexOptions;Ljava/util/List;)Ljava/lang/String;
flags: (0x0000)
Code:
stack=7, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 1: aload 4
ldc "$**"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
2: aload 4
areturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 1
aload 4
invokevirtual org.mongodb.morphia.mapping.MappedClass.getMappedField:(Ljava/lang/String;)Lorg/mongodb/morphia/mapping/MappedField;
astore 5
start local 5 4: aload 5
ifnonnull 6
5: aload 1
aload 4
invokevirtual org.mongodb.morphia.mapping.MappedClass.getMappedFieldByJavaField:(Ljava/lang/String;)Lorg/mongodb/morphia/mapping/MappedField;
astore 5
6: StackMap locals: org.mongodb.morphia.mapping.MappedField
StackMap stack:
aload 5
ifnonnull 13
aload 1
invokevirtual org.mongodb.morphia.mapping.MappedClass.isInterface:()Z
ifeq 13
7: aload 0
getfield org.mongodb.morphia.IndexHelper.mapper:Lorg/mongodb/morphia/mapping/Mapper;
aload 1
invokevirtual org.mongodb.morphia.mapping.Mapper.getSubTypes:(Lorg/mongodb/morphia/mapping/MappedClass;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 12
StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.annotations.IndexOptions java.util.List java.lang.String org.mongodb.morphia.mapping.MappedField top java.util.Iterator
StackMap stack:
8: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.mongodb.morphia.mapping.MappedClass
astore 6
start local 6 9: aload 0
aload 6
aload 2
new java.util.ArrayList
dup
aload 3
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
invokevirtual org.mongodb.morphia.IndexHelper.findField:(Lorg/mongodb/morphia/mapping/MappedClass;Lorg/mongodb/morphia/annotations/IndexOptions;Ljava/util/List;)Ljava/lang/String;
10: areturn
11: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.annotations.IndexOptions java.util.List java.lang.String org.mongodb.morphia.mapping.MappedField org.mongodb.morphia.mapping.MappedClass java.util.Iterator
StackMap stack: org.mongodb.morphia.mapping.MappingException
pop
end local 6 12: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.annotations.IndexOptions java.util.List java.lang.String org.mongodb.morphia.mapping.MappedField top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
13: StackMap locals: org.mongodb.morphia.IndexHelper org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.annotations.IndexOptions java.util.List java.lang.String org.mongodb.morphia.mapping.MappedField
StackMap stack:
aload 5
ifnull 16
14: aload 5
invokevirtual org.mongodb.morphia.mapping.MappedField.getNameToStore:()Ljava/lang/String;
astore 6
start local 6 15: goto 19
end local 6 16: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.mongodb.morphia.annotations.IndexOptions.disableValidation:()Z
ifne 18
17: aload 0
aload 1
aload 3
invokevirtual org.mongodb.morphia.IndexHelper.pathFail:(Lorg/mongodb/morphia/mapping/MappedClass;Ljava/util/List;)Lorg/mongodb/morphia/mapping/MappingException;
athrow
18: StackMap locals:
StackMap stack:
aload 3
bipush 46
invokestatic org.mongodb.morphia.IndexHelper.join:(Ljava/util/List;C)Ljava/lang/String;
areturn
start local 6 19: StackMap locals: java.lang.String
StackMap stack:
aload 3
invokeinterface java.util.List.size:()I
iconst_1
if_icmple 29
20: aload 5
invokevirtual org.mongodb.morphia.mapping.MappedField.isSingleValue:()Z
ifne 21
aload 5
invokevirtual org.mongodb.morphia.mapping.MappedField.getSubClass:()Ljava/lang/Class;
goto 22
StackMap locals:
StackMap stack:
21: aload 5
invokevirtual org.mongodb.morphia.mapping.MappedField.getConcreteType:()Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.Class
22: astore 7
start local 7 23: new java.lang.StringBuilder
dup
aload 6
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
aload 0
getfield org.mongodb.morphia.IndexHelper.mapper:Lorg/mongodb/morphia/mapping/Mapper;
aload 7
invokevirtual org.mongodb.morphia.mapping.Mapper.getMappedClass:(Ljava/lang/Object;)Lorg/mongodb/morphia/mapping/MappedClass;
aload 2
aload 3
iconst_1
aload 3
invokeinterface java.util.List.size:()I
invokeinterface java.util.List.subList:(II)Ljava/util/List;
invokevirtual org.mongodb.morphia.IndexHelper.findField:(Lorg/mongodb/morphia/mapping/MappedClass;Lorg/mongodb/morphia/annotations/IndexOptions;Ljava/util/List;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 6
end local 7 24: goto 29
StackMap locals:
StackMap stack: org.mongodb.morphia.mapping.MappingException
25: pop
26: aload 2
invokeinterface org.mongodb.morphia.annotations.IndexOptions.disableValidation:()Z
ifne 28
27: aload 0
aload 1
aload 3
invokevirtual org.mongodb.morphia.IndexHelper.pathFail:(Lorg/mongodb/morphia/mapping/MappedClass;Ljava/util/List;)Lorg/mongodb/morphia/mapping/MappingException;
athrow
28: StackMap locals:
StackMap stack:
aload 3
bipush 46
invokestatic org.mongodb.morphia.IndexHelper.join:(Ljava/util/List;C)Ljava/lang/String;
areturn
29: StackMap locals:
StackMap stack:
aload 6
areturn
end local 6 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 30 0 this Lorg/mongodb/morphia/IndexHelper;
0 30 1 mc Lorg/mongodb/morphia/mapping/MappedClass;
0 30 2 options Lorg/mongodb/morphia/annotations/IndexOptions;
0 30 3 path Ljava/util/List<Ljava/lang/String;>;
1 30 4 segment Ljava/lang/String;
4 30 5 mf Lorg/mongodb/morphia/mapping/MappedField;
9 12 6 mappedClass Lorg/mongodb/morphia/mapping/MappedClass;
15 16 6 namePath Ljava/lang/String;
19 30 6 namePath Ljava/lang/String;
23 24 7 concreteType Ljava/lang/Class;
Exception table:
from to target type
9 10 11 Class org.mongodb.morphia.mapping.MappingException
20 24 25 Class org.mongodb.morphia.mapping.MappingException
Signature: (Lorg/mongodb/morphia/mapping/MappedClass;Lorg/mongodb/morphia/annotations/IndexOptions;Ljava/util/List<Ljava/lang/String;>;)Ljava/lang/String;
MethodParameters:
Name Flags
mc final
options final
path final
void createIndex(com.mongodb.client.MongoCollection, org.mongodb.morphia.mapping.MappedClass, boolean);
descriptor: (Lcom/mongodb/client/MongoCollection;Lorg/mongodb/morphia/mapping/MappedClass;Z)V
flags: (0x0000)
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual org.mongodb.morphia.mapping.MappedClass.isInterface:()Z
ifne 5
aload 2
invokevirtual org.mongodb.morphia.mapping.MappedClass.isAbstract:()Z
ifne 5
1: aload 0
aload 2
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
invokevirtual org.mongodb.morphia.IndexHelper.collectIndexes:(Lorg/mongodb/morphia/mapping/MappedClass;Ljava/util/List;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 4
StackMap locals: org.mongodb.morphia.IndexHelper com.mongodb.client.MongoCollection org.mongodb.morphia.mapping.MappedClass int top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.mongodb.morphia.annotations.Index
astore 4
start local 4 3: aload 0
aload 1
aload 2
aload 4
iload 3
invokevirtual org.mongodb.morphia.IndexHelper.createIndex:(Lcom/mongodb/client/MongoCollection;Lorg/mongodb/morphia/mapping/MappedClass;Lorg/mongodb/morphia/annotations/Index;Z)V
end local 4 4: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: StackMap locals: org.mongodb.morphia.IndexHelper com.mongodb.client.MongoCollection org.mongodb.morphia.mapping.MappedClass int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/mongodb/morphia/IndexHelper;
0 6 1 collection Lcom/mongodb/client/MongoCollection;
0 6 2 mc Lorg/mongodb/morphia/mapping/MappedClass;
0 6 3 background Z
3 4 4 index Lorg/mongodb/morphia/annotations/Index;
MethodParameters:
Name Flags
collection final
mc final
background final
void createIndex(com.mongodb.client.MongoCollection, org.mongodb.morphia.mapping.MappedClass, org.mongodb.morphia.annotations.Index, boolean);
descriptor: (Lcom/mongodb/client/MongoCollection;Lorg/mongodb/morphia/mapping/MappedClass;Lorg/mongodb/morphia/annotations/Index;Z)V
flags: (0x0000)
Code:
stack=3, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
invokestatic org.mongodb.morphia.IndexBuilder.normalize:(Lorg/mongodb/morphia/annotations/Index;)Lorg/mongodb/morphia/annotations/Index;
astore 5
start local 5 1: aload 0
aload 2
aload 5
invokevirtual org.mongodb.morphia.IndexHelper.calculateKeys:(Lorg/mongodb/morphia/mapping/MappedClass;Lorg/mongodb/morphia/annotations/Index;)Lorg/bson/BsonDocument;
astore 6
start local 6 2: aload 0
aload 5
invokeinterface org.mongodb.morphia.annotations.Index.options:()Lorg/mongodb/morphia/annotations/IndexOptions;
iload 4
invokevirtual org.mongodb.morphia.IndexHelper.convert:(Lorg/mongodb/morphia/annotations/IndexOptions;Z)Lcom/mongodb/client/model/IndexOptions;
astore 7
start local 7 3: aload 0
aload 5
aload 7
invokevirtual org.mongodb.morphia.IndexHelper.calculateWeights:(Lorg/mongodb/morphia/annotations/Index;Lcom/mongodb/client/model/IndexOptions;)V
4: aload 1
aload 6
aload 7
invokeinterface com.mongodb.client.MongoCollection.createIndex:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;)Ljava/lang/String;
pop
5: return
end local 7 end local 6 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 6 0 this Lorg/mongodb/morphia/IndexHelper;
0 6 1 collection Lcom/mongodb/client/MongoCollection;
0 6 2 mc Lorg/mongodb/morphia/mapping/MappedClass;
0 6 3 index Lorg/mongodb/morphia/annotations/Index;
0 6 4 background Z
1 6 5 normalized Lorg/mongodb/morphia/annotations/Index;
2 6 6 keys Lorg/bson/BsonDocument;
3 6 7 indexOptions Lcom/mongodb/client/model/IndexOptions;
MethodParameters:
Name Flags
collection final
mc final
index final
background final
}
SourceFile: "IndexHelper.java"
InnerClasses:
public final Builder = com.mongodb.client.model.Collation$Builder of com.mongodb.client.model.Collation
public final Builder = org.bson.codecs.EncoderContext$Builder of org.bson.codecs.EncoderContext