public class org.eclipse.osgi.util.TextProcessor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.osgi.util.TextProcessor
  super_class: java.lang.Object
{
  private static final java.lang.String DOT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "."

  private static final java.lang.String COLON;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ":"

  private static final java.lang.String FILE_SEP_FSLASH;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/"

  private static final java.lang.String FILE_SEP_BSLASH;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "\\"

  private static final java.lang.String delimiterString;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ".:/\\"

  private static final char LRM;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8206

  private static final char LRE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8234

  private static final char PDF;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8236

  private static boolean IS_PROCESSING_NEEDED;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final int INDEX_NOT_SET;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 999999999

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=0
         0: .line 72
            iconst_0
            putstatic org.eclipse.osgi.util.TextProcessor.IS_PROCESSING_NEEDED:Z
         1: .line 78
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            astore 0 /* locale */
        start local 0 // java.util.Locale locale
         2: .line 79
            aload 0 /* locale */
            invokevirtual java.util.Locale.getLanguage:()Ljava/lang/String;
            astore 1 /* lang */
        start local 1 // java.lang.String lang
         3: .line 81
            ldc "iw"
            aload 1 /* lang */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            ldc "he"
            aload 1 /* lang */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            ldc "ar"
            aload 1 /* lang */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            ldc "fa"
            aload 1 /* lang */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            ldc "ur"
            aload 1 /* lang */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         4: .line 82
      StackMap locals: java.util.Locale java.lang.String
      StackMap stack:
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 2 /* osName */
        start local 2 // java.lang.String osName
         5: .line 83
            aload 2 /* osName */
            ldc "windows"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 6
            aload 2 /* osName */
            ldc "linux"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 6
            aload 2 /* osName */
            ldc "mac"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 6
            aload 2 /* osName */
            ldc "freebsd"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 84
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_1
            putstatic org.eclipse.osgi.util.TextProcessor.IS_PROCESSING_NEEDED:Z
        end local 2 // java.lang.String osName
        end local 1 // java.lang.String lang
        end local 0 // java.util.Locale locale
         7: .line 87
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            2    7     0  locale  Ljava/util/Locale;
            3    7     1    lang  Ljava/lang/String;
            5    7     2  osName  Ljava/lang/String;

  public static java.lang.String process(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String text
         0: .line 102
            getstatic org.eclipse.osgi.util.TextProcessor.IS_PROCESSING_NEEDED:Z
            ifeq 1
            aload 0 /* text */
            ifnull 1
            aload 0 /* text */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpgt 2
         1: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            areturn
         2: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            invokestatic org.eclipse.osgi.util.TextProcessor.getDefaultDelimiters:()Ljava/lang/String;
            invokestatic org.eclipse.osgi.util.TextProcessor.process:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String text
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  text  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      text  

  public static java.lang.String process(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // java.lang.String str
        start local 1 // java.lang.String delimiter
         0: .line 157
            getstatic org.eclipse.osgi.util.TextProcessor.IS_PROCESSING_NEEDED:Z
            ifeq 1
            aload 0 /* str */
            ifnull 1
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpgt 2
         1: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            areturn
         2: .line 161
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            sipush 8234
            if_icmpne 4
            aload 0 /* str */
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            sipush 8236
            if_icmpne 4
         3: .line 162
            aload 0 /* str */
            areturn
         4: .line 166
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* isStringBidi */
        start local 2 // boolean isStringBidi
         5: .line 168
            iconst_0
            istore 3 /* isLastRTL */
        start local 3 // boolean isLastRTL
         6: .line 170
            ldc 999999999
            istore 4 /* delimIndex */
        start local 4 // int delimIndex
         7: .line 172
            aload 1 /* delimiter */
            ifnonnull 8
            invokestatic org.eclipse.osgi.util.TextProcessor.getDefaultDelimiters:()Ljava/lang/String;
            goto 9
      StackMap locals: int int int
      StackMap stack:
         8: aload 1 /* delimiter */
      StackMap locals:
      StackMap stack: java.lang.String
         9: astore 1 /* delimiter */
        10: .line 174
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* target */
        start local 5 // java.lang.StringBuilder target
        11: .line 175
            aload 5 /* target */
            sipush 8234
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        12: .line 178
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        13: aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            istore 8 /* n */
        start local 8 // int n
        14: goto 38
        15: .line 179
      StackMap locals: java.lang.String java.lang.String int int int java.lang.StringBuilder top int int
      StackMap stack:
            aload 0 /* str */
            iload 7 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 6 /* ch */
        start local 6 // char ch
        16: .line 180
            aload 1 /* delimiter */
            iload 6 /* ch */
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 20
        17: .line 182
            iload 3 /* isLastRTL */
            ifeq 36
        18: .line 183
            aload 5 /* target */
            invokevirtual java.lang.StringBuilder.length:()I
            istore 4 /* delimIndex */
        19: .line 185
            goto 36
      StackMap locals: java.lang.String java.lang.String int int int java.lang.StringBuilder int int int
      StackMap stack:
        20: iload 6 /* ch */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifeq 26
        21: .line 186
            iload 4 /* delimIndex */
            ldc 999999999
            if_icmpeq 36
        22: .line 189
            aload 5 /* target */
            iload 4 /* delimIndex */
            sipush 8206
            invokevirtual java.lang.StringBuilder.insert:(IC)Ljava/lang/StringBuilder;
            pop
        23: .line 190
            ldc 999999999
            istore 4 /* delimIndex */
        24: .line 191
            iconst_0
            istore 3 /* isLastRTL */
        25: .line 193
            goto 36
      StackMap locals:
      StackMap stack:
        26: iload 6 /* ch */
            invokestatic java.lang.Character.isLetter:(C)Z
            ifeq 36
        27: .line 194
            iload 6 /* ch */
            invokestatic org.eclipse.osgi.util.TextProcessor.isRTL:(C)Z
            ifeq 34
        28: .line 195
            iconst_1
            istore 2 /* isStringBidi */
        29: .line 196
            iload 4 /* delimIndex */
            ldc 999999999
            if_icmpeq 32
        30: .line 199
            aload 5 /* target */
            iload 4 /* delimIndex */
            sipush 8206
            invokevirtual java.lang.StringBuilder.insert:(IC)Ljava/lang/StringBuilder;
            pop
        31: .line 200
            ldc 999999999
            istore 4 /* delimIndex */
        32: .line 202
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* isLastRTL */
        33: .line 203
            goto 36
        34: .line 205
      StackMap locals:
      StackMap stack:
            ldc 999999999
            istore 4 /* delimIndex */
        35: .line 206
            iconst_0
            istore 3 /* isLastRTL */
        36: .line 209
      StackMap locals:
      StackMap stack:
            aload 5 /* target */
            iload 6 /* ch */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        37: .line 178
            iinc 7 /* i */ 1
        end local 6 // char ch
      StackMap locals: java.lang.String java.lang.String int int int java.lang.StringBuilder top int int
      StackMap stack:
        38: iload 7 /* i */
            iload 8 /* n */
            if_icmplt 15
        end local 8 // int n
        end local 7 // int i
        39: .line 220
            iload 2 /* isStringBidi */
            ifne 40
            aload 0 /* str */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isLetter:(C)Z
            ifeq 40
            aload 0 /* str */
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic org.eclipse.osgi.util.TextProcessor.isNeutral:(C)Z
            ifeq 42
        40: .line 221
      StackMap locals: java.lang.String java.lang.String int int int java.lang.StringBuilder
      StackMap stack:
            aload 5 /* target */
            sipush 8236
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        41: .line 222
            aload 5 /* target */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        42: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            areturn
        end local 5 // java.lang.StringBuilder target
        end local 4 // int delimIndex
        end local 3 // boolean isLastRTL
        end local 2 // boolean isStringBidi
        end local 1 // java.lang.String delimiter
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   43     0           str  Ljava/lang/String;
            0   43     1     delimiter  Ljava/lang/String;
            5   43     2  isStringBidi  Z
            6   43     3     isLastRTL  Z
            7   43     4    delimIndex  I
           11   43     5        target  Ljava/lang/StringBuilder;
           16   38     6            ch  C
           13   39     7             i  I
           14   39     8             n  I
    MethodParameters:
           Name  Flags
      str        
      delimiter  

  public static java.lang.String deprocess(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.String str
         0: .line 240
            getstatic org.eclipse.osgi.util.TextProcessor.IS_PROCESSING_NEEDED:Z
            ifeq 1
            aload 0 /* str */
            ifnull 1
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpgt 2
         1: .line 241
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            areturn
         2: .line 243
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* buf */
        start local 1 // java.lang.StringBuilder buf
         3: .line 244
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 12
         5: .line 245
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* str */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* c */
        start local 3 // char c
         6: .line 246
            iload 3 /* c */
            lookupswitch { // 3
                 8206: 9
                 8234: 7
                 8236: 8
              default: 10
          }
         7: .line 248
      StackMap locals: int
      StackMap stack:
            goto 11
         8: .line 250
      StackMap locals:
      StackMap stack:
            goto 11
         9: .line 252
      StackMap locals:
      StackMap stack:
            goto 11
        10: .line 254
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            iload 3 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 3 // char c
        11: .line 244
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 2 /* i */
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 2 // int i
        13: .line 258
            aload 1 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder buf
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0   str  Ljava/lang/String;
            3   14     1   buf  Ljava/lang/StringBuilder;
            4   13     2     i  I
            6   11     3     c  C
    MethodParameters:
      Name  Flags
      str   

  public static java.lang.String getDefaultDelimiters();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 268
            ldc ".:/\\"
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean isRTL(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 285
            iload 0 /* c */
            sipush 1488
            if_icmplt 1
            iload 0 /* c */
            sipush 1969
            if_icmple 3
      StackMap locals:
      StackMap stack:
         1: iload 0 /* c */
            ldc 64285
            if_icmplt 2
            iload 0 /* c */
            ldc 65276
            if_icmple 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private static boolean isNeutral(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // char c
         0: .line 292
            iload 0 /* c */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifne 1
            iload 0 /* c */
            invokestatic java.lang.Character.isLetter:(C)Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.osgi.util.TextProcessor this
         0: .line 298
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 300
            return
        end local 0 // org.eclipse.osgi.util.TextProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/osgi/util/TextProcessor;
}
SourceFile: "TextProcessor.java"