public class com.ctc.wstx.dtd.ChoiceContentSpec extends com.ctc.wstx.dtd.ContentSpec
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.ctc.wstx.dtd.ChoiceContentSpec
  super_class: com.ctc.wstx.dtd.ContentSpec
{
  final boolean mNsAware;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final boolean mHasMixed;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final com.ctc.wstx.dtd.ContentSpec[] mContentSpecs;
    descriptor: [Lcom/ctc/wstx/dtd/ContentSpec;
    flags: (0x0010) ACC_FINAL

  private void <init>(boolean, char, boolean, com.ctc.wstx.dtd.ContentSpec[]);
    descriptor: (ZCZ[Lcom/ctc/wstx/dtd/ContentSpec;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // com.ctc.wstx.dtd.ChoiceContentSpec this
        start local 1 // boolean nsAware
        start local 2 // char arity
        start local 3 // boolean mixed
        start local 4 // com.ctc.wstx.dtd.ContentSpec[] specs
         0: .line 34
            aload 0 /* this */
            iload 2 /* arity */
            invokespecial com.ctc.wstx.dtd.ContentSpec.<init>:(C)V
         1: .line 35
            aload 0 /* this */
            iload 1 /* nsAware */
            putfield com.ctc.wstx.dtd.ChoiceContentSpec.mNsAware:Z
         2: .line 36
            aload 0 /* this */
            iload 3 /* mixed */
            putfield com.ctc.wstx.dtd.ChoiceContentSpec.mHasMixed:Z
         3: .line 37
            aload 0 /* this */
            aload 4 /* specs */
            putfield com.ctc.wstx.dtd.ChoiceContentSpec.mContentSpecs:[Lcom/ctc/wstx/dtd/ContentSpec;
         4: .line 38
            return
        end local 4 // com.ctc.wstx.dtd.ContentSpec[] specs
        end local 3 // boolean mixed
        end local 2 // char arity
        end local 1 // boolean nsAware
        end local 0 // com.ctc.wstx.dtd.ChoiceContentSpec this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/ctc/wstx/dtd/ChoiceContentSpec;
            0    5     1  nsAware  Z
            0    5     2    arity  C
            0    5     3    mixed  Z
            0    5     4    specs  [Lcom/ctc/wstx/dtd/ContentSpec;
    MethodParameters:
         Name  Flags
      nsAware  
      arity    
      mixed    
      specs    

  private void <init>(boolean, char, boolean, java.util.Collection<com.ctc.wstx.dtd.ContentSpec>);
    descriptor: (ZCZLjava/util/Collection;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // com.ctc.wstx.dtd.ChoiceContentSpec this
        start local 1 // boolean nsAware
        start local 2 // char arity
        start local 3 // boolean mixed
        start local 4 // java.util.Collection specs
         0: .line 42
            aload 0 /* this */
            iload 2 /* arity */
            invokespecial com.ctc.wstx.dtd.ContentSpec.<init>:(C)V
         1: .line 43
            aload 0 /* this */
            iload 1 /* nsAware */
            putfield com.ctc.wstx.dtd.ChoiceContentSpec.mNsAware:Z
         2: .line 44
            aload 0 /* this */
            iload 3 /* mixed */
            putfield com.ctc.wstx.dtd.ChoiceContentSpec.mHasMixed:Z
         3: .line 45
            aload 0 /* this */
            aload 4 /* specs */
            invokeinterface java.util.Collection.size:()I
            anewarray com.ctc.wstx.dtd.ContentSpec
            putfield com.ctc.wstx.dtd.ChoiceContentSpec.mContentSpecs:[Lcom/ctc/wstx/dtd/ContentSpec;
         4: .line 46
            aload 4 /* specs */
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mContentSpecs:[Lcom/ctc/wstx/dtd/ContentSpec;
            invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
         5: .line 47
            return
        end local 4 // java.util.Collection specs
        end local 3 // boolean mixed
        end local 2 // char arity
        end local 1 // boolean nsAware
        end local 0 // com.ctc.wstx.dtd.ChoiceContentSpec this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/ctc/wstx/dtd/ChoiceContentSpec;
            0    6     1  nsAware  Z
            0    6     2    arity  C
            0    6     3    mixed  Z
            0    6     4    specs  Ljava/util/Collection<Lcom/ctc/wstx/dtd/ContentSpec;>;
    Signature: (ZCZLjava/util/Collection<Lcom/ctc/wstx/dtd/ContentSpec;>;)V
    MethodParameters:
         Name  Flags
      nsAware  
      arity    
      mixed    
      specs    

  public static com.ctc.wstx.dtd.ChoiceContentSpec constructChoice(boolean, char, java.util.Collection<com.ctc.wstx.dtd.ContentSpec>);
    descriptor: (ZCLjava/util/Collection;)Lcom/ctc/wstx/dtd/ChoiceContentSpec;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // boolean nsAware
        start local 1 // char arity
        start local 2 // java.util.Collection specs
         0: .line 52
            new com.ctc.wstx.dtd.ChoiceContentSpec
            dup
            iload 0 /* nsAware */
            iload 1 /* arity */
            iconst_0
            aload 2 /* specs */
            invokespecial com.ctc.wstx.dtd.ChoiceContentSpec.<init>:(ZCZLjava/util/Collection;)V
            areturn
        end local 2 // java.util.Collection specs
        end local 1 // char arity
        end local 0 // boolean nsAware
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  nsAware  Z
            0    1     1    arity  C
            0    1     2    specs  Ljava/util/Collection<Lcom/ctc/wstx/dtd/ContentSpec;>;
    Signature: (ZCLjava/util/Collection<Lcom/ctc/wstx/dtd/ContentSpec;>;)Lcom/ctc/wstx/dtd/ChoiceContentSpec;
    MethodParameters:
         Name  Flags
      nsAware  
      arity    
      specs    

  public static com.ctc.wstx.dtd.ChoiceContentSpec constructMixed(boolean, java.util.Collection<com.ctc.wstx.dtd.ContentSpec>);
    descriptor: (ZLjava/util/Collection;)Lcom/ctc/wstx/dtd/ChoiceContentSpec;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // boolean nsAware
        start local 1 // java.util.Collection specs
         0: .line 57
            new com.ctc.wstx.dtd.ChoiceContentSpec
            dup
            iload 0 /* nsAware */
            bipush 42
            iconst_1
            aload 1 /* specs */
            invokespecial com.ctc.wstx.dtd.ChoiceContentSpec.<init>:(ZCZLjava/util/Collection;)V
            areturn
        end local 1 // java.util.Collection specs
        end local 0 // boolean nsAware
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  nsAware  Z
            0    1     1    specs  Ljava/util/Collection<Lcom/ctc/wstx/dtd/ContentSpec;>;
    Signature: (ZLjava/util/Collection<Lcom/ctc/wstx/dtd/ContentSpec;>;)Lcom/ctc/wstx/dtd/ChoiceContentSpec;
    MethodParameters:
         Name  Flags
      nsAware  
      specs    

  public com.ctc.wstx.dtd.StructValidator getSimpleValidator();
    descriptor: ()Lcom/ctc/wstx/dtd/StructValidator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // com.ctc.wstx.dtd.ChoiceContentSpec this
         0: .line 73
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mContentSpecs:[Lcom/ctc/wstx/dtd/ContentSpec;
            astore 1 /* specs */
        start local 1 // com.ctc.wstx.dtd.ContentSpec[] specs
         1: .line 74
            aload 1 /* specs */
            arraylength
            istore 2 /* len */
        start local 2 // int len
         2: .line 77
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mHasMixed:Z
            ifeq 5
         3: .line 78
            iload 2 /* len */
            istore 3 /* i */
        start local 3 // int i
         4: .line 79
            goto 11
        end local 3 // int i
         5: .line 80
      StackMap locals: com.ctc.wstx.dtd.ContentSpec[] int
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         6: .line 81
            goto 10
         7: .line 82
      StackMap locals: int
      StackMap stack:
            aload 1 /* specs */
            iload 3 /* i */
            aaload
            invokevirtual com.ctc.wstx.dtd.ContentSpec.isLeaf:()Z
            ifne 9
         8: .line 83
            goto 11
         9: .line 81
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            iload 2 /* len */
            if_icmplt 7
        11: .line 88
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* len */
            if_icmpne 14
        12: .line 89
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mNsAware:Z
            aload 1 /* specs */
            invokestatic com.ctc.wstx.dtd.ChoiceContentSpec.namesetFromSpecs:(Z[Lcom/ctc/wstx/dtd/ContentSpec;)Lcom/ctc/wstx/dtd/PrefixedNameSet;
            astore 4 /* keyset */
        start local 4 // com.ctc.wstx.dtd.PrefixedNameSet keyset
        13: .line 90
            new com.ctc.wstx.dtd.ChoiceContentSpec$Validator
            dup
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mArity:C
            aload 4 /* keyset */
            invokespecial com.ctc.wstx.dtd.ChoiceContentSpec$Validator.<init>:(CLcom/ctc/wstx/dtd/PrefixedNameSet;)V
            areturn
        end local 4 // com.ctc.wstx.dtd.PrefixedNameSet keyset
        14: .line 94
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // int i
        end local 2 // int len
        end local 1 // com.ctc.wstx.dtd.ContentSpec[] specs
        end local 0 // com.ctc.wstx.dtd.ChoiceContentSpec this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lcom/ctc/wstx/dtd/ChoiceContentSpec;
            1   15     1   specs  [Lcom/ctc/wstx/dtd/ContentSpec;
            2   15     2     len  I
            4    5     3       i  I
            6   15     3       i  I
           13   14     4  keyset  Lcom/ctc/wstx/dtd/PrefixedNameSet;

  public com.ctc.wstx.dtd.ModelNode rewrite();
    descriptor: ()Lcom/ctc/wstx/dtd/ModelNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // com.ctc.wstx.dtd.ChoiceContentSpec this
         0: .line 101
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mContentSpecs:[Lcom/ctc/wstx/dtd/ContentSpec;
            astore 1 /* specs */
        start local 1 // com.ctc.wstx.dtd.ContentSpec[] specs
         1: .line 102
            aload 1 /* specs */
            arraylength
            istore 2 /* len */
        start local 2 // int len
         2: .line 103
            iload 2 /* len */
            anewarray com.ctc.wstx.dtd.ModelNode
            astore 3 /* models */
        start local 3 // com.ctc.wstx.dtd.ModelNode[] models
         3: .line 104
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 105
      StackMap locals: com.ctc.wstx.dtd.ChoiceContentSpec com.ctc.wstx.dtd.ContentSpec[] int com.ctc.wstx.dtd.ModelNode[] int
      StackMap stack:
            aload 3 /* models */
            iload 4 /* i */
            aload 1 /* specs */
            iload 4 /* i */
            aaload
            invokevirtual com.ctc.wstx.dtd.ContentSpec.rewrite:()Lcom/ctc/wstx/dtd/ModelNode;
            aastore
         6: .line 104
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            iload 2 /* len */
            if_icmplt 5
        end local 4 // int i
         8: .line 107
            new com.ctc.wstx.dtd.ChoiceModel
            dup
            aload 3 /* models */
            invokespecial com.ctc.wstx.dtd.ChoiceModel.<init>:([Lcom/ctc/wstx/dtd/ModelNode;)V
            astore 4 /* model */
        start local 4 // com.ctc.wstx.dtd.ChoiceModel model
         9: .line 110
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mArity:C
            bipush 42
            if_icmpne 11
        10: .line 111
            new com.ctc.wstx.dtd.StarModel
            dup
            aload 4 /* model */
            invokespecial com.ctc.wstx.dtd.StarModel.<init>:(Lcom/ctc/wstx/dtd/ModelNode;)V
            areturn
        11: .line 113
      StackMap locals: com.ctc.wstx.dtd.ChoiceContentSpec com.ctc.wstx.dtd.ContentSpec[] int com.ctc.wstx.dtd.ModelNode[] com.ctc.wstx.dtd.ChoiceModel
      StackMap stack:
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mArity:C
            bipush 63
            if_icmpne 13
        12: .line 114
            new com.ctc.wstx.dtd.OptionalModel
            dup
            aload 4 /* model */
            invokespecial com.ctc.wstx.dtd.OptionalModel.<init>:(Lcom/ctc/wstx/dtd/ModelNode;)V
            areturn
        13: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mArity:C
            bipush 43
            if_icmpne 17
        14: .line 117
            new com.ctc.wstx.dtd.ConcatModel
            dup
            aload 4 /* model */
        15: .line 118
            new com.ctc.wstx.dtd.StarModel
            dup
            aload 4 /* model */
            invokevirtual com.ctc.wstx.dtd.ChoiceModel.cloneModel:()Lcom/ctc/wstx/dtd/ModelNode;
            invokespecial com.ctc.wstx.dtd.StarModel.<init>:(Lcom/ctc/wstx/dtd/ModelNode;)V
        16: .line 117
            invokespecial com.ctc.wstx.dtd.ConcatModel.<init>:(Lcom/ctc/wstx/dtd/ModelNode;Lcom/ctc/wstx/dtd/ModelNode;)V
            areturn
        17: .line 120
      StackMap locals:
      StackMap stack:
            aload 4 /* model */
            areturn
        end local 4 // com.ctc.wstx.dtd.ChoiceModel model
        end local 3 // com.ctc.wstx.dtd.ModelNode[] models
        end local 2 // int len
        end local 1 // com.ctc.wstx.dtd.ContentSpec[] specs
        end local 0 // com.ctc.wstx.dtd.ChoiceContentSpec this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    this  Lcom/ctc/wstx/dtd/ChoiceContentSpec;
            1   18     1   specs  [Lcom/ctc/wstx/dtd/ContentSpec;
            2   18     2     len  I
            3   18     3  models  [Lcom/ctc/wstx/dtd/ModelNode;
            4    8     4       i  I
            9   18     4   model  Lcom/ctc/wstx/dtd/ChoiceModel;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.ctc.wstx.dtd.ChoiceContentSpec this
         0: .line 126
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 128
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mHasMixed:Z
            ifeq 4
         2: .line 129
            aload 1 /* sb */
            ldc "(#PCDATA | "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 130
            goto 5
         4: .line 131
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* sb */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 133
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         6: goto 11
         7: .line 134
      StackMap locals: int
      StackMap stack:
            iload 2 /* i */
            ifle 9
         8: .line 135
            aload 1 /* sb */
            ldc " | "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 137
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mContentSpecs:[Lcom/ctc/wstx/dtd/ContentSpec;
            iload 2 /* i */
            aaload
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 133
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 2 /* i */
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mContentSpecs:[Lcom/ctc/wstx/dtd/ContentSpec;
            arraylength
            if_icmplt 7
        end local 2 // int i
        12: .line 139
            aload 1 /* sb */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        13: .line 141
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mArity:C
            bipush 32
            if_icmpeq 15
        14: .line 142
            aload 1 /* sb */
            aload 0 /* this */
            getfield com.ctc.wstx.dtd.ChoiceContentSpec.mArity:C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        15: .line 144
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // com.ctc.wstx.dtd.ChoiceContentSpec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lcom/ctc/wstx/dtd/ChoiceContentSpec;
            1   16     1    sb  Ljava/lang/StringBuilder;
            6   12     2     i  I

  protected static com.ctc.wstx.dtd.PrefixedNameSet namesetFromSpecs(boolean, com.ctc.wstx.dtd.ContentSpec[]);
    descriptor: (Z[Lcom/ctc/wstx/dtd/ContentSpec;)Lcom/ctc/wstx/dtd/PrefixedNameSet;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // boolean nsAware
        start local 1 // com.ctc.wstx.dtd.ContentSpec[] specs
         0: .line 161
            aload 1 /* specs */
            arraylength
            istore 2 /* len */
        start local 2 // int len
         1: .line 162
            iload 2 /* len */
            anewarray com.ctc.wstx.util.PrefixedName
            astore 3 /* nameArray */
        start local 3 // com.ctc.wstx.util.PrefixedName[] nameArray
         2: .line 163
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 164
      StackMap locals: int com.ctc.wstx.util.PrefixedName[] int
      StackMap stack:
            aload 3 /* nameArray */
            iload 4 /* i */
            aload 1 /* specs */
            iload 4 /* i */
            aaload
            checkcast com.ctc.wstx.dtd.TokenContentSpec
            invokevirtual com.ctc.wstx.dtd.TokenContentSpec.getName:()Lcom/ctc/wstx/util/PrefixedName;
            aastore
         5: .line 163
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            iload 2 /* len */
            if_icmplt 4
        end local 4 // int i
         7: .line 167
            iload 2 /* len */
            iconst_5
            if_icmpge 9
         8: .line 168
            new com.ctc.wstx.dtd.SmallPrefixedNameSet
            dup
            iload 0 /* nsAware */
            aload 3 /* nameArray */
            invokespecial com.ctc.wstx.dtd.SmallPrefixedNameSet.<init>:(Z[Lcom/ctc/wstx/util/PrefixedName;)V
            areturn
         9: .line 170
      StackMap locals:
      StackMap stack:
            new com.ctc.wstx.dtd.LargePrefixedNameSet
            dup
            iload 0 /* nsAware */
            aload 3 /* nameArray */
            invokespecial com.ctc.wstx.dtd.LargePrefixedNameSet.<init>:(Z[Lcom/ctc/wstx/util/PrefixedName;)V
            areturn
        end local 3 // com.ctc.wstx.util.PrefixedName[] nameArray
        end local 2 // int len
        end local 1 // com.ctc.wstx.dtd.ContentSpec[] specs
        end local 0 // boolean nsAware
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0    nsAware  Z
            0   10     1      specs  [Lcom/ctc/wstx/dtd/ContentSpec;
            1   10     2        len  I
            2   10     3  nameArray  [Lcom/ctc/wstx/util/PrefixedName;
            3    7     4          i  I
    MethodParameters:
         Name  Flags
      nsAware  
      specs    
}
SourceFile: "ChoiceContentSpec.java"
NestMembers:
  com.ctc.wstx.dtd.ChoiceContentSpec$Validator
InnerClasses:
  final Validator = com.ctc.wstx.dtd.ChoiceContentSpec$Validator of com.ctc.wstx.dtd.ChoiceContentSpec