public class com.mongodb.ReflectionDBObject$JavaWrapper
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.mongodb.ReflectionDBObject$JavaWrapper
super_class: java.lang.Object
{
final java.lang.Class clazz;
descriptor: Ljava/lang/Class;
flags: (0x0010) ACC_FINAL
final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0010) ACC_FINAL
final java.util.Map<java.lang.String, com.mongodb.ReflectionDBObject$FieldInfo> fields;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lcom/mongodb/ReflectionDBObject$FieldInfo;>;
final java.util.Set<java.lang.String> keys;
descriptor: Ljava/util/Set;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
void <init>(java.lang.Class);
descriptor: (Ljava/lang/Class;)V
flags: (0x0000)
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.mongodb.ReflectionDBObject$JavaWrapper.clazz:Ljava/lang/Class;
2: aload 0
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
putfield com.mongodb.ReflectionDBObject$JavaWrapper.name:Ljava/lang/String;
3: aload 0
new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
putfield com.mongodb.ReflectionDBObject$JavaWrapper.fields:Ljava/util/Map;
4: aload 1
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 23
StackMap locals: com.mongodb.ReflectionDBObject$JavaWrapper java.lang.Class top int int java.lang.reflect.Method[]
StackMap stack:
5: aload 5
iload 3
aaload
astore 2
start local 2 6: aload 2
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "get"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 8
aload 2
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "set"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 8
7: goto 22
8: StackMap locals: com.mongodb.ReflectionDBObject$JavaWrapper java.lang.Class java.lang.reflect.Method int int java.lang.reflect.Method[]
StackMap stack:
aload 2
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
iconst_3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 6
start local 6 9: aload 6
invokevirtual java.lang.String.length:()I
ifeq 22
getstatic com.mongodb.ReflectionDBObject.IGNORE_FIELDS:Ljava/util/Set;
aload 6
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 11
10: goto 22
11: StackMap locals: java.lang.String
StackMap stack:
aload 2
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "get"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 12
aload 2
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
goto 13
StackMap locals:
StackMap stack:
12: aload 2
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
iconst_0
aaload
StackMap locals:
StackMap stack: java.lang.Class
13: astore 7
start local 7 14: aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.fields:Ljava/util/Map;
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.ReflectionDBObject$FieldInfo
astore 8
start local 8 15: aload 8
ifnonnull 18
16: new com.mongodb.ReflectionDBObject$FieldInfo
dup
aload 6
aload 7
invokespecial com.mongodb.ReflectionDBObject$FieldInfo.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
astore 8
17: aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.fields:Ljava/util/Map;
aload 6
aload 8
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: StackMap locals: java.lang.Class com.mongodb.ReflectionDBObject$FieldInfo
StackMap stack:
aload 2
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "get"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 21
19: aload 8
aload 2
putfield com.mongodb.ReflectionDBObject$FieldInfo.getter:Ljava/lang/reflect/Method;
20: goto 22
21: StackMap locals:
StackMap stack:
aload 8
aload 2
putfield com.mongodb.ReflectionDBObject$FieldInfo.setter:Ljava/lang/reflect/Method;
end local 8 end local 7 end local 6 end local 2 22: StackMap locals: com.mongodb.ReflectionDBObject$JavaWrapper java.lang.Class top int int java.lang.reflect.Method[]
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
23: iload 3
iload 4
if_icmplt 5
24: new java.util.HashSet
dup
aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.fields:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 2
start local 2 25: aload 2
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 29
StackMap locals: com.mongodb.ReflectionDBObject$JavaWrapper java.lang.Class java.util.Set top java.util.Iterator
StackMap stack:
26: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 27: aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.fields:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.ReflectionDBObject$FieldInfo
invokevirtual com.mongodb.ReflectionDBObject$FieldInfo.ok:()Z
ifne 29
28: aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.fields:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 3 29: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
30: aload 0
aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.fields:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
putfield com.mongodb.ReflectionDBObject$JavaWrapper.keys:Ljava/util/Set;
31: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/mongodb/ReflectionDBObject$JavaWrapper;
0 32 1 c Ljava/lang/Class;
6 22 2 m Ljava/lang/reflect/Method;
9 22 6 name Ljava/lang/String;
14 22 7 type Ljava/lang/Class;
15 22 8 fi Lcom/mongodb/ReflectionDBObject$FieldInfo;
25 32 2 names Ljava/util/Set<Ljava/lang/String;>;
27 29 3 name Ljava/lang/String;
MethodParameters:
Name Flags
c final
public java.util.Set<java.lang.String> keySet();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.keys:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/ReflectionDBObject$JavaWrapper;
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
public boolean containsKey(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.keys:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/ReflectionDBObject$JavaWrapper;
0 1 1 key Ljava/lang/String;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
key final
public java.lang.Object get(com.mongodb.ReflectionDBObject, java.lang.String);
descriptor: (Lcom/mongodb/ReflectionDBObject;Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.fields:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.ReflectionDBObject$FieldInfo
astore 3
start local 3 1: aload 3
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: com.mongodb.ReflectionDBObject$FieldInfo
StackMap stack:
aload 3
getfield com.mongodb.ReflectionDBObject$FieldInfo.getter:Ljava/lang/reflect/Method;
aload 1
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
4: areturn
5: StackMap locals:
StackMap stack: java.lang.Exception
astore 4
start local 4 6: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "could not invoke getter for ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] on ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/mongodb/ReflectionDBObject$JavaWrapper;
0 7 1 document Lcom/mongodb/ReflectionDBObject;
0 7 2 fieldName Ljava/lang/String;
1 7 3 i Lcom/mongodb/ReflectionDBObject$FieldInfo;
6 7 4 e Ljava/lang/Exception;
Exception table:
from to target type
3 4 5 Class java.lang.Exception
RuntimeVisibleAnnotations:
com.mongodb.lang.Nullable()
MethodParameters:
Name Flags
document final
fieldName final
public java.lang.Object set(com.mongodb.ReflectionDBObject, java.lang.String, java.lang.Object);
descriptor: (Lcom/mongodb/ReflectionDBObject;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.fields:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.ReflectionDBObject$FieldInfo
astore 4
start local 4 1: aload 4
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "no field ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] on ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.mongodb.ReflectionDBObject$FieldInfo
StackMap stack:
aload 4
getfield com.mongodb.ReflectionDBObject$FieldInfo.setter:Ljava/lang/reflect/Method;
aload 1
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
4: areturn
5: StackMap locals:
StackMap stack: java.lang.Exception
astore 5
start local 5 6: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "could not invoke setter for ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] on ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
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 7 0 this Lcom/mongodb/ReflectionDBObject$JavaWrapper;
0 7 1 document Lcom/mongodb/ReflectionDBObject;
0 7 2 fieldName Ljava/lang/String;
0 7 3 value Ljava/lang/Object;
1 7 4 i Lcom/mongodb/ReflectionDBObject$FieldInfo;
6 7 5 e Ljava/lang/Exception;
Exception table:
from to target type
3 4 5 Class java.lang.Exception
MethodParameters:
Name Flags
document final
fieldName final
value final
java.lang.Class<? extends com.mongodb.DBObject> getInternalClass(java.util.List<java.lang.String>);
descriptor: (Ljava/util/List;)Ljava/lang/Class;
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 1: aload 0
getfield com.mongodb.ReflectionDBObject$JavaWrapper.fields:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.ReflectionDBObject$FieldInfo
astore 3
start local 3 2: aload 3
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: java.lang.String com.mongodb.ReflectionDBObject$FieldInfo
StackMap stack:
aload 1
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 6
5: aload 3
getfield com.mongodb.ReflectionDBObject$FieldInfo.clazz:Ljava/lang/Class;
areturn
6: StackMap locals:
StackMap stack:
aload 3
getfield com.mongodb.ReflectionDBObject$FieldInfo.clazz:Ljava/lang/Class;
invokestatic com.mongodb.ReflectionDBObject.getWrapperIfReflectionObject:(Ljava/lang/Class;)Lcom/mongodb/ReflectionDBObject$JavaWrapper;
astore 4
start local 4 7: aload 4
ifnonnull 9
8: aconst_null
areturn
9: StackMap locals: com.mongodb.ReflectionDBObject$JavaWrapper
StackMap stack:
aload 4
aload 1
iconst_1
aload 1
invokeinterface java.util.List.size:()I
invokeinterface java.util.List.subList:(II)Ljava/util/List;
invokevirtual com.mongodb.ReflectionDBObject$JavaWrapper.getInternalClass:(Ljava/util/List;)Ljava/lang/Class;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/mongodb/ReflectionDBObject$JavaWrapper;
0 10 1 path Ljava/util/List<Ljava/lang/String;>;
1 10 2 cur Ljava/lang/String;
2 10 3 fi Lcom/mongodb/ReflectionDBObject$FieldInfo;
7 10 4 w Lcom/mongodb/ReflectionDBObject$JavaWrapper;
Signature: (Ljava/util/List<Ljava/lang/String;>;)Ljava/lang/Class<+Lcom/mongodb/DBObject;>;
RuntimeVisibleAnnotations:
com.mongodb.lang.Nullable()
MethodParameters:
Name Flags
path final
}
SourceFile: "ReflectionDBObject.java"
NestHost: com.mongodb.ReflectionDBObject
InnerClasses:
FieldInfo = com.mongodb.ReflectionDBObject$FieldInfo of com.mongodb.ReflectionDBObject
public JavaWrapper = com.mongodb.ReflectionDBObject$JavaWrapper of com.mongodb.ReflectionDBObject