class org.apache.avro.Schema$UnionSchema extends org.apache.avro.Schema
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.avro.Schema$UnionSchema
  super_class: org.apache.avro.Schema
{
  private final java.util.List<org.apache.avro.Schema> types;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/apache/avro/Schema;>;

  private final java.util.Map<java.lang.String, java.lang.Integer> indexByName;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;

  public void <init>(org.apache.avro.Schema$LockableArrayList<org.apache.avro.Schema>);
    descriptor: (Lorg/apache/avro/Schema$LockableArrayList;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.apache.avro.Schema$UnionSchema this
        start local 1 // org.apache.avro.Schema$LockableArrayList types
         0: .line 1154
            aload 0 /* this */
            getstatic org.apache.avro.Schema$Type.UNION:Lorg/apache/avro/Schema$Type;
            invokespecial org.apache.avro.Schema.<init>:(Lorg/apache/avro/Schema$Type;)V
         1: .line 1151
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.apache.avro.Schema$UnionSchema.indexByName:Ljava/util/Map;
         2: .line 1155
            aload 0 /* this */
            aload 1 /* types */
            invokevirtual org.apache.avro.Schema$LockableArrayList.lock:()Ljava/util/List;
            putfield org.apache.avro.Schema$UnionSchema.types:Ljava/util/List;
         3: .line 1156
            iconst_0
            istore 2 /* index */
        start local 2 // int index
         4: .line 1157
            aload 1 /* types */
            invokevirtual org.apache.avro.Schema$LockableArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 13
      StackMap locals: org.apache.avro.Schema$UnionSchema org.apache.avro.Schema$LockableArrayList int top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.avro.Schema
            astore 3 /* type */
        start local 3 // org.apache.avro.Schema type
         6: .line 1158
            aload 3 /* type */
            invokevirtual org.apache.avro.Schema.getType:()Lorg/apache/avro/Schema$Type;
            getstatic org.apache.avro.Schema$Type.UNION:Lorg/apache/avro/Schema$Type;
            if_acmpne 8
         7: .line 1159
            new org.apache.avro.AvroRuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Nested union: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1160
      StackMap locals: org.apache.avro.Schema$UnionSchema org.apache.avro.Schema$LockableArrayList int org.apache.avro.Schema java.util.Iterator
      StackMap stack:
            aload 3 /* type */
            invokevirtual org.apache.avro.Schema.getFullName:()Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         9: .line 1161
            aload 5 /* name */
            ifnonnull 11
        10: .line 1162
            new org.apache.avro.AvroRuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Nameless in union:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 1163
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.avro.Schema$UnionSchema.indexByName:Ljava/util/Map;
            aload 5 /* name */
            iload 2 /* index */
            iinc 2 /* index */ 1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 13
        12: .line 1164
            new org.apache.avro.AvroRuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Duplicate in union:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String name
        end local 3 // org.apache.avro.Schema type
        13: .line 1157
      StackMap locals: org.apache.avro.Schema$UnionSchema org.apache.avro.Schema$LockableArrayList int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        14: .line 1166
            return
        end local 2 // int index
        end local 1 // org.apache.avro.Schema$LockableArrayList types
        end local 0 // org.apache.avro.Schema$UnionSchema this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Lorg/apache/avro/Schema$UnionSchema;
            0   15     1  types  Lorg/apache/avro/Schema$LockableArrayList<Lorg/apache/avro/Schema;>;
            4   15     2  index  I
            6   13     3   type  Lorg/apache/avro/Schema;
            9   13     5   name  Ljava/lang/String;
    Signature: (Lorg/apache/avro/Schema$LockableArrayList<Lorg/apache/avro/Schema;>;)V
    MethodParameters:
       Name  Flags
      types  

  public java.util.List<org.apache.avro.Schema> getTypes();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.avro.Schema$UnionSchema this
         0: .line 1170
            aload 0 /* this */
            getfield org.apache.avro.Schema$UnionSchema.types:Ljava/util/List;
            areturn
        end local 0 // org.apache.avro.Schema$UnionSchema this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/Schema$UnionSchema;
    Signature: ()Ljava/util/List<Lorg/apache/avro/Schema;>;

  public java.lang.Integer getIndexNamed(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.avro.Schema$UnionSchema this
        start local 1 // java.lang.String name
         0: .line 1175
            aload 0 /* this */
            getfield org.apache.avro.Schema$UnionSchema.indexByName:Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.avro.Schema$UnionSchema this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/Schema$UnionSchema;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.avro.Schema$UnionSchema this
        start local 1 // java.lang.Object o
         0: .line 1180
            aload 1 /* o */
            aload 0 /* this */
            if_acmpne 2
         1: .line 1181
            iconst_1
            ireturn
         2: .line 1182
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.apache.avro.Schema$UnionSchema
            ifne 4
         3: .line 1183
            iconst_0
            ireturn
         4: .line 1184
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast org.apache.avro.Schema$UnionSchema
            astore 2 /* that */
        start local 2 // org.apache.avro.Schema$UnionSchema that
         5: .line 1185
            aload 0 /* this */
            aload 2 /* that */
            invokevirtual org.apache.avro.Schema$UnionSchema.equalCachedHash:(Lorg/apache/avro/Schema;)Z
            ifeq 6
            aload 0 /* this */
            getfield org.apache.avro.Schema$UnionSchema.types:Ljava/util/List;
            aload 2 /* that */
            getfield org.apache.avro.Schema$UnionSchema.types:Ljava/util/List;
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ifeq 6
            aload 0 /* this */
            aload 2 /* that */
            invokevirtual org.apache.avro.Schema$UnionSchema.propsEqual:(Lorg/apache/avro/JsonProperties;)Z
            ifeq 6
            iconst_1
            ireturn
      StackMap locals: org.apache.avro.Schema$UnionSchema
      StackMap stack:
         6: iconst_0
            ireturn
        end local 2 // org.apache.avro.Schema$UnionSchema that
        end local 1 // java.lang.Object o
        end local 0 // org.apache.avro.Schema$UnionSchema this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/avro/Schema$UnionSchema;
            0    7     1     o  Ljava/lang/Object;
            5    7     2  that  Lorg/apache/avro/Schema$UnionSchema;
    MethodParameters:
      Name  Flags
      o     

  int computeHash();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.apache.avro.Schema$UnionSchema this
         0: .line 1190
            aload 0 /* this */
            invokespecial org.apache.avro.Schema.computeHash:()I
            istore 1 /* hash */
        start local 1 // int hash
         1: .line 1191
            aload 0 /* this */
            getfield org.apache.avro.Schema$UnionSchema.types:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.avro.Schema$UnionSchema int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.avro.Schema
            astore 2 /* type */
        start local 2 // org.apache.avro.Schema type
         3: .line 1192
            iload 1 /* hash */
            aload 2 /* type */
            invokevirtual org.apache.avro.Schema.computeHash:()I
            iadd
            istore 1 /* hash */
        end local 2 // org.apache.avro.Schema type
         4: .line 1191
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1193
            iload 1 /* hash */
            ireturn
        end local 1 // int hash
        end local 0 // org.apache.avro.Schema$UnionSchema this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/avro/Schema$UnionSchema;
            1    6     1  hash  I
            3    4     2  type  Lorg/apache/avro/Schema;

  public void addProp(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.avro.Schema$UnionSchema this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String value
         0: .line 1198
            new org.apache.avro.AvroRuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Can't set properties on a union: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String value
        end local 1 // java.lang.String name
        end local 0 // org.apache.avro.Schema$UnionSchema this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/apache/avro/Schema$UnionSchema;
            0    1     1   name  Ljava/lang/String;
            0    1     2  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      name   
      value  

  void toJson(org.apache.avro.Schema$Names, com.fasterxml.jackson.core.JsonGenerator);
    descriptor: (Lorg/apache/avro/Schema$Names;Lcom/fasterxml/jackson/core/JsonGenerator;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.apache.avro.Schema$UnionSchema this
        start local 1 // org.apache.avro.Schema$Names names
        start local 2 // com.fasterxml.jackson.core.JsonGenerator gen
         0: .line 1203
            aload 2 /* gen */
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeStartArray:()V
         1: .line 1204
            aload 0 /* this */
            getfield org.apache.avro.Schema$UnionSchema.types:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.apache.avro.Schema$UnionSchema org.apache.avro.Schema$Names com.fasterxml.jackson.core.JsonGenerator top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.avro.Schema
            astore 3 /* type */
        start local 3 // org.apache.avro.Schema type
         3: .line 1205
            aload 3 /* type */
            aload 1 /* names */
            aload 2 /* gen */
            invokevirtual org.apache.avro.Schema.toJson:(Lorg/apache/avro/Schema$Names;Lcom/fasterxml/jackson/core/JsonGenerator;)V
        end local 3 // org.apache.avro.Schema type
         4: .line 1204
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1206
            aload 2 /* gen */
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeEndArray:()V
         6: .line 1207
            return
        end local 2 // com.fasterxml.jackson.core.JsonGenerator gen
        end local 1 // org.apache.avro.Schema$Names names
        end local 0 // org.apache.avro.Schema$UnionSchema this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/apache/avro/Schema$UnionSchema;
            0    7     1  names  Lorg/apache/avro/Schema$Names;
            0    7     2    gen  Lcom/fasterxml/jackson/core/JsonGenerator;
            3    4     3   type  Lorg/apache/avro/Schema;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      names  
      gen    
}
SourceFile: "Schema.java"
NestHost: org.apache.avro.Schema
InnerClasses:
  LockableArrayList = org.apache.avro.Schema$LockableArrayList of org.apache.avro.Schema
  Names = org.apache.avro.Schema$Names of org.apache.avro.Schema
  public final Type = org.apache.avro.Schema$Type of org.apache.avro.Schema
  private UnionSchema = org.apache.avro.Schema$UnionSchema of org.apache.avro.Schema