class org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec<T> implements org.bson.codecs.Codec<java.util.Collection<T>>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec
super_class: java.lang.Object
{
private final java.lang.Class<java.util.Collection<T>> encoderClass;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<Ljava/util/Collection<TT;>;>;
private final org.bson.codecs.Codec<T> codec;
descriptor: Lorg/bson/codecs/Codec;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/bson/codecs/Codec<TT;>;
void <init>(java.lang.Class<java.util.Collection<T>>, org.bson.codecs.Codec<T>);
descriptor: (Ljava/lang/Class;Lorg/bson/codecs/Codec;)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.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec.encoderClass:Ljava/lang/Class;
2: aload 0
aload 2
putfield org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec.codec:Lorg/bson/codecs/Codec;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bson/codecs/pojo/CollectionPropertyCodecProvider$CollectionCodec<TT;>;
0 4 1 encoderClass Ljava/lang/Class<Ljava/util/Collection<TT;>;>;
0 4 2 codec Lorg/bson/codecs/Codec<TT;>;
Signature: (Ljava/lang/Class<Ljava/util/Collection<TT;>;>;Lorg/bson/codecs/Codec<TT;>;)V
MethodParameters:
Name Flags
encoderClass final
codec final
public void encode(org.bson.BsonWriter, java.util.Collection<T>, org.bson.codecs.EncoderContext);
descriptor: (Lorg/bson/BsonWriter;Ljava/util/Collection;Lorg/bson/codecs/EncoderContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokeinterface org.bson.BsonWriter.writeStartArray:()V
1: aload 2
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec org.bson.BsonWriter java.util.Collection org.bson.codecs.EncoderContext top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Object
astore 4
start local 4 3: aload 4
ifnonnull 6
4: aload 1
invokeinterface org.bson.BsonWriter.writeNull:()V
5: goto 7
6: StackMap locals: org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec org.bson.BsonWriter java.util.Collection org.bson.codecs.EncoderContext java.lang.Object java.util.Iterator
StackMap stack:
aload 0
getfield org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec.codec:Lorg/bson/codecs/Codec;
aload 1
aload 4
aload 3
invokeinterface org.bson.codecs.Codec.encode:(Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
end local 4 7: StackMap locals: org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec org.bson.BsonWriter java.util.Collection org.bson.codecs.EncoderContext top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
8: aload 1
invokeinterface org.bson.BsonWriter.writeEndArray:()V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bson/codecs/pojo/CollectionPropertyCodecProvider$CollectionCodec<TT;>;
0 10 1 writer Lorg/bson/BsonWriter;
0 10 2 collection Ljava/util/Collection<TT;>;
0 10 3 encoderContext Lorg/bson/codecs/EncoderContext;
3 7 4 value TT;
Signature: (Lorg/bson/BsonWriter;Ljava/util/Collection<TT;>;Lorg/bson/codecs/EncoderContext;)V
MethodParameters:
Name Flags
writer final
collection final
encoderContext final
public java.util.Collection<T> decode(org.bson.BsonReader, org.bson.codecs.DecoderContext);
descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec.getInstance:()Ljava/util/Collection;
astore 3
start local 3 1: aload 1
invokeinterface org.bson.BsonReader.readStartArray:()V
2: goto 8
3: StackMap locals: java.util.Collection
StackMap stack:
aload 1
invokeinterface org.bson.BsonReader.getCurrentBsonType:()Lorg/bson/BsonType;
getstatic org.bson.BsonType.NULL:Lorg/bson/BsonType;
if_acmpne 7
4: aload 3
aconst_null
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
5: aload 1
invokeinterface org.bson.BsonReader.readNull:()V
6: goto 8
7: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec.codec:Lorg/bson/codecs/Codec;
aload 1
aload 2
invokeinterface org.bson.codecs.Codec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
8: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.bson.BsonReader.readBsonType:()Lorg/bson/BsonType;
getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
if_acmpne 3
9: aload 1
invokeinterface org.bson.BsonReader.readEndArray:()V
10: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/bson/codecs/pojo/CollectionPropertyCodecProvider$CollectionCodec<TT;>;
0 11 1 reader Lorg/bson/BsonReader;
0 11 2 context Lorg/bson/codecs/DecoderContext;
1 11 3 collection Ljava/util/Collection<TT;>;
Signature: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/util/Collection<TT;>;
MethodParameters:
Name Flags
reader final
context final
public java.lang.Class<java.util.Collection<T>> getEncoderClass();
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.CollectionPropertyCodecProvider$CollectionCodec.encoderClass:Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bson/codecs/pojo/CollectionPropertyCodecProvider$CollectionCodec<TT;>;
Signature: ()Ljava/lang/Class<Ljava/util/Collection<TT;>;>;
private java.util.Collection<T> getInstance();
descriptor: ()Ljava/util/Collection;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=2, args_size=1
start local 0 0: aload 0
getfield org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec.encoderClass:Ljava/lang/Class;
invokevirtual java.lang.Class.isInterface:()Z
ifeq 6
1: aload 0
getfield org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec.encoderClass:Ljava/lang/Class;
ldc Ljava/util/ArrayList;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 3
2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec.encoderClass:Ljava/lang/Class;
ldc Ljava/util/HashSet;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 5
4: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
areturn
5: StackMap locals:
StackMap stack:
new org.bson.codecs.configuration.CodecConfigurationException
dup
ldc "Unsupported Collection interface of %s!"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec.encoderClass: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.bson.codecs.configuration.CodecConfigurationException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec.encoderClass:Ljava/lang/Class;
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Collection
7: areturn
8: StackMap locals:
StackMap stack: java.lang.Exception
astore 1
start local 1 9: new org.bson.codecs.configuration.CodecConfigurationException
dup
aload 1
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
aload 1
invokespecial org.bson.codecs.configuration.CodecConfigurationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bson/codecs/pojo/CollectionPropertyCodecProvider$CollectionCodec<TT;>;
9 10 1 e Ljava/lang/Exception;
Exception table:
from to target type
6 7 8 Class java.lang.Exception
Signature: ()Ljava/util/Collection<TT;>;
public java.lang.Object decode(org.bson.BsonReader, org.bson.codecs.DecoderContext);
descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
invokevirtual org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/util/Collection;
areturn
LocalVariableTable:
Start End Slot Name Signature
public void encode(org.bson.BsonWriter, java.lang.Object, org.bson.codecs.EncoderContext);
descriptor: (Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
0: aload 0
aload 1
aload 2
checkcast java.util.Collection
aload 3
invokevirtual org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec.encode:(Lorg/bson/BsonWriter;Ljava/util/Collection;Lorg/bson/codecs/EncoderContext;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lorg/bson/codecs/Codec<Ljava/util/Collection<TT;>;>;
SourceFile: "CollectionPropertyCodecProvider.java"
NestHost: org.bson.codecs.pojo.CollectionPropertyCodecProvider
InnerClasses:
private CollectionCodec = org.bson.codecs.pojo.CollectionPropertyCodecProvider$CollectionCodec of org.bson.codecs.pojo.CollectionPropertyCodecProvider