public abstract class org.mongodb.morphia.converters.Converters
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.mongodb.morphia.converters.Converters
  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 final org.mongodb.morphia.mapping.Mapper mapper;
    descriptor: Lorg/mongodb/morphia/mapping/Mapper;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<org.mongodb.morphia.converters.TypeConverter> untypedTypeEncoders;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/mongodb/morphia/converters/TypeConverter;>;

  private final java.util.Map<java.lang.Class, java.util.List<org.mongodb.morphia.converters.TypeConverter>> tcMap;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class;Ljava/util/List<Lorg/mongodb/morphia/converters/TypeConverter;>;>;

  private final java.util.List<java.lang.Class<? extends org.mongodb.morphia.converters.TypeConverter>> registeredConverterClasses;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/Class<+Lorg/mongodb/morphia/converters/TypeConverter;>;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 24
            ldc Lorg/mongodb/morphia/converters/Converters;
            invokestatic org.mongodb.morphia.logging.MorphiaLoggerFactory.get:(Ljava/lang/Class;)Lorg/mongodb/morphia/logging/Logger;
            putstatic org.mongodb.morphia.converters.Converters.LOG:Lorg/mongodb/morphia/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.mongodb.morphia.mapping.Mapper);
    descriptor: (Lorg/mongodb/morphia/mapping/Mapper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // org.mongodb.morphia.mapping.Mapper mapper
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 27
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield org.mongodb.morphia.converters.Converters.untypedTypeEncoders:Ljava/util/List;
         2: .line 28
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.mongodb.morphia.converters.Converters.tcMap:Ljava/util/Map;
         3: .line 29
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.mongodb.morphia.converters.Converters.registeredConverterClasses:Ljava/util/List;
         4: .line 37
            aload 0 /* this */
            aload 1 /* mapper */
            putfield org.mongodb.morphia.converters.Converters.mapper:Lorg/mongodb/morphia/mapping/Mapper;
         5: .line 38
            return
        end local 1 // org.mongodb.morphia.mapping.Mapper mapper
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/mongodb/morphia/converters/Converters;
            0    6     1  mapper  Lorg/mongodb/morphia/mapping/Mapper;
    MethodParameters:
        Name  Flags
      mapper  final

  public org.mongodb.morphia.converters.TypeConverter addConverter(java.lang.Class<? extends org.mongodb.morphia.converters.TypeConverter>);
    descriptor: (Ljava/lang/Class;)Lorg/mongodb/morphia/converters/TypeConverter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // java.lang.Class clazz
         0: .line 47
            aload 0 /* this */
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.mapper:Lorg/mongodb/morphia/mapping/Mapper;
            invokevirtual org.mongodb.morphia.mapping.Mapper.getOptions:()Lorg/mongodb/morphia/mapping/MapperOptions;
            invokevirtual org.mongodb.morphia.mapping.MapperOptions.getObjectFactory:()Lorg/mongodb/morphia/ObjectFactory;
            aload 1 /* clazz */
            invokeinterface org.mongodb.morphia.ObjectFactory.createInstance:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.mongodb.morphia.converters.TypeConverter
            invokevirtual org.mongodb.morphia.converters.Converters.addConverter:(Lorg/mongodb/morphia/converters/TypeConverter;)Lorg/mongodb/morphia/converters/TypeConverter;
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/mongodb/morphia/converters/Converters;
            0    1     1  clazz  Ljava/lang/Class<+Lorg/mongodb/morphia/converters/TypeConverter;>;
    Signature: (Ljava/lang/Class<+Lorg/mongodb/morphia/converters/TypeConverter;>;)Lorg/mongodb/morphia/converters/TypeConverter;
    MethodParameters:
       Name  Flags
      clazz  final

  public org.mongodb.morphia.converters.TypeConverter addConverter(org.mongodb.morphia.converters.TypeConverter);
    descriptor: (Lorg/mongodb/morphia/converters/TypeConverter;)Lorg/mongodb/morphia/converters/TypeConverter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // org.mongodb.morphia.converters.TypeConverter tc
         0: .line 57
            aload 1 /* tc */
            invokevirtual org.mongodb.morphia.converters.TypeConverter.getSupportedTypes:()[Ljava/lang/Class;
            ifnull 7
         1: .line 58
            aload 1 /* tc */
            invokevirtual org.mongodb.morphia.converters.TypeConverter.getSupportedTypes:()[Ljava/lang/Class;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: org.mongodb.morphia.converters.Converters org.mongodb.morphia.converters.TypeConverter top int int java.lang.Class[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* c */
        start local 2 // java.lang.Class c
         3: .line 59
            aload 0 /* this */
            aload 2 /* c */
            aload 1 /* tc */
            invokevirtual org.mongodb.morphia.converters.Converters.addTypedConverter:(Ljava/lang/Class;Lorg/mongodb/morphia/converters/TypeConverter;)V
        end local 2 // java.lang.Class c
         4: .line 58
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 61
            goto 8
         7: .line 62
      StackMap locals: org.mongodb.morphia.converters.Converters org.mongodb.morphia.converters.TypeConverter
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.untypedTypeEncoders:Ljava/util/List;
            aload 1 /* tc */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 65
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.registeredConverterClasses:Ljava/util/List;
            aload 1 /* tc */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 66
            aload 1 /* tc */
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.mapper:Lorg/mongodb/morphia/mapping/Mapper;
            invokevirtual org.mongodb.morphia.converters.TypeConverter.setMapper:(Lorg/mongodb/morphia/mapping/Mapper;)V
        10: .line 68
            aload 1 /* tc */
            areturn
        end local 1 // org.mongodb.morphia.converters.TypeConverter tc
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/mongodb/morphia/converters/Converters;
            0   11     1    tc  Lorg/mongodb/morphia/converters/TypeConverter;
            3    4     2     c  Ljava/lang/Class;
    MethodParameters:
      Name  Flags
      tc    final

  public java.lang.Object decode(java.lang.Class, java.lang.Object, org.mongodb.morphia.mapping.MappedField);
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // java.lang.Class c
        start local 2 // java.lang.Object fromDBObject
        start local 3 // org.mongodb.morphia.mapping.MappedField mf
         0: .line 81
            aload 1 /* c */
            astore 4 /* toDecode */
        start local 4 // java.lang.Class toDecode
         1: .line 82
            aload 4 /* toDecode */
            ifnonnull 3
         2: .line 83
            aload 2 /* fromDBObject */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 4 /* toDecode */
         3: .line 85
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            aload 4 /* toDecode */
            invokevirtual org.mongodb.morphia.converters.Converters.getEncoder:(Ljava/lang/Class;)Lorg/mongodb/morphia/converters/TypeConverter;
            aload 4 /* toDecode */
            aload 2 /* fromDBObject */
            aload 3 /* mf */
            invokevirtual org.mongodb.morphia.converters.TypeConverter.decode:(Ljava/lang/Class;Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Class toDecode
        end local 3 // org.mongodb.morphia.mapping.MappedField mf
        end local 2 // java.lang.Object fromDBObject
        end local 1 // java.lang.Class c
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/mongodb/morphia/converters/Converters;
            0    4     1             c  Ljava/lang/Class;
            0    4     2  fromDBObject  Ljava/lang/Object;
            0    4     3            mf  Lorg/mongodb/morphia/mapping/MappedField;
            1    4     4      toDecode  Ljava/lang/Class;
    MethodParameters:
              Name  Flags
      c             final
      fromDBObject  final
      mf            final

  public java.lang.Object encode(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // java.lang.Object o
         0: .line 95
            aload 1 /* o */
            ifnonnull 2
         1: .line 96
            aconst_null
            areturn
         2: .line 98
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* o */
            invokevirtual org.mongodb.morphia.converters.Converters.encode:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object o
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/mongodb/morphia/converters/Converters;
            0    3     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     final

  public java.lang.Object encode(java.lang.Class, java.lang.Object);
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // java.lang.Class c
        start local 2 // java.lang.Object o
         0: .line 109
            aload 0 /* this */
            aload 1 /* c */
            invokevirtual org.mongodb.morphia.converters.Converters.getEncoder:(Ljava/lang/Class;)Lorg/mongodb/morphia/converters/TypeConverter;
            aload 2 /* o */
            invokevirtual org.mongodb.morphia.converters.TypeConverter.encode:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object o
        end local 1 // java.lang.Class c
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/converters/Converters;
            0    1     1     c  Ljava/lang/Class;
            0    1     2     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      c     final
      o     final

  public void fromDBObject(com.mongodb.DBObject, org.mongodb.morphia.mapping.MappedField, java.lang.Object);
    descriptor: (Lcom/mongodb/DBObject;Lorg/mongodb/morphia/mapping/MappedField;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // com.mongodb.DBObject dbObj
        start local 2 // org.mongodb.morphia.mapping.MappedField mf
        start local 3 // java.lang.Object targetEntity
         0: .line 121
            aload 2 /* mf */
            aload 1 /* dbObj */
            invokevirtual org.mongodb.morphia.mapping.MappedField.getDbObjectValue:(Lcom/mongodb/DBObject;)Ljava/lang/Object;
            astore 4 /* object */
        start local 4 // java.lang.Object object
         1: .line 122
            aload 4 /* object */
            ifnull 12
         2: .line 123
            aload 0 /* this */
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.converters.Converters.getEncoder:(Lorg/mongodb/morphia/mapping/MappedField;)Lorg/mongodb/morphia/converters/TypeConverter;
            astore 5 /* enc */
        start local 5 // org.mongodb.morphia.converters.TypeConverter enc
         3: .line 124
            aload 5 /* enc */
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.getType:()Ljava/lang/Class;
            aload 4 /* object */
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.converters.TypeConverter.decode:(Ljava/lang/Class;Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;)Ljava/lang/Object;
            astore 6 /* decodedValue */
        start local 6 // java.lang.Object decodedValue
         4: .line 126
            aload 2 /* mf */
            aload 3 /* targetEntity */
            aload 6 /* decodedValue */
            invokevirtual org.mongodb.morphia.mapping.MappedField.setFieldValue:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 127
            goto 12
      StackMap locals: org.mongodb.morphia.converters.Converters com.mongodb.DBObject org.mongodb.morphia.mapping.MappedField java.lang.Object java.lang.Object org.mongodb.morphia.converters.TypeConverter java.lang.Object
      StackMap stack: java.lang.IllegalArgumentException
         6: astore 7 /* e */
        start local 7 // java.lang.IllegalArgumentException e
         7: .line 128
            new org.mongodb.morphia.mapping.MappingException
            dup
            ldc "Error setting value from converter (%s) for %s to %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 129
            aload 5 /* enc */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.getFullName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 6 /* decodedValue */
            aastore
         9: .line 128
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        10: .line 129
            aload 7 /* e */
        11: .line 128
            invokespecial org.mongodb.morphia.mapping.MappingException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.lang.IllegalArgumentException e
        end local 6 // java.lang.Object decodedValue
        end local 5 // org.mongodb.morphia.converters.TypeConverter enc
        12: .line 132
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Object object
        end local 3 // java.lang.Object targetEntity
        end local 2 // org.mongodb.morphia.mapping.MappedField mf
        end local 1 // com.mongodb.DBObject dbObj
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/mongodb/morphia/converters/Converters;
            0   13     1         dbObj  Lcom/mongodb/DBObject;
            0   13     2            mf  Lorg/mongodb/morphia/mapping/MappedField;
            0   13     3  targetEntity  Ljava/lang/Object;
            1   13     4        object  Ljava/lang/Object;
            3   12     5           enc  Lorg/mongodb/morphia/converters/TypeConverter;
            4   12     6  decodedValue  Ljava/lang/Object;
            7   12     7             e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.IllegalArgumentException
    MethodParameters:
              Name  Flags
      dbObj         final
      mf            final
      targetEntity  final

  public boolean hasDbObjectConverter(org.mongodb.morphia.mapping.MappedField);
    descriptor: (Lorg/mongodb/morphia/mapping/MappedField;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // org.mongodb.morphia.mapping.MappedField field
         0: .line 139
            aload 0 /* this */
            aload 1 /* field */
            invokevirtual org.mongodb.morphia.converters.Converters.getEncoder:(Lorg/mongodb/morphia/mapping/MappedField;)Lorg/mongodb/morphia/converters/TypeConverter;
            astore 2 /* converter */
        start local 2 // org.mongodb.morphia.converters.TypeConverter converter
         1: .line 140
            aload 2 /* converter */
            ifnull 2
            aload 2 /* converter */
            instanceof org.mongodb.morphia.converters.IdentityConverter
            ifne 2
            aload 2 /* converter */
            instanceof org.mongodb.morphia.converters.SimpleValueConverter
            ifne 2
            iconst_1
            ireturn
      StackMap locals: org.mongodb.morphia.converters.TypeConverter
      StackMap stack:
         2: iconst_0
            ireturn
        end local 2 // org.mongodb.morphia.converters.TypeConverter converter
        end local 1 // org.mongodb.morphia.mapping.MappedField field
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/mongodb/morphia/converters/Converters;
            0    3     1      field  Lorg/mongodb/morphia/mapping/MappedField;
            1    3     2  converter  Lorg/mongodb/morphia/converters/TypeConverter;
    MethodParameters:
       Name  Flags
      field  final

  public boolean hasDbObjectConverter(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // java.lang.Class c
         0: .line 148
            aload 0 /* this */
            aload 1 /* c */
            invokevirtual org.mongodb.morphia.converters.Converters.getEncoder:(Ljava/lang/Class;)Lorg/mongodb/morphia/converters/TypeConverter;
            astore 2 /* converter */
        start local 2 // org.mongodb.morphia.converters.TypeConverter converter
         1: .line 149
            aload 2 /* converter */
            ifnull 2
            aload 2 /* converter */
            instanceof org.mongodb.morphia.converters.IdentityConverter
            ifne 2
            aload 2 /* converter */
            instanceof org.mongodb.morphia.converters.SimpleValueConverter
            ifne 2
            iconst_1
            ireturn
      StackMap locals: org.mongodb.morphia.converters.TypeConverter
      StackMap stack:
         2: iconst_0
            ireturn
        end local 2 // org.mongodb.morphia.converters.TypeConverter converter
        end local 1 // java.lang.Class c
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/mongodb/morphia/converters/Converters;
            0    3     1          c  Ljava/lang/Class;
            1    3     2  converter  Lorg/mongodb/morphia/converters/TypeConverter;
    MethodParameters:
      Name  Flags
      c     final

  public boolean hasSimpleValueConverter(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // java.lang.Object o
         0: .line 158
            aload 1 /* o */
            ifnonnull 2
         1: .line 159
            iconst_0
            ireturn
         2: .line 161
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof java.lang.Class
            ifeq 4
         3: .line 162
            aload 0 /* this */
            aload 1 /* o */
            checkcast java.lang.Class
            invokevirtual org.mongodb.morphia.converters.Converters.hasSimpleValueConverter:(Ljava/lang/Class;)Z
            ireturn
         4: .line 163
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.mongodb.morphia.mapping.MappedField
            ifeq 6
         5: .line 164
            aload 0 /* this */
            aload 1 /* o */
            checkcast org.mongodb.morphia.mapping.MappedField
            invokevirtual org.mongodb.morphia.converters.Converters.hasSimpleValueConverter:(Lorg/mongodb/morphia/mapping/MappedField;)Z
            ireturn
         6: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual org.mongodb.morphia.converters.Converters.hasSimpleValueConverter:(Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/mongodb/morphia/converters/Converters;
            0    7     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     final

  public boolean hasSimpleValueConverter(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // java.lang.Class c
         0: .line 176
            aload 0 /* this */
            aload 1 /* c */
            invokevirtual org.mongodb.morphia.converters.Converters.getEncoder:(Ljava/lang/Class;)Lorg/mongodb/morphia/converters/TypeConverter;
            instanceof org.mongodb.morphia.converters.SimpleValueConverter
            ireturn
        end local 1 // java.lang.Class c
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/converters/Converters;
            0    1     1     c  Ljava/lang/Class;
    MethodParameters:
      Name  Flags
      c     final

  public boolean hasSimpleValueConverter(org.mongodb.morphia.mapping.MappedField);
    descriptor: (Lorg/mongodb/morphia/mapping/MappedField;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // org.mongodb.morphia.mapping.MappedField c
         0: .line 185
            aload 0 /* this */
            aload 1 /* c */
            invokevirtual org.mongodb.morphia.converters.Converters.getEncoder:(Lorg/mongodb/morphia/mapping/MappedField;)Lorg/mongodb/morphia/converters/TypeConverter;
            instanceof org.mongodb.morphia.converters.SimpleValueConverter
            ireturn
        end local 1 // org.mongodb.morphia.mapping.MappedField c
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/converters/Converters;
            0    1     1     c  Lorg/mongodb/morphia/mapping/MappedField;
    MethodParameters:
      Name  Flags
      c     final

  public boolean isRegistered(java.lang.Class<? extends org.mongodb.morphia.converters.TypeConverter>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // java.lang.Class tcClass
         0: .line 193
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.registeredConverterClasses:Ljava/util/List;
            aload 1 /* tcClass */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Class tcClass
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/mongodb/morphia/converters/Converters;
            0    1     1  tcClass  Ljava/lang/Class<+Lorg/mongodb/morphia/converters/TypeConverter;>;
    Signature: (Ljava/lang/Class<+Lorg/mongodb/morphia/converters/TypeConverter;>;)Z
    MethodParameters:
         Name  Flags
      tcClass  final

  public void removeConverter(org.mongodb.morphia.converters.TypeConverter);
    descriptor: (Lorg/mongodb/morphia/converters/TypeConverter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // org.mongodb.morphia.converters.TypeConverter tc
         0: .line 202
            aload 1 /* tc */
            invokevirtual org.mongodb.morphia.converters.TypeConverter.getSupportedTypes:()[Ljava/lang/Class;
            ifnonnull 4
         1: .line 203
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.untypedTypeEncoders:Ljava/util/List;
            aload 1 /* tc */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 204
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.registeredConverterClasses:Ljava/util/List;
            aload 1 /* tc */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         3: .line 205
            goto 13
         4: .line 206
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.tcMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 11
      StackMap locals: org.mongodb.morphia.converters.Converters org.mongodb.morphia.converters.TypeConverter top java.util.Iterator
      StackMap stack:
         5: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         6: .line 207
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            astore 4 /* list */
        start local 4 // java.util.List list
         7: .line 208
            aload 4 /* list */
            aload 1 /* tc */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 209
            aload 4 /* list */
            aload 1 /* tc */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         9: .line 211
      StackMap locals: org.mongodb.morphia.converters.Converters org.mongodb.morphia.converters.TypeConverter java.util.Map$Entry java.util.Iterator java.util.List
      StackMap stack:
            aload 4 /* list */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 11
        10: .line 212
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.tcMap:Ljava/util/Map;
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.util.List list
        end local 2 // java.util.Map$Entry entry
        11: .line 206
      StackMap locals: org.mongodb.morphia.converters.Converters org.mongodb.morphia.converters.TypeConverter top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        12: .line 215
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.registeredConverterClasses:Ljava/util/List;
            aload 1 /* tc */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        13: .line 218
      StackMap locals: org.mongodb.morphia.converters.Converters org.mongodb.morphia.converters.TypeConverter
      StackMap stack:
            return
        end local 1 // org.mongodb.morphia.converters.TypeConverter tc
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Lorg/mongodb/morphia/converters/Converters;
            0   14     1     tc  Lorg/mongodb/morphia/converters/TypeConverter;
            6   11     2  entry  Ljava/util/Map$Entry<Ljava/lang/Class;Ljava/util/List<Lorg/mongodb/morphia/converters/TypeConverter;>;>;
            7   11     4   list  Ljava/util/List<Lorg/mongodb/morphia/converters/TypeConverter;>;
    MethodParameters:
      Name  Flags
      tc    final

  public void toDBObject(java.lang.Object, org.mongodb.morphia.mapping.MappedField, com.mongodb.DBObject, org.mongodb.morphia.mapping.MapperOptions);
    descriptor: (Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;Lcom/mongodb/DBObject;Lorg/mongodb/morphia/mapping/MapperOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=5
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // java.lang.Object containingObject
        start local 2 // org.mongodb.morphia.mapping.MappedField mf
        start local 3 // com.mongodb.DBObject dbObj
        start local 4 // org.mongodb.morphia.mapping.MapperOptions opts
         0: .line 229
            aload 2 /* mf */
            aload 1 /* containingObject */
            invokevirtual org.mongodb.morphia.mapping.MappedField.getFieldValue:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* fieldValue */
        start local 5 // java.lang.Object fieldValue
         1: .line 230
            aload 0 /* this */
            aload 5 /* fieldValue */
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.converters.Converters.getEncoder:(Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;)Lorg/mongodb/morphia/converters/TypeConverter;
            astore 6 /* enc */
        start local 6 // org.mongodb.morphia.converters.TypeConverter enc
         2: .line 232
            aload 6 /* enc */
            aload 5 /* fieldValue */
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.converters.TypeConverter.encode:(Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;)Ljava/lang/Object;
            astore 7 /* encoded */
        start local 7 // java.lang.Object encoded
         3: .line 233
            aload 7 /* encoded */
            ifnonnull 4
            aload 4 /* opts */
            invokevirtual org.mongodb.morphia.mapping.MapperOptions.isStoreNulls:()Z
            ifeq 5
         4: .line 234
      StackMap locals: java.lang.Object org.mongodb.morphia.converters.TypeConverter java.lang.Object
      StackMap stack:
            aload 3 /* dbObj */
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.getNameToStore:()Ljava/lang/String;
            aload 7 /* encoded */
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 236
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.lang.Object encoded
        end local 6 // org.mongodb.morphia.converters.TypeConverter enc
        end local 5 // java.lang.Object fieldValue
        end local 4 // org.mongodb.morphia.mapping.MapperOptions opts
        end local 3 // com.mongodb.DBObject dbObj
        end local 2 // org.mongodb.morphia.mapping.MappedField mf
        end local 1 // java.lang.Object containingObject
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lorg/mongodb/morphia/converters/Converters;
            0    6     1  containingObject  Ljava/lang/Object;
            0    6     2                mf  Lorg/mongodb/morphia/mapping/MappedField;
            0    6     3             dbObj  Lcom/mongodb/DBObject;
            0    6     4              opts  Lorg/mongodb/morphia/mapping/MapperOptions;
            1    6     5        fieldValue  Ljava/lang/Object;
            2    6     6               enc  Lorg/mongodb/morphia/converters/TypeConverter;
            3    6     7           encoded  Ljava/lang/Object;
    MethodParameters:
                  Name  Flags
      containingObject  final
      mf                final
      dbObj             final
      opts              final

  protected org.mongodb.morphia.converters.TypeConverter getEncoder(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/mongodb/morphia/converters/TypeConverter;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // java.lang.Class c
         0: .line 239
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.tcMap:Ljava/util/Map;
            aload 1 /* c */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* tcs */
        start local 2 // java.util.List tcs
         1: .line 240
            aload 2 /* tcs */
            ifnull 5
         2: .line 241
            aload 2 /* tcs */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 4
         3: .line 242
            getstatic org.mongodb.morphia.converters.Converters.LOG:Lorg/mongodb/morphia/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Duplicate converter for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* c */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", returning first one from "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* tcs */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.mongodb.morphia.logging.Logger.warning:(Ljava/lang/String;)V
         4: .line 244
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* tcs */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.mongodb.morphia.converters.TypeConverter
            areturn
         5: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.untypedTypeEncoders:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: org.mongodb.morphia.converters.Converters java.lang.Class java.util.List top java.util.Iterator
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.mongodb.morphia.converters.TypeConverter
            astore 3 /* tc */
        start local 3 // org.mongodb.morphia.converters.TypeConverter tc
         7: .line 248
            aload 3 /* tc */
            aload 1 /* c */
            invokevirtual org.mongodb.morphia.converters.TypeConverter.canHandle:(Ljava/lang/Class;)Z
            ifeq 9
         8: .line 249
            aload 3 /* tc */
            areturn
        end local 3 // org.mongodb.morphia.converters.TypeConverter tc
         9: .line 247
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        10: .line 253
            aconst_null
            areturn
        end local 2 // java.util.List tcs
        end local 1 // java.lang.Class c
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/mongodb/morphia/converters/Converters;
            0   11     1     c  Ljava/lang/Class;
            1   11     2   tcs  Ljava/util/List<Lorg/mongodb/morphia/converters/TypeConverter;>;
            7    9     3    tc  Lorg/mongodb/morphia/converters/TypeConverter;
    MethodParameters:
      Name  Flags
      c     final

  protected org.mongodb.morphia.converters.TypeConverter getEncoder(java.lang.Object, org.mongodb.morphia.mapping.MappedField);
    descriptor: (Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;)Lorg/mongodb/morphia/converters/TypeConverter;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // java.lang.Object val
        start local 2 // org.mongodb.morphia.mapping.MappedField mf
         0: .line 258
            aconst_null
            astore 3 /* tcs */
        start local 3 // java.util.List tcs
         1: .line 260
            aload 1 /* val */
            ifnull 3
         2: .line 261
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.tcMap:Ljava/util/Map;
            aload 1 /* val */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* tcs */
         3: .line 264
      StackMap locals: java.util.List
      StackMap stack:
            aload 3 /* tcs */
            ifnull 4
            aload 3 /* tcs */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 5
            aload 3 /* tcs */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            instanceof org.mongodb.morphia.converters.IdentityConverter
            ifeq 5
         4: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.tcMap:Ljava/util/Map;
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.getType:()Ljava/lang/Class;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* tcs */
         5: .line 268
      StackMap locals:
      StackMap stack:
            aload 3 /* tcs */
            ifnull 9
         6: .line 269
            aload 3 /* tcs */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 8
         7: .line 270
            getstatic org.mongodb.morphia.converters.Converters.LOG:Lorg/mongodb/morphia/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Duplicate converter for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.getType:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", returning first one from "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* tcs */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.mongodb.morphia.logging.Logger.warning:(Ljava/lang/String;)V
         8: .line 272
      StackMap locals:
      StackMap stack:
            aload 3 /* tcs */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.mongodb.morphia.converters.TypeConverter
            areturn
         9: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.untypedTypeEncoders:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 13
      StackMap locals: org.mongodb.morphia.converters.Converters java.lang.Object org.mongodb.morphia.mapping.MappedField java.util.List top java.util.Iterator
      StackMap stack:
        10: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.mongodb.morphia.converters.TypeConverter
            astore 4 /* tc */
        start local 4 // org.mongodb.morphia.converters.TypeConverter tc
        11: .line 276
            aload 4 /* tc */
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.converters.TypeConverter.canHandle:(Lorg/mongodb/morphia/mapping/MappedField;)Z
            ifne 12
            aload 1 /* val */
            ifnull 13
            aload 4 /* tc */
            aload 1 /* val */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.converters.TypeConverter.isSupported:(Ljava/lang/Class;Lorg/mongodb/morphia/mapping/MappedField;)Z
            ifeq 13
        12: .line 277
      StackMap locals: org.mongodb.morphia.converters.Converters java.lang.Object org.mongodb.morphia.mapping.MappedField java.util.List org.mongodb.morphia.converters.TypeConverter java.util.Iterator
      StackMap stack:
            aload 4 /* tc */
            areturn
        end local 4 // org.mongodb.morphia.converters.TypeConverter tc
        13: .line 275
      StackMap locals: org.mongodb.morphia.converters.Converters java.lang.Object org.mongodb.morphia.mapping.MappedField java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        14: .line 281
            aconst_null
            areturn
        end local 3 // java.util.List tcs
        end local 2 // org.mongodb.morphia.mapping.MappedField mf
        end local 1 // java.lang.Object val
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/mongodb/morphia/converters/Converters;
            0   15     1   val  Ljava/lang/Object;
            0   15     2    mf  Lorg/mongodb/morphia/mapping/MappedField;
            1   15     3   tcs  Ljava/util/List<Lorg/mongodb/morphia/converters/TypeConverter;>;
           11   13     4    tc  Lorg/mongodb/morphia/converters/TypeConverter;
    MethodParameters:
      Name  Flags
      val   final
      mf    final

  private void addTypedConverter(java.lang.Class, org.mongodb.morphia.converters.TypeConverter);
    descriptor: (Ljava/lang/Class;Lorg/mongodb/morphia/converters/TypeConverter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // java.lang.Class type
        start local 2 // org.mongodb.morphia.converters.TypeConverter tc
         0: .line 285
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.tcMap:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 286
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.tcMap:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            iconst_0
            aload 2 /* tc */
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
         2: .line 287
            getstatic org.mongodb.morphia.converters.Converters.LOG:Lorg/mongodb/morphia/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Added duplicate converter for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " ; "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.tcMap:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.mongodb.morphia.logging.Logger.warning:(Ljava/lang/String;)V
         3: .line 288
            goto 7
         4: .line 289
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* values */
        start local 3 // java.util.List values
         5: .line 290
            aload 3 /* values */
            aload 2 /* tc */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 291
            aload 0 /* this */
            getfield org.mongodb.morphia.converters.Converters.tcMap:Ljava/util/Map;
            aload 1 /* type */
            aload 3 /* values */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.util.List values
         7: .line 293
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.mongodb.morphia.converters.TypeConverter tc
        end local 1 // java.lang.Class type
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/mongodb/morphia/converters/Converters;
            0    8     1    type  Ljava/lang/Class;
            0    8     2      tc  Lorg/mongodb/morphia/converters/TypeConverter;
            5    7     3  values  Ljava/util/List<Lorg/mongodb/morphia/converters/TypeConverter;>;
    MethodParameters:
      Name  Flags
      type  final
      tc    final

  private org.mongodb.morphia.converters.TypeConverter getEncoder(org.mongodb.morphia.mapping.MappedField);
    descriptor: (Lorg/mongodb/morphia/mapping/MappedField;)Lorg/mongodb/morphia/converters/TypeConverter;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.converters.Converters this
        start local 1 // org.mongodb.morphia.mapping.MappedField mf
         0: .line 296
            aload 0 /* this */
            aconst_null
            aload 1 /* mf */
            invokevirtual org.mongodb.morphia.converters.Converters.getEncoder:(Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;)Lorg/mongodb/morphia/converters/TypeConverter;
            areturn
        end local 1 // org.mongodb.morphia.mapping.MappedField mf
        end local 0 // org.mongodb.morphia.converters.Converters this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/converters/Converters;
            0    1     1    mf  Lorg/mongodb/morphia/mapping/MappedField;
    MethodParameters:
      Name  Flags
      mf    final
}
SourceFile: "Converters.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map