public final class com.sun.xml.internal.bind.v2.bytecode.ClassTailor
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.sun.xml.internal.bind.v2.bytecode.ClassTailor
  super_class: java.lang.Object
{
  private static final java.util.logging.Logger logger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 43
            ldc Lcom/sun/xml/internal/bind/v2/bytecode/ClassTailor;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.sun.xml.internal.bind.v2.bytecode.ClassTailor.$assertionsDisabled:Z
         3: .line 47
            invokestatic com.sun.xml.internal.bind.Util.getClassLogger:()Ljava/util/logging/Logger;
            putstatic com.sun.xml.internal.bind.v2.bytecode.ClassTailor.logger:Ljava/util/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.xml.internal.bind.v2.bytecode.ClassTailor this
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.sun.xml.internal.bind.v2.bytecode.ClassTailor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/xml/internal/bind/v2/bytecode/ClassTailor;

  public static java.lang.String toVMClassName(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Class c
         0: .line 53
            getstatic com.sun.xml.internal.bind.v2.bytecode.ClassTailor.$assertionsDisabled:Z
            ifne 1
            aload 0 /* c */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 54
      StackMap locals:
      StackMap stack:
            aload 0 /* c */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 3
         2: .line 56
            aload 0 /* c */
            invokestatic com.sun.xml.internal.bind.v2.bytecode.ClassTailor.toVMTypeName:(Ljava/lang/Class;)Ljava/lang/String;
            areturn
         3: .line 57
      StackMap locals:
      StackMap stack:
            aload 0 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            areturn
        end local 0 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     c  Ljava/lang/Class;
    MethodParameters:
      Name  Flags
      c     

  public static java.lang.String toVMTypeName(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class c
         0: .line 61
            aload 0 /* c */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 2
         1: .line 63
            new java.lang.StringBuilder
            dup
            bipush 91
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* c */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokestatic com.sun.xml.internal.bind.v2.bytecode.ClassTailor.toVMTypeName:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         2: .line 65
      StackMap locals:
      StackMap stack:
            aload 0 /* c */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 12
         3: .line 66
            aload 0 /* c */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpne 4
            ldc "Z"
            areturn
         4: .line 67
      StackMap locals:
      StackMap stack:
            aload 0 /* c */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            if_acmpne 5
            ldc "C"
            areturn
         5: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* c */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            if_acmpne 6
            ldc "B"
            areturn
         6: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* c */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 7
            ldc "D"
            areturn
         7: .line 70
      StackMap locals:
      StackMap stack:
            aload 0 /* c */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpne 8
            ldc "F"
            areturn
         8: .line 71
      StackMap locals:
      StackMap stack:
            aload 0 /* c */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpne 9
            ldc "I"
            areturn
         9: .line 72
      StackMap locals:
      StackMap stack:
            aload 0 /* c */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 10
            ldc "J"
            areturn
        10: .line 73
      StackMap locals:
      StackMap stack:
            aload 0 /* c */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            if_acmpne 11
            ldc "S"
            areturn
        11: .line 75
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 0 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 77
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            bipush 76
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 59
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0     c  Ljava/lang/Class;
    MethodParameters:
      Name  Flags
      c     

  public static byte[] tailor(java.lang.Class, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/String;)[B
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.lang.Class templateClass
        start local 1 // java.lang.String newClassName
        start local 2 // java.lang.String[] replacements
         0: .line 83
            aload 0 /* templateClass */
            invokestatic com.sun.xml.internal.bind.v2.bytecode.ClassTailor.toVMClassName:(Ljava/lang/Class;)Ljava/lang/String;
            astore 3 /* vmname */
        start local 3 // java.lang.String vmname
         1: .line 85
            aload 0 /* templateClass */
            invokestatic com.sun.xml.internal.bind.v2.bytecode.SecureLoader.getClassClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
            new java.lang.StringBuilder
            dup
            aload 3 /* vmname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
         2: .line 86
            aload 3 /* vmname */
            aload 1 /* newClassName */
            aload 2 /* replacements */
         3: .line 84
            invokestatic com.sun.xml.internal.bind.v2.bytecode.ClassTailor.tailor:(Ljava/io/InputStream;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)[B
            areturn
        end local 3 // java.lang.String vmname
        end local 2 // java.lang.String[] replacements
        end local 1 // java.lang.String newClassName
        end local 0 // java.lang.Class templateClass
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0  templateClass  Ljava/lang/Class;
            0    4     1   newClassName  Ljava/lang/String;
            0    4     2   replacements  [Ljava/lang/String;
            1    4     3         vmname  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      templateClass  
      newClassName   
      replacements   

  public static byte[] tailor(java.io.InputStream, java.lang.String, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/io/InputStream;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)[B
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=14, args_size=4
        start local 0 // java.io.InputStream image
        start local 1 // java.lang.String templateClassName
        start local 2 // java.lang.String newClassName
        start local 3 // java.lang.String[] replacements
         0: .line 103
            new java.io.DataInputStream
            dup
            aload 0 /* image */
            invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
            astore 4 /* in */
        start local 4 // java.io.DataInputStream in
         1: .line 106
            new java.io.ByteArrayOutputStream
            dup
            sipush 1024
            invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
            astore 5 /* baos */
        start local 5 // java.io.ByteArrayOutputStream baos
         2: .line 107
            new java.io.DataOutputStream
            dup
            aload 5 /* baos */
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 6 /* out */
        start local 6 // java.io.DataOutputStream out
         3: .line 110
            aload 4 /* in */
            invokevirtual java.io.DataInputStream.readLong:()J
            lstore 7 /* l */
        start local 7 // long l
         4: .line 111
            aload 6 /* out */
            lload 7 /* l */
            invokevirtual java.io.DataOutputStream.writeLong:(J)V
         5: .line 114
            aload 4 /* in */
            invokevirtual java.io.DataInputStream.readShort:()S
            istore 9 /* count */
        start local 9 // short count
         6: .line 115
            aload 6 /* out */
            iload 9 /* count */
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
         7: .line 118
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         8: goto 36
         9: .line 119
      StackMap locals: java.io.InputStream java.lang.String java.lang.String java.lang.String[] java.io.DataInputStream java.io.ByteArrayOutputStream java.io.DataOutputStream long int int
      StackMap stack:
            aload 4 /* in */
            invokevirtual java.io.DataInputStream.readByte:()B
            istore 11 /* tag */
        start local 11 // byte tag
        10: .line 120
            aload 6 /* out */
            iload 11 /* tag */
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        11: .line 121
            iload 11 /* tag */
            tableswitch { // 0 - 12
                    0: 12
                    1: 13
                    2: 34
                    3: 25
                    4: 25
                    5: 27
                    6: 27
                    7: 30
                    8: 30
                    9: 32
                   10: 32
                   11: 32
                   12: 32
              default: 34
          }
        12: .line 127
      StackMap locals: int
      StackMap stack:
            goto 35
        13: .line 131
      StackMap locals:
      StackMap stack:
            aload 4 /* in */
            invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
            astore 12 /* value */
        start local 12 // java.lang.String value
        14: .line 132
            aload 12 /* value */
            aload 1 /* templateClassName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 133
            aload 2 /* newClassName */
            astore 12 /* value */
            goto 23
        16: .line 135
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            istore 13 /* j */
        start local 13 // int j
        17: goto 22
        18: .line 136
      StackMap locals: int
      StackMap stack:
            aload 12 /* value */
            aload 3 /* replacements */
            iload 13 /* j */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 137
            aload 3 /* replacements */
            iload 13 /* j */
            iconst_1
            iadd
            aaload
            astore 12 /* value */
        20: .line 138
            goto 23
        21: .line 135
      StackMap locals:
      StackMap stack:
            iinc 13 /* j */ 2
      StackMap locals:
      StackMap stack:
        22: iload 13 /* j */
            aload 3 /* replacements */
            arraylength
            if_icmplt 18
        end local 13 // int j
        23: .line 141
      StackMap locals:
      StackMap stack:
            aload 6 /* out */
            aload 12 /* value */
            invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
        end local 12 // java.lang.String value
        24: .line 143
            goto 35
        25: .line 147
      StackMap locals:
      StackMap stack:
            aload 6 /* out */
            aload 4 /* in */
            invokevirtual java.io.DataInputStream.readInt:()I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        26: .line 148
            goto 35
        27: .line 152
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
        28: .line 153
            aload 6 /* out */
            aload 4 /* in */
            invokevirtual java.io.DataInputStream.readLong:()J
            invokevirtual java.io.DataOutputStream.writeLong:(J)V
        29: .line 154
            goto 35
        30: .line 158
      StackMap locals:
      StackMap stack:
            aload 6 /* out */
            aload 4 /* in */
            invokevirtual java.io.DataInputStream.readShort:()S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        31: .line 159
            goto 35
        32: .line 165
      StackMap locals:
      StackMap stack:
            aload 6 /* out */
            aload 4 /* in */
            invokevirtual java.io.DataInputStream.readInt:()I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        33: .line 166
            goto 35
        34: .line 169
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown constant type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* tag */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 11 // byte tag
        35: .line 118
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 10 /* i */
            iload 9 /* count */
            if_icmplt 9
        end local 10 // int i
        37: .line 174
            sipush 512
            newarray 8
            astore 10 /* buf */
        start local 10 // byte[] buf
        38: .line 176
            goto 40
        start local 11 // int len
        39: .line 177
      StackMap locals: java.io.InputStream java.lang.String java.lang.String java.lang.String[] java.io.DataInputStream java.io.ByteArrayOutputStream java.io.DataOutputStream long int byte[] int
      StackMap stack:
            aload 6 /* out */
            aload 10 /* buf */
            iconst_0
            iload 11 /* len */
            invokevirtual java.io.DataOutputStream.write:([BII)V
        end local 11 // int len
        40: .line 176
      StackMap locals:
      StackMap stack:
            aload 4 /* in */
            aload 10 /* buf */
            invokevirtual java.io.DataInputStream.read:([B)I
            dup
            istore 11 /* len */
        start local 11 // int len
        41: ifgt 39
        42: .line 179
            aload 4 /* in */
            invokevirtual java.io.DataInputStream.close:()V
        43: .line 180
            aload 6 /* out */
            invokevirtual java.io.DataOutputStream.close:()V
        44: .line 183
            aload 5 /* baos */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
        45: areturn
        end local 11 // int len
        end local 10 // byte[] buf
        end local 9 // short count
        end local 7 // long l
        end local 6 // java.io.DataOutputStream out
        end local 5 // java.io.ByteArrayOutputStream baos
        46: .line 185
      StackMap locals: java.io.InputStream java.lang.String java.lang.String java.lang.String[] java.io.DataInputStream
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        47: .line 187
            getstatic com.sun.xml.internal.bind.v2.bytecode.ClassTailor.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "failed to tailor"
            aload 5 /* e */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        48: .line 188
            aconst_null
            areturn
        end local 5 // java.io.IOException e
        end local 4 // java.io.DataInputStream in
        end local 3 // java.lang.String[] replacements
        end local 2 // java.lang.String newClassName
        end local 1 // java.lang.String templateClassName
        end local 0 // java.io.InputStream image
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   49     0              image  Ljava/io/InputStream;
            0   49     1  templateClassName  Ljava/lang/String;
            0   49     2       newClassName  Ljava/lang/String;
            0   49     3       replacements  [Ljava/lang/String;
            1   49     4                 in  Ljava/io/DataInputStream;
            2   46     5               baos  Ljava/io/ByteArrayOutputStream;
            3   46     6                out  Ljava/io/DataOutputStream;
            4   46     7                  l  J
            6   46     9              count  S
            8   37    10                  i  I
           10   35    11                tag  B
           14   24    12              value  Ljava/lang/String;
           17   23    13                  j  I
           38   46    10                buf  [B
           39   40    11                len  I
           41   46    11                len  I
           47   49     5                  e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1    45      46  Class java.io.IOException
    MethodParameters:
                   Name  Flags
      image              
      templateClassName  
      newClassName       
      replacements       
}
SourceFile: "ClassTailor.java"