public class org.eclipse.jdt.internal.core.manipulation.util.Strings
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.manipulation.util.Strings
  super_class: java.lang.Object
{
  public static final boolean USE_TEXT_PROCESSOR;
    descriptor: Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  protected static final java.lang.String JAVA_ELEMENT_DELIMITERS;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 49
            ldc "args : String[]"
            astore 0 /* testString */
        start local 0 // java.lang.String testString
         1: .line 50
            aload 0 /* testString */
            aload 0 /* testString */
            invokestatic org.eclipse.osgi.util.TextProcessor.process:(Ljava/lang/String;)Ljava/lang/String;
            if_acmpeq 2
            iconst_1
            goto 3
      StackMap locals: java.lang.String
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: putstatic org.eclipse.jdt.internal.core.manipulation.util.Strings.USE_TEXT_PROCESSOR:Z
        end local 0 // java.lang.String testString
         4: .line 53
            new java.lang.StringBuilder
            dup
            invokestatic org.eclipse.osgi.util.TextProcessor.getDefaultDelimiters:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "<>(),?{} "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic org.eclipse.jdt.internal.core.manipulation.util.Strings.JAVA_ELEMENT_DELIMITERS:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            1    4     0  testString  Ljava/lang/String;

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.manipulation.util.Strings this
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.eclipse.jdt.internal.core.manipulation.util.Strings this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/manipulation/util/Strings;

  public static java.lang.String markLTR(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String string
         0: .line 63
            getstatic org.eclipse.jdt.internal.core.manipulation.util.Strings.USE_TEXT_PROCESSOR:Z
            ifne 2
         1: .line 64
            aload 0 /* string */
            areturn
         2: .line 66
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            invokestatic org.eclipse.osgi.util.TextProcessor.process:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  string  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      string  

  public static java.lang.String markLTR(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String string
        start local 1 // java.lang.String delimiters
         0: .line 78
            getstatic org.eclipse.jdt.internal.core.manipulation.util.Strings.USE_TEXT_PROCESSOR:Z
            ifne 2
         1: .line 79
            aload 0 /* string */
            areturn
         2: .line 81
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            aload 1 /* delimiters */
            invokestatic org.eclipse.osgi.util.TextProcessor.process:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String delimiters
        end local 0 // java.lang.String string
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0      string  Ljava/lang/String;
            0    3     1  delimiters  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      string      
      delimiters  

  public static java.lang.String markJavaElementLabelLTR(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 string
         0: .line 93
            getstatic org.eclipse.jdt.internal.core.manipulation.util.Strings.USE_TEXT_PROCESSOR:Z
            ifne 2
         1: .line 94
            aload 0 /* string */
            areturn
         2: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            getstatic org.eclipse.jdt.internal.core.manipulation.util.Strings.JAVA_ELEMENT_DELIMITERS: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 string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  string  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      string  

  public static boolean isLowerCase(char);
    descriptor: (C)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char ch
         0: .line 105
            iload 0 /* ch */
            invokestatic java.lang.Character.toLowerCase:(C)C
            iload 0 /* ch */
            if_icmpne 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    

  public static boolean startsWithIgnoreCase(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.String text
        start local 1 // java.lang.String prefix
         0: .line 109
            aload 0 /* text */
            invokevirtual java.lang.String.length:()I
            istore 2 /* textLength */
        start local 2 // int textLength
         1: .line 110
            aload 1 /* prefix */
            invokevirtual java.lang.String.length:()I
            istore 3 /* prefixLength */
        start local 3 // int prefixLength
         2: .line 111
            iload 2 /* textLength */
            iload 3 /* prefixLength */
            if_icmpge 4
         3: .line 112
            iconst_0
            ireturn
         4: .line 113
      StackMap locals: int int
      StackMap stack:
            iload 3 /* prefixLength */
            iconst_1
            isub
            istore 4 /* i */
        start local 4 // int i
         5: goto 9
         6: .line 114
      StackMap locals: int
      StackMap stack:
            aload 1 /* prefix */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.toLowerCase:(C)C
            aload 0 /* text */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.toLowerCase:(C)C
            if_icmpeq 8
         7: .line 115
            iconst_0
            ireturn
         8: .line 113
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            ifge 6
        end local 4 // int i
        10: .line 117
            iconst_1
            ireturn
        end local 3 // int prefixLength
        end local 2 // int textLength
        end local 1 // java.lang.String prefix
        end local 0 // java.lang.String text
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          text  Ljava/lang/String;
            0   11     1        prefix  Ljava/lang/String;
            1   11     2    textLength  I
            2   11     3  prefixLength  I
            5   10     4             i  I
    MethodParameters:
        Name  Flags
      text    
      prefix  

  public static java.lang.String removeNewLine(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.String message
         0: .line 121
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* result */
        start local 1 // java.lang.StringBuilder result
         1: .line 122
            iconst_0
            istore 2 /* current */
        start local 2 // int current
         2: .line 123
            aload 0 /* message */
            bipush 10
            iconst_0
            invokevirtual java.lang.String.indexOf:(II)I
            istore 3 /* index */
        start local 3 // int index
         3: .line 124
            goto 9
         4: .line 125
      StackMap locals: java.lang.StringBuilder int int
      StackMap stack:
            aload 1 /* result */
            aload 0 /* message */
            iload 2 /* current */
            iload 3 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 126
            iload 2 /* current */
            iload 3 /* index */
            if_icmpge 7
            iload 3 /* index */
            ifeq 7
         6: .line 127
            aload 1 /* result */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 128
      StackMap locals:
      StackMap stack:
            iload 3 /* index */
            iconst_1
            iadd
            istore 2 /* current */
         8: .line 129
            aload 0 /* message */
            bipush 10
            iload 2 /* current */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 3 /* index */
         9: .line 124
      StackMap locals:
      StackMap stack:
            iload 3 /* index */
            iconst_m1
            if_icmpne 4
        10: .line 131
            aload 1 /* result */
            aload 0 /* message */
            iload 2 /* current */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 132
            aload 1 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int index
        end local 2 // int current
        end local 1 // java.lang.StringBuilder result
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0  message  Ljava/lang/String;
            1   12     1   result  Ljava/lang/StringBuilder;
            2   12     2  current  I
            3   12     3    index  I
    MethodParameters:
         Name  Flags
      message  

  public static java.lang.String[] convertIntoLines(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // java.lang.String input
         0: .line 145
            new org.eclipse.jface.text.DefaultLineTracker
            dup
            invokespecial org.eclipse.jface.text.DefaultLineTracker.<init>:()V
            astore 1 /* tracker */
        start local 1 // org.eclipse.jface.text.ILineTracker tracker
         1: .line 146
            aload 1 /* tracker */
            aload 0 /* input */
            invokeinterface org.eclipse.jface.text.ILineTracker.set:(Ljava/lang/String;)V
         2: .line 147
            aload 1 /* tracker */
            invokeinterface org.eclipse.jface.text.ILineTracker.getNumberOfLines:()I
            istore 2 /* size */
        start local 2 // int size
         3: .line 148
            iload 2 /* size */
            anewarray java.lang.String
            astore 3 /* result */
        start local 3 // java.lang.String[] result
         4: .line 149
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 10
         6: .line 150
      StackMap locals: java.lang.String org.eclipse.jface.text.ILineTracker int java.lang.String[] int
      StackMap stack:
            aload 1 /* tracker */
            iload 4 /* i */
            invokeinterface org.eclipse.jface.text.ILineTracker.getLineInformation:(I)Lorg/eclipse/jface/text/IRegion;
            astore 5 /* region */
        start local 5 // org.eclipse.jface.text.IRegion region
         7: .line 151
            aload 5 /* region */
            invokeinterface org.eclipse.jface.text.IRegion.getOffset:()I
            istore 6 /* offset */
        start local 6 // int offset
         8: .line 152
            aload 3 /* result */
            iload 4 /* i */
            aload 0 /* input */
            iload 6 /* offset */
            iload 6 /* offset */
            aload 5 /* region */
            invokeinterface org.eclipse.jface.text.IRegion.getLength:()I
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aastore
        end local 6 // int offset
        end local 5 // org.eclipse.jface.text.IRegion region
         9: .line 149
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            iload 2 /* size */
            if_icmplt 6
        end local 4 // int i
        11: .line 154
            aload 3 /* result */
        12: areturn
        end local 3 // java.lang.String[] result
        end local 2 // int size
        end local 1 // org.eclipse.jface.text.ILineTracker tracker
        13: .line 155
      StackMap locals: java.lang.String
      StackMap stack: org.eclipse.jface.text.BadLocationException
            pop
        14: .line 156
            aconst_null
            areturn
        end local 0 // java.lang.String input
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0    input  Ljava/lang/String;
            1   13     1  tracker  Lorg/eclipse/jface/text/ILineTracker;
            3   13     2     size  I
            4   13     3   result  [Ljava/lang/String;
            5   11     4        i  I
            7    9     5   region  Lorg/eclipse/jface/text/IRegion;
            8    9     6   offset  I
      Exception table:
        from    to  target  type
           0    12      13  Class org.eclipse.jface.text.BadLocationException
    MethodParameters:
       Name  Flags
      input  

  public static boolean containsOnlyWhitespaces(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.String s
         0: .line 172
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            istore 1 /* size */
        start local 1 // int size
         1: .line 173
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 174
      StackMap locals: int int
      StackMap stack:
            aload 0 /* s */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isWhitespace:(C)Z
            ifne 5
         4: .line 175
            iconst_0
            ireturn
         5: .line 173
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            iload 1 /* size */
            if_icmplt 3
        end local 2 // int i
         7: .line 177
            iconst_1
            ireturn
        end local 1 // int size
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     s  Ljava/lang/String;
            1    8     1  size  I
            2    7     2     i  I
    MethodParameters:
      Name  Flags
      s     

  public static java.lang.String trimLeadingTabsAndSpaces(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // java.lang.String line
         0: .line 188
            aload 0 /* line */
            invokevirtual java.lang.String.length:()I
            istore 1 /* size */
        start local 1 // int size
         1: .line 189
            iload 1 /* size */
            istore 2 /* start */
        start local 2 // int start
         2: .line 190
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 9
         4: .line 191
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* line */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
         5: .line 192
            iload 4 /* c */
            invokestatic org.eclipse.jdt.core.formatter.IndentManipulation.isIndentChar:(C)Z
            ifne 8
         6: .line 193
            iload 3 /* i */
            istore 2 /* start */
         7: .line 194
            goto 10
        end local 4 // char c
         8: .line 190
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            iload 1 /* size */
            if_icmplt 4
        end local 3 // int i
        10: .line 197
      StackMap locals:
      StackMap stack:
            iload 2 /* start */
            ifne 12
        11: .line 198
            aload 0 /* line */
            areturn
        12: .line 199
      StackMap locals:
      StackMap stack:
            iload 2 /* start */
            iload 1 /* size */
            if_icmpne 14
        13: .line 200
            ldc ""
            areturn
        14: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* line */
            iload 2 /* start */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 2 // int start
        end local 1 // int size
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   line  Ljava/lang/String;
            1   15     1   size  I
            2   15     2  start  I
            3   10     3      i  I
            5    8     4      c  C
    MethodParameters:
      Name  Flags
      line  

  public static java.lang.String trimTrailingTabsAndSpaces(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.lang.String line
         0: .line 206
            aload 0 /* line */
            invokevirtual java.lang.String.length:()I
            istore 1 /* size */
        start local 1 // int size
         1: .line 207
            iload 1 /* size */
            istore 2 /* end */
        start local 2 // int end
         2: .line 208
            iload 1 /* size */
            iconst_1
            isub
            istore 3 /* i */
        start local 3 // int i
         3: goto 8
         4: .line 209
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* line */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
         5: .line 210
            iload 4 /* c */
            invokestatic org.eclipse.jdt.core.formatter.IndentManipulation.isIndentChar:(C)Z
            ifeq 9
         6: .line 211
            iload 3 /* i */
            istore 2 /* end */
        end local 4 // char c
         7: .line 208
            iinc 3 /* i */ -1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            ifge 4
        end local 3 // int i
         9: .line 216
      StackMap locals:
      StackMap stack:
            iload 2 /* end */
            iload 1 /* size */
            if_icmpne 11
        10: .line 217
            aload 0 /* line */
            areturn
        11: .line 218
      StackMap locals:
      StackMap stack:
            iload 2 /* end */
            ifne 13
        12: .line 219
            ldc ""
            areturn
        13: .line 221
      StackMap locals:
      StackMap stack:
            aload 0 /* line */
            iconst_0
            iload 2 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 2 // int end
        end local 1 // int size
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  line  Ljava/lang/String;
            1   14     1  size  I
            2   14     2   end  I
            3    9     3     i  I
            5    7     4     c  C
    MethodParameters:
      Name  Flags
      line  

  public static int computeIndentUnits(java.lang.String, org.eclipse.jdt.core.IJavaProject);
    descriptor: (Ljava/lang/String;Lorg/eclipse/jdt/core/IJavaProject;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String line
        start local 1 // org.eclipse.jdt.core.IJavaProject project
         0: .line 235
            aload 0 /* line */
            aload 1 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getTabWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            aload 1 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getIndentWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            invokestatic org.eclipse.jdt.core.formatter.IndentManipulation.measureIndentUnits:(Ljava/lang/CharSequence;II)I
            ireturn
        end local 1 // org.eclipse.jdt.core.IJavaProject project
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     line  Ljava/lang/String;
            0    1     1  project  Lorg/eclipse/jdt/core/IJavaProject;
    MethodParameters:
         Name  Flags
      line     
      project  

  public static int computeIndentUnits(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String line
        start local 1 // int tabWidth
        start local 2 // int indentWidth
         0: .line 250
            aload 0 /* line */
            iload 1 /* tabWidth */
            iload 2 /* indentWidth */
            invokestatic org.eclipse.jdt.core.formatter.IndentManipulation.measureIndentUnits:(Ljava/lang/CharSequence;II)I
            ireturn
        end local 2 // int indentWidth
        end local 1 // int tabWidth
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         line  Ljava/lang/String;
            0    1     1     tabWidth  I
            0    1     2  indentWidth  I
    MethodParameters:
             Name  Flags
      line         
      tabWidth     
      indentWidth  

  public static int measureIndentLength(java.lang.CharSequence, int);
    descriptor: (Ljava/lang/CharSequence;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.CharSequence line
        start local 1 // int tabSize
         0: .line 264
            aload 0 /* line */
            iload 1 /* tabSize */
            invokestatic org.eclipse.jdt.core.formatter.IndentManipulation.measureIndentInSpaces:(Ljava/lang/CharSequence;I)I
            ireturn
        end local 1 // int tabSize
        end local 0 // java.lang.CharSequence line
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     line  Ljava/lang/CharSequence;
            0    1     1  tabSize  I
    MethodParameters:
         Name  Flags
      line     
      tabSize  

  public static java.lang.String trimIndent(java.lang.String, int, org.eclipse.jdt.core.IJavaProject);
    descriptor: (Ljava/lang/String;ILorg/eclipse/jdt/core/IJavaProject;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.String line
        start local 1 // int indentsToRemove
        start local 2 // org.eclipse.jdt.core.IJavaProject project
         0: .line 281
            aload 0 /* line */
            iload 1 /* indentsToRemove */
            aload 2 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getTabWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            aload 2 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getIndentWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            invokestatic org.eclipse.jdt.core.formatter.IndentManipulation.trimIndent:(Ljava/lang/String;III)Ljava/lang/String;
            areturn
        end local 2 // org.eclipse.jdt.core.IJavaProject project
        end local 1 // int indentsToRemove
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             line  Ljava/lang/String;
            0    1     1  indentsToRemove  I
            0    1     2          project  Lorg/eclipse/jdt/core/IJavaProject;
    MethodParameters:
                 Name  Flags
      line             
      indentsToRemove  
      project          

  public static java.lang.String trimIndent(java.lang.String, int, int, int);
    descriptor: (Ljava/lang/String;III)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.lang.String line
        start local 1 // int indentsToRemove
        start local 2 // int tabWidth
        start local 3 // int indentWidth
         0: .line 297
            aload 0 /* line */
            iload 1 /* indentsToRemove */
            iload 2 /* tabWidth */
            iload 3 /* indentWidth */
            invokestatic org.eclipse.jdt.core.formatter.IndentManipulation.trimIndent:(Ljava/lang/String;III)Ljava/lang/String;
            areturn
        end local 3 // int indentWidth
        end local 2 // int tabWidth
        end local 1 // int indentsToRemove
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             line  Ljava/lang/String;
            0    1     1  indentsToRemove  I
            0    1     2         tabWidth  I
            0    1     3      indentWidth  I
    MethodParameters:
                 Name  Flags
      line             
      indentsToRemove  
      tabWidth         
      indentWidth      

  public static void trimIndentation(java.lang.String[], org.eclipse.jdt.core.IJavaProject);
    descriptor: ([Ljava/lang/String;Lorg/eclipse/jdt/core/IJavaProject;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String[] lines
        start local 1 // org.eclipse.jdt.core.IJavaProject project
         0: .line 310
            aload 0 /* lines */
            aload 1 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getTabWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            aload 1 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getIndentWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            iconst_1
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.Strings.trimIndentation:([Ljava/lang/String;IIZ)V
         1: .line 311
            return
        end local 1 // org.eclipse.jdt.core.IJavaProject project
        end local 0 // java.lang.String[] lines
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0    lines  [Ljava/lang/String;
            0    2     1  project  Lorg/eclipse/jdt/core/IJavaProject;
    MethodParameters:
         Name  Flags
      lines    
      project  

  public static void trimIndentation(java.lang.String[], int, int);
    descriptor: ([Ljava/lang/String;II)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.String[] lines
        start local 1 // int tabWidth
        start local 2 // int indentWidth
         0: .line 322
            aload 0 /* lines */
            iload 1 /* tabWidth */
            iload 2 /* indentWidth */
            iconst_1
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.Strings.trimIndentation:([Ljava/lang/String;IIZ)V
         1: .line 323
            return
        end local 2 // int indentWidth
        end local 1 // int tabWidth
        end local 0 // java.lang.String[] lines
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0        lines  [Ljava/lang/String;
            0    2     1     tabWidth  I
            0    2     2  indentWidth  I
    MethodParameters:
             Name  Flags
      lines        
      tabWidth     
      indentWidth  

  public static void trimIndentation(java.lang.String[], org.eclipse.jdt.core.IJavaProject, boolean);
    descriptor: ([Ljava/lang/String;Lorg/eclipse/jdt/core/IJavaProject;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.String[] lines
        start local 1 // org.eclipse.jdt.core.IJavaProject project
        start local 2 // boolean considerFirstLine
         0: .line 337
            aload 0 /* lines */
            aload 1 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getTabWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            aload 1 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getIndentWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            iload 2 /* considerFirstLine */
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.Strings.trimIndentation:([Ljava/lang/String;IIZ)V
         1: .line 338
            return
        end local 2 // boolean considerFirstLine
        end local 1 // org.eclipse.jdt.core.IJavaProject project
        end local 0 // java.lang.String[] lines
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0              lines  [Ljava/lang/String;
            0    2     1            project  Lorg/eclipse/jdt/core/IJavaProject;
            0    2     2  considerFirstLine  Z
    MethodParameters:
                   Name  Flags
      lines              
      project            
      considerFirstLine  

  public static void trimIndentation(java.lang.String[], int, int, boolean);
    descriptor: ([Ljava/lang/String;IIZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // java.lang.String[] lines
        start local 1 // int tabWidth
        start local 2 // int indentWidth
        start local 3 // boolean considerFirstLine
         0: .line 351
            aload 0 /* lines */
            arraylength
            anewarray java.lang.String
            astore 4 /* toDo */
        start local 4 // java.lang.String[] toDo
         1: .line 353
            ldc 2147483647
            istore 5 /* minIndent */
        start local 5 // int minIndent
         2: .line 354
            iload 3 /* considerFirstLine */
            ifeq 3
            iconst_0
            goto 4
      StackMap locals: java.lang.String[] int
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 6 /* i */
        start local 6 // int i
         5: goto 14
         6: .line 355
      StackMap locals: int
      StackMap stack:
            aload 0 /* lines */
            iload 6 /* i */
            aaload
            astore 7 /* line */
        start local 7 // java.lang.String line
         7: .line 356
            aload 7 /* line */
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.Strings.containsOnlyWhitespaces:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 357
            goto 13
         9: .line 358
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* toDo */
            iload 6 /* i */
            aload 7 /* line */
            aastore
        10: .line 359
            aload 7 /* line */
            iload 1 /* tabWidth */
            iload 2 /* indentWidth */
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.Strings.computeIndentUnits:(Ljava/lang/String;II)I
            istore 8 /* indent */
        start local 8 // int indent
        11: .line 360
            iload 8 /* indent */
            iload 5 /* minIndent */
            if_icmpge 13
        12: .line 361
            iload 8 /* indent */
            istore 5 /* minIndent */
        end local 8 // int indent
        end local 7 // java.lang.String line
        13: .line 354
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            aload 0 /* lines */
            arraylength
            if_icmplt 6
        end local 6 // int i
        15: .line 365
            iload 5 /* minIndent */
            ifle 30
        16: .line 367
            iload 3 /* considerFirstLine */
            ifeq 17
            iconst_0
            goto 18
      StackMap locals:
      StackMap stack:
        17: iconst_1
      StackMap locals:
      StackMap stack: int
        18: istore 6 /* i */
        start local 6 // int i
        19: goto 29
        20: .line 368
      StackMap locals: int
      StackMap stack:
            aload 4 /* toDo */
            iload 6 /* i */
            aaload
            astore 7 /* s */
        start local 7 // java.lang.String s
        21: .line 369
            aload 7 /* s */
            ifnull 23
        22: .line 370
            aload 0 /* lines */
            iload 6 /* i */
            aload 7 /* s */
            iload 5 /* minIndent */
            iload 1 /* tabWidth */
            iload 2 /* indentWidth */
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.Strings.trimIndent:(Ljava/lang/String;III)Ljava/lang/String;
            aastore
            goto 28
        23: .line 372
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* lines */
            iload 6 /* i */
            aaload
            astore 8 /* line */
        start local 8 // java.lang.String line
        24: .line 373
            aload 8 /* line */
            iload 1 /* tabWidth */
            iload 2 /* indentWidth */
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.Strings.computeIndentUnits:(Ljava/lang/String;II)I
            istore 9 /* indent */
        start local 9 // int indent
        25: .line 374
            iload 9 /* indent */
            iload 5 /* minIndent */
            if_icmple 27
        26: .line 375
            aload 0 /* lines */
            iload 6 /* i */
            aload 8 /* line */
            iload 5 /* minIndent */
            iload 1 /* tabWidth */
            iload 2 /* indentWidth */
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.Strings.trimIndent:(Ljava/lang/String;III)Ljava/lang/String;
            aastore
            goto 28
        27: .line 377
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* lines */
            iload 6 /* i */
            aload 8 /* line */
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.Strings.trimLeadingTabsAndSpaces:(Ljava/lang/String;)Ljava/lang/String;
            aastore
        end local 9 // int indent
        end local 8 // java.lang.String line
        end local 7 // java.lang.String s
        28: .line 367
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 6 /* i */
            aload 4 /* toDo */
            arraylength
            if_icmplt 20
        end local 6 // int i
        30: .line 381
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int minIndent
        end local 4 // java.lang.String[] toDo
        end local 3 // boolean considerFirstLine
        end local 2 // int indentWidth
        end local 1 // int tabWidth
        end local 0 // java.lang.String[] lines
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   31     0              lines  [Ljava/lang/String;
            0   31     1           tabWidth  I
            0   31     2        indentWidth  I
            0   31     3  considerFirstLine  Z
            1   31     4               toDo  [Ljava/lang/String;
            2   31     5          minIndent  I
            5   15     6                  i  I
            7   13     7               line  Ljava/lang/String;
           11   13     8             indent  I
           19   30     6                  i  I
           21   28     7                  s  Ljava/lang/String;
           24   28     8               line  Ljava/lang/String;
           25   28     9             indent  I
    MethodParameters:
                   Name  Flags
      lines              
      tabWidth           
      indentWidth        
      considerFirstLine  

  public static java.lang.String getIndentString(java.lang.String, org.eclipse.jdt.core.IJavaProject);
    descriptor: (Ljava/lang/String;Lorg/eclipse/jdt/core/IJavaProject;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String line
        start local 1 // org.eclipse.jdt.core.IJavaProject project
         0: .line 394
            aload 0 /* line */
            aload 1 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getTabWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            aload 1 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getIndentWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            invokestatic org.eclipse.jdt.core.formatter.IndentManipulation.extractIndentString:(Ljava/lang/String;II)Ljava/lang/String;
            areturn
        end local 1 // org.eclipse.jdt.core.IJavaProject project
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     line  Ljava/lang/String;
            0    1     1  project  Lorg/eclipse/jdt/core/IJavaProject;
    MethodParameters:
         Name  Flags
      line     
      project  

  public static java.lang.String getIndentString(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String line
        start local 1 // int tabWidth
        start local 2 // int indentWidth
         0: .line 408
            aload 0 /* line */
            iload 1 /* tabWidth */
            iload 2 /* indentWidth */
            invokestatic org.eclipse.jdt.core.formatter.IndentManipulation.extractIndentString:(Ljava/lang/String;II)Ljava/lang/String;
            areturn
        end local 2 // int indentWidth
        end local 1 // int tabWidth
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         line  Ljava/lang/String;
            0    1     1     tabWidth  I
            0    1     2  indentWidth  I
    MethodParameters:
             Name  Flags
      line         
      tabWidth     
      indentWidth  

  public static java.lang.String[] removeTrailingEmptyLines(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.String[] sourceLines
         0: .line 412
            aload 0 /* sourceLines */
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.Strings.findLastNonEmptyLineIndex:([Ljava/lang/String;)I
            istore 1 /* lastNonEmpty */
        start local 1 // int lastNonEmpty
         1: .line 413
            iload 1 /* lastNonEmpty */
            iconst_1
            iadd
            anewarray java.lang.String
            astore 2 /* result */
        start local 2 // java.lang.String[] result
         2: .line 414
            aload 0 /* sourceLines */
            iconst_0
            aload 2 /* result */
            iconst_0
            aload 2 /* result */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 415
            aload 2 /* result */
            areturn
        end local 2 // java.lang.String[] result
        end local 1 // int lastNonEmpty
        end local 0 // java.lang.String[] sourceLines
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0   sourceLines  [Ljava/lang/String;
            1    4     1  lastNonEmpty  I
            2    4     2        result  [Ljava/lang/String;
    MethodParameters:
             Name  Flags
      sourceLines  

  private static int findLastNonEmptyLineIndex(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String[] sourceLines
         0: .line 419
            aload 0 /* sourceLines */
            arraylength
            iconst_1
            isub
            istore 1 /* i */
        start local 1 // int i
         1: goto 5
         2: .line 420
      StackMap locals: int
      StackMap stack:
            aload 0 /* sourceLines */
            iload 1 /* i */
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 4
         3: .line 421
            iload 1 /* i */
            ireturn
         4: .line 419
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ -1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            ifge 2
        end local 1 // int i
         6: .line 423
            iconst_m1
            ireturn
        end local 0 // java.lang.String[] sourceLines
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0  sourceLines  [Ljava/lang/String;
            1    6     1            i  I
    MethodParameters:
             Name  Flags
      sourceLines  

  public static java.lang.String changeIndent(java.lang.String, int, org.eclipse.jdt.core.IJavaProject, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;ILorg/eclipse/jdt/core/IJavaProject;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // java.lang.String code
        start local 1 // int codeIndentLevel
        start local 2 // org.eclipse.jdt.core.IJavaProject project
        start local 3 // java.lang.String newIndent
        start local 4 // java.lang.String lineDelim
         0: .line 441
            aload 0 /* code */
            iload 1 /* codeIndentLevel */
            aload 2 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getTabWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            aload 2 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getIndentWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            aload 3 /* newIndent */
            aload 4 /* lineDelim */
            invokestatic org.eclipse.jdt.core.formatter.IndentManipulation.changeIndent:(Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 4 // java.lang.String lineDelim
        end local 3 // java.lang.String newIndent
        end local 2 // org.eclipse.jdt.core.IJavaProject project
        end local 1 // int codeIndentLevel
        end local 0 // java.lang.String code
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             code  Ljava/lang/String;
            0    1     1  codeIndentLevel  I
            0    1     2          project  Lorg/eclipse/jdt/core/IJavaProject;
            0    1     3        newIndent  Ljava/lang/String;
            0    1     4        lineDelim  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      code             
      codeIndentLevel  
      project          
      newIndent        
      lineDelim        

  public static java.lang.String changeIndent(java.lang.String, int, int, int, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // java.lang.String code
        start local 1 // int codeIndentLevel
        start local 2 // int tabWidth
        start local 3 // int indentWidth
        start local 4 // java.lang.String newIndent
        start local 5 // java.lang.String lineDelim
         0: .line 458
            aload 0 /* code */
            iload 1 /* codeIndentLevel */
            iload 2 /* tabWidth */
            iload 3 /* indentWidth */
            aload 4 /* newIndent */
            aload 5 /* lineDelim */
            invokestatic org.eclipse.jdt.core.formatter.IndentManipulation.changeIndent:(Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 5 // java.lang.String lineDelim
        end local 4 // java.lang.String newIndent
        end local 3 // int indentWidth
        end local 2 // int tabWidth
        end local 1 // int codeIndentLevel
        end local 0 // java.lang.String code
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             code  Ljava/lang/String;
            0    1     1  codeIndentLevel  I
            0    1     2         tabWidth  I
            0    1     3      indentWidth  I
            0    1     4        newIndent  Ljava/lang/String;
            0    1     5        lineDelim  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      code             
      codeIndentLevel  
      tabWidth         
      indentWidth      
      newIndent        
      lineDelim        

  public static java.lang.String trimIndentation(java.lang.String, org.eclipse.jdt.core.IJavaProject, boolean);
    descriptor: (Ljava/lang/String;Lorg/eclipse/jdt/core/IJavaProject;Z)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.String source
        start local 1 // org.eclipse.jdt.core.IJavaProject project
        start local 2 // boolean considerFirstLine
         0: .line 462
            aload 0 /* source */
            aload 1 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getTabWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            aload 1 /* project */
            invokestatic org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.getIndentWidth:(Lorg/eclipse/jdt/core/IJavaProject;)I
            iload 2 /* considerFirstLine */
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.Strings.trimIndentation:(Ljava/lang/String;IIZ)Ljava/lang/String;
            areturn
        end local 2 // boolean considerFirstLine
        end local 1 // org.eclipse.jdt.core.IJavaProject project
        end local 0 // java.lang.String source
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0             source  Ljava/lang/String;
            0    1     1            project  Lorg/eclipse/jdt/core/IJavaProject;
            0    1     2  considerFirstLine  Z
    MethodParameters:
                   Name  Flags
      source             
      project            
      considerFirstLine  

  public static java.lang.String trimIndentation(java.lang.String, int, int, boolean);
    descriptor: (Ljava/lang/String;IIZ)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // java.lang.String source
        start local 1 // int tabWidth
        start local 2 // int indentWidth
        start local 3 // boolean considerFirstLine
         0: .line 467
            new org.eclipse.jface.text.DefaultLineTracker
            dup
            invokespecial org.eclipse.jface.text.DefaultLineTracker.<init>:()V
            astore 4 /* tracker */
        start local 4 // org.eclipse.jface.text.ILineTracker tracker
         1: .line 468
            aload 4 /* tracker */
            aload 0 /* source */
            invokeinterface org.eclipse.jface.text.ILineTracker.set:(Ljava/lang/String;)V
         2: .line 469
            aload 4 /* tracker */
            invokeinterface org.eclipse.jface.text.ILineTracker.getNumberOfLines:()I
            istore 5 /* size */
        start local 5 // int size
         3: .line 470
            iload 5 /* size */
            iconst_1
            if_icmpne 6
         4: .line 471
            aload 0 /* source */
         5: areturn
         6: .line 472
      StackMap locals: org.eclipse.jface.text.ILineTracker int
      StackMap stack:
            iload 5 /* size */
            anewarray java.lang.String
            astore 6 /* lines */
        start local 6 // java.lang.String[] lines
         7: .line 473
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         8: goto 13
         9: .line 474
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 4 /* tracker */
            iload 7 /* i */
            invokeinterface org.eclipse.jface.text.ILineTracker.getLineInformation:(I)Lorg/eclipse/jface/text/IRegion;
            astore 8 /* region */
        start local 8 // org.eclipse.jface.text.IRegion region
        10: .line 475
            aload 8 /* region */
            invokeinterface org.eclipse.jface.text.IRegion.getOffset:()I
            istore 9 /* offset */
        start local 9 // int offset
        11: .line 476
            aload 6 /* lines */
            iload 7 /* i */
            aload 0 /* source */
            iload 9 /* offset */
            iload 9 /* offset */
            aload 8 /* region */
            invokeinterface org.eclipse.jface.text.IRegion.getLength:()I
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aastore
        end local 9 // int offset
        end local 8 // org.eclipse.jface.text.IRegion region
        12: .line 473
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 7 /* i */
            iload 5 /* size */
            if_icmplt 9
        end local 7 // int i
        14: .line 478
            aload 6 /* lines */
            iload 1 /* tabWidth */
            iload 2 /* indentWidth */
            iload 3 /* considerFirstLine */
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.Strings.trimIndentation:([Ljava/lang/String;IIZ)V
        15: .line 479
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 7 /* result */
        start local 7 // java.lang.StringBuilder result
        16: .line 480
            iload 5 /* size */
            iconst_1
            isub
            istore 8 /* last */
        start local 8 // int last
        17: .line 481
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        18: goto 23
        19: .line 482
      StackMap locals: java.lang.String int int int org.eclipse.jface.text.ILineTracker int java.lang.String[] java.lang.StringBuilder int int
      StackMap stack:
            aload 7 /* result */
            aload 6 /* lines */
            iload 9 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 483
            iload 9 /* i */
            iload 8 /* last */
            if_icmpge 22
        21: .line 484
            aload 7 /* result */
            aload 4 /* tracker */
            iload 9 /* i */
            invokeinterface org.eclipse.jface.text.ILineTracker.getLineDelimiter:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 481
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 9 /* i */
            iload 5 /* size */
            if_icmplt 19
        end local 9 // int i
        24: .line 486
            aload 7 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        25: areturn
        end local 8 // int last
        end local 7 // java.lang.StringBuilder result
        end local 6 // java.lang.String[] lines
        end local 5 // int size
        end local 4 // org.eclipse.jface.text.ILineTracker tracker
        26: .line 487
      StackMap locals: java.lang.String int int int
      StackMap stack: org.eclipse.jface.text.BadLocationException
            pop
        27: .line 488
            iconst_0
            ldc "Can not happend"
            invokestatic org.eclipse.core.runtime.Assert.isTrue:(ZLjava/lang/String;)Z
            pop
        28: .line 489
            aconst_null
            areturn
        end local 3 // boolean considerFirstLine
        end local 2 // int indentWidth
        end local 1 // int tabWidth
        end local 0 // java.lang.String source
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   29     0             source  Ljava/lang/String;
            0   29     1           tabWidth  I
            0   29     2        indentWidth  I
            0   29     3  considerFirstLine  Z
            1   26     4            tracker  Lorg/eclipse/jface/text/ILineTracker;
            3   26     5               size  I
            7   26     6              lines  [Ljava/lang/String;
            8   14     7                  i  I
           10   12     8             region  Lorg/eclipse/jface/text/IRegion;
           11   12     9             offset  I
           16   26     7             result  Ljava/lang/StringBuilder;
           17   26     8               last  I
           18   24     9                  i  I
      Exception table:
        from    to  target  type
           0     5      26  Class org.eclipse.jface.text.BadLocationException
           6    25      26  Class org.eclipse.jface.text.BadLocationException
    MethodParameters:
                   Name  Flags
      source             
      tabWidth           
      indentWidth        
      considerFirstLine  

  public static java.lang.String concatenate(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=4, args_size=2
        start local 0 // java.lang.String[] lines
        start local 1 // java.lang.String delimiter
         0: .line 502
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* buffer */
        start local 2 // java.lang.StringBuilder buffer
         1: .line 503
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 504
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            iload 3 /* i */
            ifle 5
         4: .line 505
            aload 2 /* buffer */
            aload 1 /* delimiter */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 506
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
            aload 0 /* lines */
            iload 3 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 503
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* lines */
            arraylength
            if_icmplt 3
        end local 3 // int i
         8: .line 508
            aload 2 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder buffer
        end local 1 // java.lang.String delimiter
        end local 0 // java.lang.String[] lines
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0      lines  [Ljava/lang/String;
            0    9     1  delimiter  Ljava/lang/String;
            1    9     2     buffer  Ljava/lang/StringBuilder;
            2    8     3          i  I
    MethodParameters:
           Name  Flags
      lines      
      delimiter  

  public static boolean equals(java.lang.String, char[]);
    descriptor: (Ljava/lang/String;[C)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String s
        start local 1 // char[] c
         0: .line 512
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            aload 1 /* c */
            arraylength
            if_icmpeq 2
         1: .line 513
            iconst_0
            ireturn
         2: .line 515
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            arraylength
            istore 2 /* i */
        start local 2 // int i
         3: goto 6
         4: .line 516
      StackMap locals: int
      StackMap stack:
            aload 0 /* s */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            aload 1 /* c */
            iload 2 /* i */
            caload
            if_icmpeq 6
         5: .line 517
            iconst_0
            ireturn
         6: .line 515
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ -1
            iload 2 /* i */
            ifge 4
        end local 2 // int i
         7: .line 518
            iconst_1
            ireturn
        end local 1 // char[] c
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     s  Ljava/lang/String;
            0    8     1     c  [C
            3    7     2     i  I
    MethodParameters:
      Name  Flags
      s     
      c     

  public static java.lang.String removeTrailingCharacters(java.lang.String, char);
    descriptor: (Ljava/lang/String;C)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // java.lang.String text
        start local 1 // char toRemove
         0: .line 522
            aload 0 /* text */
            invokevirtual java.lang.String.length:()I
            istore 2 /* size */
        start local 2 // int size
         1: .line 523
            iload 2 /* size */
            istore 3 /* end */
        start local 3 // int end
         2: .line 524
            iload 2 /* size */
            iconst_1
            isub
            istore 4 /* i */
        start local 4 // int i
         3: goto 8
         4: .line 525
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* text */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
         5: .line 526
            iload 5 /* c */
            iload 1 /* toRemove */
            if_icmpne 9
         6: .line 527
            iload 4 /* i */
            istore 3 /* end */
        end local 5 // char c
         7: .line 524
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            ifge 4
        end local 4 // int i
         9: .line 532
      StackMap locals:
      StackMap stack:
            iload 3 /* end */
            iload 2 /* size */
            if_icmpne 11
        10: .line 533
            aload 0 /* text */
            areturn
        11: .line 534
      StackMap locals:
      StackMap stack:
            iload 3 /* end */
            ifne 13
        12: .line 535
            ldc ""
            areturn
        13: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            iconst_0
            iload 3 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 3 // int end
        end local 2 // int size
        end local 1 // char toRemove
        end local 0 // java.lang.String text
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      text  Ljava/lang/String;
            0   14     1  toRemove  C
            1   14     2      size  I
            2   14     3       end  I
            3    9     4         i  I
            5    7     5         c  C
    MethodParameters:
          Name  Flags
      text      
      toRemove  
}
SourceFile: "Strings.java"