public class org.mongodb.morphia.converters.IterableConverter extends org.mongodb.morphia.converters.TypeConverter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.mongodb.morphia.converters.IterableConverter
  super_class: org.mongodb.morphia.converters.TypeConverter
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.converters.IterableConverter this
         0: .line 23
            aload 0 /* this */
            invokespecial org.mongodb.morphia.converters.TypeConverter.<init>:()V
            return
        end local 0 // org.mongodb.morphia.converters.IterableConverter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/converters/IterableConverter;

  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=5, locals=11, args_size=4
        start local 0 // org.mongodb.morphia.converters.IterableConverter this
        start local 1 // java.lang.Class targetClass
        start local 2 // java.lang.Object fromDBObject
        start local 3 // org.mongodb.morphia.mapping.MappedField mf
         0: .line 27
            aload 3 /* mf */
            ifnull 1
            aload 2 /* fromDBObject */
            ifnonnull 2
         1: .line 28
      StackMap locals:
      StackMap stack:
            aload 2 /* fromDBObject */
            areturn
         2: .line 31
      StackMap locals:
      StackMap stack:
            aload 3 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.getSubClass:()Ljava/lang/Class;
            astore 4 /* subtypeDest */
        start local 4 // java.lang.Class subtypeDest
         3: .line 32
            aload 0 /* this */
            aload 3 /* mf */
            invokevirtual org.mongodb.morphia.converters.IterableConverter.createNewCollection:(Lorg/mongodb/morphia/mapping/MappedField;)Ljava/util/Collection;
            astore 5 /* values */
        start local 5 // java.util.Collection values
         4: .line 34
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.converters.IterableConverter.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            invokevirtual org.mongodb.morphia.mapping.Mapper.getConverters:()Lorg/mongodb/morphia/converters/Converters;
            astore 6 /* converters */
        start local 6 // org.mongodb.morphia.converters.Converters converters
         5: .line 35
            aload 2 /* fromDBObject */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 14
         6: .line 37
            aload 2 /* fromDBObject */
            checkcast java.lang.Object[]
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 12
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters top int int java.lang.Object[]
      StackMap stack:
         7: aload 10
            iload 8
            aaload
            astore 7 /* o */
        start local 7 // java.lang.Object o
         8: .line 38
            aload 5 /* values */
            aload 6 /* converters */
            aload 4 /* subtypeDest */
            ifnull 9
            aload 4 /* subtypeDest */
            goto 10
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters java.lang.Object int int java.lang.Object[]
      StackMap stack: java.util.Collection org.mongodb.morphia.converters.Converters
         9: aload 7 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters java.lang.Object int int java.lang.Object[]
      StackMap stack: java.util.Collection org.mongodb.morphia.converters.Converters java.lang.Class
        10: aload 7 /* o */
            aload 3 /* mf */
            invokevirtual org.mongodb.morphia.converters.Converters.decode:(Ljava/lang/Class;Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;)Ljava/lang/Object;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.Object o
        11: .line 37
            iinc 8 1
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters top int int java.lang.Object[]
      StackMap stack:
        12: iload 8
            iload 9
            if_icmplt 7
        13: .line 40
            goto 39
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters
      StackMap stack:
        14: aload 2 /* fromDBObject */
            instanceof java.lang.Iterable
            ifeq 36
        15: .line 43
            aload 2 /* fromDBObject */
            checkcast java.lang.Iterable
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 34
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters top java.util.Iterator
      StackMap stack:
        16: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 7 /* o */
        start local 7 // java.lang.Object o
        17: .line 44
            aload 7 /* o */
            instanceof com.mongodb.DBObject
            ifeq 31
        18: .line 45
            aload 3 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.getTypeParameters:()Ljava/util/List;
            astore 9 /* typeParameters */
        start local 9 // java.util.List typeParameters
        19: .line 46
            aload 9 /* typeParameters */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 27
        20: .line 47
            aload 9 /* typeParameters */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.mongodb.morphia.mapping.MappedField
            astore 10 /* mappedField */
        start local 10 // org.mongodb.morphia.mapping.MappedField mappedField
        21: .line 48
            aload 10 /* mappedField */
            instanceof org.mongodb.morphia.mapping.EphemeralMappedField
            ifeq 26
        22: .line 49
            aload 5 /* values */
            aload 6 /* converters */
            aload 4 /* subtypeDest */
            ifnull 23
            aload 4 /* subtypeDest */
            goto 24
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters java.lang.Object java.util.Iterator java.util.List org.mongodb.morphia.mapping.MappedField
      StackMap stack: java.util.Collection org.mongodb.morphia.converters.Converters
        23: aload 7 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters java.lang.Object java.util.Iterator java.util.List org.mongodb.morphia.mapping.MappedField
      StackMap stack: java.util.Collection org.mongodb.morphia.converters.Converters java.lang.Class
        24: aload 7 /* o */
            aload 10 /* mappedField */
            invokevirtual org.mongodb.morphia.converters.Converters.decode:(Ljava/lang/Class;Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;)Ljava/lang/Object;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        25: .line 50
            goto 34
        26: .line 51
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            ldc "mappedField isn't an EphemeralMappedField"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // org.mongodb.morphia.mapping.MappedField mappedField
        27: .line 54
      StackMap locals:
      StackMap stack:
            aload 5 /* values */
            aload 6 /* converters */
            aload 4 /* subtypeDest */
            ifnull 28
            aload 4 /* subtypeDest */
            goto 29
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters java.lang.Object java.util.Iterator java.util.List
      StackMap stack: java.util.Collection org.mongodb.morphia.converters.Converters
        28: aload 7 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters java.lang.Object java.util.Iterator java.util.List
      StackMap stack: java.util.Collection org.mongodb.morphia.converters.Converters java.lang.Class
        29: aload 7 /* o */
            aload 3 /* mf */
            invokevirtual org.mongodb.morphia.converters.Converters.decode:(Ljava/lang/Class;Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;)Ljava/lang/Object;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.util.List typeParameters
        30: .line 56
            goto 34
        31: .line 57
      StackMap locals:
      StackMap stack:
            aload 5 /* values */
            aload 6 /* converters */
            aload 4 /* subtypeDest */
            ifnull 32
            aload 4 /* subtypeDest */
            goto 33
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters java.lang.Object java.util.Iterator
      StackMap stack: java.util.Collection org.mongodb.morphia.converters.Converters
        32: aload 7 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters java.lang.Object java.util.Iterator
      StackMap stack: java.util.Collection org.mongodb.morphia.converters.Converters java.lang.Class
        33: aload 7 /* o */
            aload 3 /* mf */
            invokevirtual org.mongodb.morphia.converters.Converters.decode:(Ljava/lang/Class;Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;)Ljava/lang/Object;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.Object o
        34: .line 43
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        35: .line 60
            goto 39
        36: .line 62
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters
      StackMap stack:
            aload 5 /* values */
            aload 6 /* converters */
            aload 4 /* subtypeDest */
            ifnull 37
            aload 4 /* subtypeDest */
            goto 38
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters
      StackMap stack: java.util.Collection org.mongodb.morphia.converters.Converters
        37: aload 2 /* fromDBObject */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Class java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Class java.util.Collection org.mongodb.morphia.converters.Converters
      StackMap stack: java.util.Collection org.mongodb.morphia.converters.Converters java.lang.Class
        38: aload 2 /* fromDBObject */
            aload 3 /* mf */
            invokevirtual org.mongodb.morphia.converters.Converters.decode:(Ljava/lang/Class;Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;)Ljava/lang/Object;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        39: .line 66
      StackMap locals:
      StackMap stack:
            aload 3 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.getType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 41
        40: .line 67
            aload 4 /* subtypeDest */
            aload 5 /* values */
            checkcast java.util.List
            invokestatic org.mongodb.morphia.utils.ReflectionUtils.convertToArray:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/Object;
            areturn
        41: .line 69
      StackMap locals:
      StackMap stack:
            aload 5 /* values */
            areturn
        end local 6 // org.mongodb.morphia.converters.Converters converters
        end local 5 // java.util.Collection values
        end local 4 // java.lang.Class subtypeDest
        end local 3 // org.mongodb.morphia.mapping.MappedField mf
        end local 2 // java.lang.Object fromDBObject
        end local 1 // java.lang.Class targetClass
        end local 0 // org.mongodb.morphia.converters.IterableConverter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   42     0            this  Lorg/mongodb/morphia/converters/IterableConverter;
            0   42     1     targetClass  Ljava/lang/Class;
            0   42     2    fromDBObject  Ljava/lang/Object;
            0   42     3              mf  Lorg/mongodb/morphia/mapping/MappedField;
            3   42     4     subtypeDest  Ljava/lang/Class;
            4   42     5          values  Ljava/util/Collection;
            5   42     6      converters  Lorg/mongodb/morphia/converters/Converters;
            8   11     7               o  Ljava/lang/Object;
           17   34     7               o  Ljava/lang/Object;
           19   30     9  typeParameters  Ljava/util/List<Lorg/mongodb/morphia/mapping/MappedField;>;
           21   27    10     mappedField  Lorg/mongodb/morphia/mapping/MappedField;
    MethodParameters:
              Name  Flags
      targetClass   final
      fromDBObject  final
      mf            final

  public java.lang.Object encode(java.lang.Object, org.mongodb.morphia.mapping.MappedField);
    descriptor: (Ljava/lang/Object;Lorg/mongodb/morphia/mapping/MappedField;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // org.mongodb.morphia.converters.IterableConverter this
        start local 1 // java.lang.Object value
        start local 2 // org.mongodb.morphia.mapping.MappedField mf
         0: .line 77
            aload 1 /* value */
            ifnonnull 2
         1: .line 78
            aconst_null
            areturn
         2: .line 83
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 7
         3: .line 84
            aload 1 /* value */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            ifeq 4
            aload 1 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 5
         4: .line 85
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            areturn
         5: .line 88
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            checkcast java.lang.Object[]
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            astore 3 /* iterableValues */
        start local 3 // java.lang.Iterable iterableValues
         6: .line 89
            goto 10
        end local 3 // java.lang.Iterable iterableValues
         7: .line 90
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            instanceof java.lang.Iterable
            ifne 9
         8: .line 91
            new org.mongodb.morphia.converters.ConverterException
            dup
            ldc "Cannot cast %s to Iterable for MappedField: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
            dup
            iconst_1
            aload 2 /* mf */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.mongodb.morphia.converters.ConverterException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 95
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            checkcast java.lang.Iterable
            astore 3 /* iterableValues */
        start local 3 // java.lang.Iterable iterableValues
        10: .line 98
      StackMap locals: java.lang.Iterable
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* values */
        start local 4 // java.util.List values
        11: .line 99
            aload 2 /* mf */
            ifnull 17
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.getSubClass:()Ljava/lang/Class;
            ifnull 17
        12: .line 100
            aload 3 /* iterableValues */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Iterable java.util.List top java.util.Iterator
      StackMap stack:
        13: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 5 /* o */
        start local 5 // java.lang.Object o
        14: .line 101
            aload 4 /* values */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.converters.IterableConverter.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            invokevirtual org.mongodb.morphia.mapping.Mapper.getConverters:()Lorg/mongodb/morphia/converters/Converters;
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.getSubClass:()Ljava/lang/Class;
            aload 5 /* o */
            invokevirtual org.mongodb.morphia.converters.Converters.encode:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.lang.Object o
        15: .line 100
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        16: .line 103
            goto 21
        17: .line 104
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Iterable java.util.List
      StackMap stack:
            aload 3 /* iterableValues */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 20
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Iterable java.util.List top java.util.Iterator
      StackMap stack:
        18: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 5 /* o */
        start local 5 // java.lang.Object o
        19: .line 105
            aload 4 /* values */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.converters.IterableConverter.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            invokevirtual org.mongodb.morphia.mapping.Mapper.getConverters:()Lorg/mongodb/morphia/converters/Converters;
            aload 5 /* o */
            invokevirtual org.mongodb.morphia.converters.Converters.encode:(Ljava/lang/Object;)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.lang.Object o
        20: .line 104
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        21: .line 108
      StackMap locals: org.mongodb.morphia.converters.IterableConverter java.lang.Object org.mongodb.morphia.mapping.MappedField java.lang.Iterable java.util.List
      StackMap stack:
            aload 4 /* values */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 22
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.converters.IterableConverter.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            invokevirtual org.mongodb.morphia.mapping.Mapper.getOptions:()Lorg/mongodb/morphia/mapping/MapperOptions;
            invokevirtual org.mongodb.morphia.mapping.MapperOptions.isStoreEmpties:()Z
            ifeq 23
      StackMap locals:
      StackMap stack:
        22: aload 4 /* values */
            goto 24
      StackMap locals:
      StackMap stack:
        23: aconst_null
      StackMap locals:
      StackMap stack: java.util.List
        24: areturn
        end local 4 // java.util.List values
        end local 3 // java.lang.Iterable iterableValues
        end local 2 // org.mongodb.morphia.mapping.MappedField mf
        end local 1 // java.lang.Object value
        end local 0 // org.mongodb.morphia.converters.IterableConverter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0            this  Lorg/mongodb/morphia/converters/IterableConverter;
            0   25     1           value  Ljava/lang/Object;
            0   25     2              mf  Lorg/mongodb/morphia/mapping/MappedField;
            6    7     3  iterableValues  Ljava/lang/Iterable<*>;
           10   25     3  iterableValues  Ljava/lang/Iterable<*>;
           11   25     4          values  Ljava/util/List;
           14   15     5               o  Ljava/lang/Object;
           19   20     5               o  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  final
      mf     final

  protected boolean isSupported(java.lang.Class, org.mongodb.morphia.mapping.MappedField);
    descriptor: (Ljava/lang/Class;Lorg/mongodb/morphia/mapping/MappedField;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.mongodb.morphia.converters.IterableConverter this
        start local 1 // java.lang.Class c
        start local 2 // org.mongodb.morphia.mapping.MappedField mf
         0: .line 113
            aload 2 /* mf */
            ifnull 3
         1: .line 114
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.isMultipleValues:()Z
            ifeq 2
            aload 2 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.isMap:()Z
            ifne 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 116
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            invokevirtual java.lang.Class.isArray:()Z
            ifne 4
            aload 1 /* c */
            ldc Ljava/lang/Iterable;
            invokestatic org.mongodb.morphia.utils.ReflectionUtils.implementsInterface:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifne 4
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 2 // org.mongodb.morphia.mapping.MappedField mf
        end local 1 // java.lang.Class c
        end local 0 // org.mongodb.morphia.converters.IterableConverter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/mongodb/morphia/converters/IterableConverter;
            0    5     1     c  Ljava/lang/Class;
            0    5     2    mf  Lorg/mongodb/morphia/mapping/MappedField;
    MethodParameters:
      Name  Flags
      c     final
      mf    final

  private java.util.Collection<?> createNewCollection(org.mongodb.morphia.mapping.MappedField);
    descriptor: (Lorg/mongodb/morphia/mapping/MappedField;)Ljava/util/Collection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.converters.IterableConverter this
        start local 1 // org.mongodb.morphia.mapping.MappedField mf
         0: .line 121
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.converters.IterableConverter.getMapper:()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;
            astore 2 /* of */
        start local 2 // org.mongodb.morphia.ObjectFactory of
         1: .line 122
            aload 1 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.isSet:()Z
            ifeq 2
            aload 2 /* of */
            aload 1 /* mf */
            invokeinterface org.mongodb.morphia.ObjectFactory.createSet:(Lorg/mongodb/morphia/mapping/MappedField;)Ljava/util/Set;
            goto 3
      StackMap locals: org.mongodb.morphia.ObjectFactory
      StackMap stack:
         2: aload 2 /* of */
            aload 1 /* mf */
            invokeinterface org.mongodb.morphia.ObjectFactory.createList:(Lorg/mongodb/morphia/mapping/MappedField;)Ljava/util/List;
      StackMap locals:
      StackMap stack: java.util.Collection
         3: areturn
        end local 2 // org.mongodb.morphia.ObjectFactory of
        end local 1 // org.mongodb.morphia.mapping.MappedField mf
        end local 0 // org.mongodb.morphia.converters.IterableConverter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/mongodb/morphia/converters/IterableConverter;
            0    4     1    mf  Lorg/mongodb/morphia/mapping/MappedField;
            1    4     2    of  Lorg/mongodb/morphia/ObjectFactory;
    Signature: (Lorg/mongodb/morphia/mapping/MappedField;)Ljava/util/Collection<*>;
    MethodParameters:
      Name  Flags
      mf    final
}
SourceFile: "IterableConverter.java"