public final class org.apache.fop.datatypes.URISpecification
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.fop.datatypes.URISpecification
  super_class: java.lang.Object
{
  private static final java.lang.String PUNCT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ",;:$&+="

  private static final java.lang.String RESERVED;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ",;:$&+=?/[]@"

  private static final char[] HEX_DIGITS;
    descriptor: [C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 102
            bipush 16
            newarray 5
            dup
            iconst_0
         1: .line 103
            bipush 48
            castore
            dup
            iconst_1
            bipush 49
            castore
            dup
            iconst_2
            bipush 50
            castore
            dup
            iconst_3
            bipush 51
            castore
            dup
            iconst_4
            bipush 52
            castore
            dup
            iconst_5
            bipush 53
            castore
            dup
            bipush 6
            bipush 54
            castore
            dup
            bipush 7
            bipush 55
            castore
            dup
            bipush 8
         2: .line 104
            bipush 56
            castore
            dup
            bipush 9
            bipush 57
            castore
            dup
            bipush 10
            bipush 65
            castore
            dup
            bipush 11
            bipush 66
            castore
            dup
            bipush 12
            bipush 67
            castore
            dup
            bipush 13
            bipush 68
            castore
            dup
            bipush 14
            bipush 69
            castore
            dup
            bipush 15
            bipush 70
            castore
         3: .line 102
            putstatic org.apache.fop.datatypes.URISpecification.HEX_DIGITS:[C
         4: .line 105
            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 // org.apache.fop.datatypes.URISpecification this
         0: .line 30
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 31
            return
        end local 0 // org.apache.fop.datatypes.URISpecification this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/fop/datatypes/URISpecification;

  public static java.lang.String getURL(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String href
         0: .line 47
            aload 0 /* href */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 0 /* href */
         1: .line 48
            aload 0 /* href */
            ldc "url("
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 8
            aload 0 /* href */
            ldc ")"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpeq 8
         2: .line 49
            aload 0 /* href */
            iconst_4
            aload 0 /* href */
            ldc ")"
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 0 /* href */
         3: .line 50
            aload 0 /* href */
            ldc "'"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 6
            aload 0 /* href */
            ldc "'"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 6
         4: .line 51
            aload 0 /* href */
            iconst_1
            aload 0 /* href */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* href */
         5: .line 52
            goto 8
      StackMap locals:
      StackMap stack:
         6: aload 0 /* href */
            ldc "\""
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 8
            aload 0 /* href */
            ldc "\""
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 53
            aload 0 /* href */
            iconst_1
            aload 0 /* href */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* href */
         8: .line 58
      StackMap locals:
      StackMap stack:
            aload 0 /* href */
            areturn
        end local 0 // java.lang.String href
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  href  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      href  

  private static boolean isDigit(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char ch
         0: .line 71
            iload 0 /* ch */
            bipush 48
            if_icmplt 1
            iload 0 /* ch */
            bipush 57
            if_icmpgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // char ch
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    ch  C
    MethodParameters:
      Name  Flags
      ch    

  private static boolean isAlpha(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char ch
         0: .line 75
            iload 0 /* ch */
            bipush 65
            if_icmplt 1
            iload 0 /* ch */
            bipush 90
            if_icmple 3
      StackMap locals:
      StackMap stack:
         1: iload 0 /* ch */
            bipush 97
            if_icmplt 2
            iload 0 /* ch */
            bipush 122
            if_icmple 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // char ch
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    ch  C
    MethodParameters:
      Name  Flags
      ch    

  private static boolean isHexDigit(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char ch
         0: .line 79
            iload 0 /* ch */
            bipush 48
            if_icmplt 1
            iload 0 /* ch */
            bipush 57
            if_icmple 4
      StackMap locals:
      StackMap stack:
         1: iload 0 /* ch */
            bipush 65
            if_icmplt 2
            iload 0 /* ch */
            bipush 70
            if_icmple 4
      StackMap locals:
      StackMap stack:
         2: iload 0 /* ch */
            bipush 97
            if_icmplt 3
            iload 0 /* ch */
            bipush 102
            if_icmple 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 0 // char ch
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0    ch  C
    MethodParameters:
      Name  Flags
      ch    

  private static boolean isReserved(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char ch
         0: .line 83
            ldc ",;:$&+=?/[]@"
            iload 0 /* ch */
            invokevirtual java.lang.String.indexOf:(I)I
            iflt 2
         1: .line 84
            iconst_1
            ireturn
         2: .line 85
      StackMap locals:
      StackMap stack:
            bipush 35
            iload 0 /* ch */
            if_icmpne 4
         3: .line 87
            iconst_1
            ireturn
         4: .line 89
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // char ch
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0    ch  C
    MethodParameters:
      Name  Flags
      ch    

  private static boolean isUnreserved(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char ch
         0: .line 93
            iload 0 /* ch */
            invokestatic org.apache.fop.datatypes.URISpecification.isDigit:(C)Z
            ifne 1
            iload 0 /* ch */
            invokestatic org.apache.fop.datatypes.URISpecification.isAlpha:(C)Z
            ifeq 2
         1: .line 94
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 95
      StackMap locals:
      StackMap stack:
            ldc "_-!.~'()*"
            iload 0 /* ch */
            invokevirtual java.lang.String.indexOf:(I)I
            iflt 4
         3: .line 97
            iconst_1
            ireturn
         4: .line 99
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // char ch
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0    ch  C
    MethodParameters:
      Name  Flags
      ch    

  private static void appendEscape(java.lang.StringBuffer, byte);
    descriptor: (Ljava/lang/StringBuffer;B)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.StringBuffer sb
        start local 1 // byte b
         0: .line 108
            aload 0 /* sb */
            bipush 37
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            getstatic org.apache.fop.datatypes.URISpecification.HEX_DIGITS:[C
            iload 1 /* b */
            iconst_4
            ishr
            bipush 15
            iand
            caload
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            getstatic org.apache.fop.datatypes.URISpecification.HEX_DIGITS:[C
            iload 1 /* b */
            iconst_0
            ishr
            bipush 15
            iand
            caload
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         1: .line 109
            return
        end local 1 // byte b
        end local 0 // java.lang.StringBuffer sb
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    sb  Ljava/lang/StringBuffer;
            0    2     1     b  B
    MethodParameters:
      Name  Flags
      sb    
      b     

  public static java.lang.String escapeURI(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=10, args_size=1
        start local 0 // java.lang.String uri
         0: .line 119
            aload 0 /* uri */
            invokestatic org.apache.fop.datatypes.URISpecification.getURL:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* uri */
         1: .line 120
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuffer sb
         2: .line 121
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: aload 0 /* uri */
            invokevirtual java.lang.String.length:()I
            istore 3 /* c */
        start local 3 // int c
         4: goto 23
         5: .line 122
      StackMap locals: java.lang.StringBuffer int int
      StackMap stack:
            aload 0 /* uri */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* ch */
        start local 4 // char ch
         6: .line 123
            iload 4 /* ch */
            bipush 37
            if_icmpne 10
         7: .line 124
            iload 2 /* i */
            iload 3 /* c */
            iconst_3
            isub
            if_icmpge 10
            aload 0 /* uri */
            iload 2 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic org.apache.fop.datatypes.URISpecification.isHexDigit:(C)Z
            ifeq 10
            aload 0 /* uri */
            iload 2 /* i */
            iconst_2
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic org.apache.fop.datatypes.URISpecification.isHexDigit:(C)Z
            ifeq 10
         8: .line 125
            aload 1 /* sb */
            iload 4 /* ch */
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         9: .line 126
            goto 22
        10: .line 129
      StackMap locals: int
      StackMap stack:
            iload 4 /* ch */
            invokestatic org.apache.fop.datatypes.URISpecification.isReserved:(C)Z
            ifne 11
            iload 4 /* ch */
            invokestatic org.apache.fop.datatypes.URISpecification.isUnreserved:(C)Z
            ifeq 13
        11: .line 131
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            iload 4 /* ch */
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        12: .line 132
            goto 22
        13: .line 134
      StackMap locals:
      StackMap stack:
            iload 4 /* ch */
            invokestatic java.lang.Character.toString:(C)Ljava/lang/String;
            ldc "UTF-8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            astore 5 /* utf8 */
        start local 5 // byte[] utf8
        14: .line 135
            aload 5 /* utf8 */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 18
      StackMap locals: java.lang.String java.lang.StringBuffer int int int byte[] top int int byte[]
      StackMap stack:
        15: aload 9
            iload 7
            baload
            istore 6 /* anUtf8 */
        start local 6 // byte anUtf8
        16: .line 136
            aload 1 /* sb */
            iload 6 /* anUtf8 */
            invokestatic org.apache.fop.datatypes.URISpecification.appendEscape:(Ljava/lang/StringBuffer;B)V
        end local 6 // byte anUtf8
        17: .line 135
            iinc 7 1
      StackMap locals:
      StackMap stack:
        18: iload 7
            iload 8
            if_icmplt 15
        end local 5 // byte[] utf8
        19: .line 138
            goto 22
      StackMap locals: java.lang.String java.lang.StringBuffer int int int
      StackMap stack: java.io.UnsupportedEncodingException
        20: pop
        21: .line 139
            new java.lang.Error
            dup
            ldc "Incompatible JVM. UTF-8 not supported."
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // char ch
        22: .line 121
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 2 /* i */
            iload 3 /* c */
            if_icmplt 5
        end local 3 // int c
        end local 2 // int i
        24: .line 143
            aload 1 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuffer sb
        end local 0 // java.lang.String uri
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   25     0     uri  Ljava/lang/String;
            2   25     1      sb  Ljava/lang/StringBuffer;
            3   24     2       i  I
            4   24     3       c  I
            6   22     4      ch  C
           14   19     5    utf8  [B
           16   17     6  anUtf8  B
      Exception table:
        from    to  target  type
          13    19      20  Class java.io.UnsupportedEncodingException
    MethodParameters:
      Name  Flags
      uri   
}
SourceFile: "URISpecification.java"