public class org.eclipse.jface.text.templates.TemplateTranslator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jface.text.templates.TemplateTranslator
  super_class: java.lang.Object
{
  private static final java.lang.String IDENTIFIER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "(?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++)"

  private static final java.lang.String QUALIFIED_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "(?:(?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++)\\.)*+(?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++)"

  private static final java.lang.String ARGUMENT_TEXT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "'(?:(?:'')|(?:[^']))*+'"

  private static final java.lang.String ARGUMENT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "(?:(?:(?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++)\\.)*+(?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++))|(?:'(?:(?:'')|(?:[^']))*+')"

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

  private static final java.util.regex.Pattern PARAM_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern ESCAPE_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private java.lang.String fErrorMessage;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.jface.text.templates.TemplateVariableType fCurrentType;
    descriptor: Lorg/eclipse/jface/text/templates/TemplateVariableType;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 83
            ldc "(?:(?:(?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++)\\.)*+(?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++))|(?:'(?:(?:'')|(?:[^']))*+')"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic org.eclipse.jface.text.templates.TemplateTranslator.PARAM_PATTERN:Ljava/util/regex/Pattern;
         1: .line 90
            ldc "\\$\\$|\\$\\{\\s*+((?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++)?+)\\s*+(?::\\s*+((?:(?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++)\\.)*+(?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++))\\s*+(?:\\(\\s*+((?:(?:(?:(?:(?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++)\\.)*+(?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++))|(?:'(?:(?:'')|(?:[^']))*+'))\\s*+,\\s*+)*+(?:(?:(?:(?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++)\\.)*+(?:[\\p{javaJavaIdentifierPart}&&[^\\$]]++))|(?:'(?:(?:'')|(?:[^']))*+')))\\s*+\\))?\\s*+)?\\}|\\$"
         2: .line 89
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic org.eclipse.jface.text.templates.TemplateTranslator.ESCAPE_PATTERN:Ljava/util/regex/Pattern;
         3: .line 108
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jface/text/templates/TemplateTranslator;

  public java.lang.String getErrorMessage();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
         0: .line 150
            aload 0 /* this */
            getfield org.eclipse.jface.text.templates.TemplateTranslator.fErrorMessage:Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jface/text/templates/TemplateTranslator;

  public org.eclipse.jface.text.templates.TemplateBuffer translate(org.eclipse.jface.text.templates.Template);
    descriptor: (Lorg/eclipse/jface/text/templates/Template;)Lorg/eclipse/jface/text/templates/TemplateBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
        start local 1 // org.eclipse.jface.text.templates.Template template
         0: .line 163
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual org.eclipse.jface.text.templates.Template.getPattern:()Ljava/lang/String;
            invokevirtual org.eclipse.jface.text.templates.TemplateTranslator.parse:(Ljava/lang/String;)Lorg/eclipse/jface/text/templates/TemplateBuffer;
            areturn
        end local 1 // org.eclipse.jface.text.templates.Template template
        end local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/eclipse/jface/text/templates/TemplateTranslator;
            0    1     1  template  Lorg/eclipse/jface/text/templates/Template;
    Exceptions:
      throws org.eclipse.jface.text.templates.TemplateException
    MethodParameters:
          Name  Flags
      template  

  public org.eclipse.jface.text.templates.TemplateBuffer translate(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/eclipse/jface/text/templates/TemplateBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
        start local 1 // java.lang.String string
         0: .line 177
            aload 0 /* this */
            aload 1 /* string */
            invokevirtual org.eclipse.jface.text.templates.TemplateTranslator.parse:(Ljava/lang/String;)Lorg/eclipse/jface/text/templates/TemplateBuffer;
            areturn
        end local 1 // java.lang.String string
        end local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/eclipse/jface/text/templates/TemplateTranslator;
            0    1     1  string  Ljava/lang/String;
    Exceptions:
      throws org.eclipse.jface.text.templates.TemplateException
    MethodParameters:
        Name  Flags
      string  

  private org.eclipse.jface.text.templates.TemplateBuffer parse(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/eclipse/jface/text/templates/TemplateBuffer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
        start local 1 // java.lang.String string
         0: .line 189
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jface.text.templates.TemplateTranslator.fErrorMessage:Ljava/lang/String;
         1: .line 190
            new java.lang.StringBuilder
            dup
            aload 1 /* string */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* buffer */
        start local 2 // java.lang.StringBuilder buffer
         2: .line 191
            getstatic org.eclipse.jface.text.templates.TemplateTranslator.ESCAPE_PATTERN:Ljava/util/regex/Pattern;
            aload 1 /* string */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 3 /* matcher */
        start local 3 // java.util.regex.Matcher matcher
         3: .line 192
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 4 /* variables */
        start local 4 // java.util.Map variables
         4: .line 194
            iconst_0
            istore 5 /* complete */
        start local 5 // int complete
         5: .line 195
            goto 20
         6: .line 197
      StackMap locals: org.eclipse.jface.text.templates.TemplateTranslator java.lang.String java.lang.StringBuilder java.util.regex.Matcher java.util.Map int
      StackMap stack:
            aload 2 /* buffer */
            aload 1 /* string */
            iload 5 /* complete */
            aload 3 /* matcher */
            invokevirtual java.util.regex.Matcher.start:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 200
            ldc "$"
            aload 3 /* matcher */
            invokevirtual java.util.regex.Matcher.group:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 201
            aload 0 /* this */
            ldc "TemplateTranslator.error.incomplete.variable"
            invokestatic org.eclipse.jface.text.templates.TextTemplateMessages.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.eclipse.jface.text.templates.TemplateTranslator.fail:(Ljava/lang/String;)V
         9: .line 202
            goto 19
      StackMap locals:
      StackMap stack:
        10: ldc "$$"
            aload 3 /* matcher */
            invokevirtual java.util.regex.Matcher.group:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 204
            aload 2 /* buffer */
            bipush 36
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        12: .line 205
            goto 19
        13: .line 207
      StackMap locals:
      StackMap stack:
            aload 3 /* matcher */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
        14: .line 208
            aload 3 /* matcher */
            iconst_2
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 7 /* typeName */
        start local 7 // java.lang.String typeName
        15: .line 209
            aload 3 /* matcher */
            iconst_3
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 8 /* params */
        start local 8 // java.lang.String params
        16: .line 210
            aload 0 /* this */
            aload 7 /* typeName */
            aload 8 /* params */
            invokevirtual org.eclipse.jface.text.templates.TemplateTranslator.createType:(Ljava/lang/String;Ljava/lang/String;)Lorg/eclipse/jface/text/templates/TemplateVariableType;
            astore 9 /* type */
        start local 9 // org.eclipse.jface.text.templates.TemplateVariableType type
        17: .line 212
            aload 0 /* this */
            aload 4 /* variables */
            aload 6 /* name */
            aload 9 /* type */
            aload 2 /* buffer */
            invokevirtual java.lang.StringBuilder.length:()I
            invokevirtual org.eclipse.jface.text.templates.TemplateTranslator.updateOrCreateVariable:(Ljava/util/Map;Ljava/lang/String;Lorg/eclipse/jface/text/templates/TemplateVariableType;I)V
        18: .line 214
            aload 2 /* buffer */
            aload 6 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 9 // org.eclipse.jface.text.templates.TemplateVariableType type
        end local 8 // java.lang.String params
        end local 7 // java.lang.String typeName
        end local 6 // java.lang.String name
        19: .line 216
      StackMap locals:
      StackMap stack:
            aload 3 /* matcher */
            invokevirtual java.util.regex.Matcher.end:()I
            istore 5 /* complete */
        20: .line 195
      StackMap locals:
      StackMap stack:
            aload 3 /* matcher */
            invokevirtual java.util.regex.Matcher.find:()Z
            ifne 6
        21: .line 219
            aload 2 /* buffer */
            aload 1 /* string */
            iload 5 /* complete */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 221
            aload 0 /* this */
            aload 4 /* variables */
            invokevirtual org.eclipse.jface.text.templates.TemplateTranslator.createVariables:(Ljava/util/Map;)[Lorg/eclipse/jface/text/templates/TemplateVariable;
            astore 6 /* vars */
        start local 6 // org.eclipse.jface.text.templates.TemplateVariable[] vars
        23: .line 222
            new org.eclipse.jface.text.templates.TemplateBuffer
            dup
            aload 2 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* vars */
            invokespecial org.eclipse.jface.text.templates.TemplateBuffer.<init>:(Ljava/lang/String;[Lorg/eclipse/jface/text/templates/TemplateVariable;)V
            areturn
        end local 6 // org.eclipse.jface.text.templates.TemplateVariable[] vars
        end local 5 // int complete
        end local 4 // java.util.Map variables
        end local 3 // java.util.regex.Matcher matcher
        end local 2 // java.lang.StringBuilder buffer
        end local 1 // java.lang.String string
        end local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Lorg/eclipse/jface/text/templates/TemplateTranslator;
            0   24     1     string  Ljava/lang/String;
            2   24     2     buffer  Ljava/lang/StringBuilder;
            3   24     3    matcher  Ljava/util/regex/Matcher;
            4   24     4  variables  Ljava/util/Map<Ljava/lang/String;Lorg/eclipse/jface/text/templates/TemplateTranslator$VariableDescription;>;
            5   24     5   complete  I
           14   19     6       name  Ljava/lang/String;
           15   19     7   typeName  Ljava/lang/String;
           16   19     8     params  Ljava/lang/String;
           17   19     9       type  Lorg/eclipse/jface/text/templates/TemplateVariableType;
           23   24     6       vars  [Lorg/eclipse/jface/text/templates/TemplateVariable;
    Exceptions:
      throws org.eclipse.jface.text.templates.TemplateException
    MethodParameters:
        Name  Flags
      string  

  private org.eclipse.jface.text.templates.TemplateVariableType createType(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/eclipse/jface/text/templates/TemplateVariableType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
        start local 1 // java.lang.String typeName
        start local 2 // java.lang.String paramString
         0: .line 226
            aload 1 /* typeName */
            ifnonnull 2
         1: .line 227
            aconst_null
            areturn
         2: .line 229
      StackMap locals:
      StackMap stack:
            aload 2 /* paramString */
            ifnonnull 4
         3: .line 230
            new org.eclipse.jface.text.templates.TemplateVariableType
            dup
            aload 1 /* typeName */
            invokespecial org.eclipse.jface.text.templates.TemplateVariableType.<init>:(Ljava/lang/String;)V
            areturn
         4: .line 232
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jface.text.templates.TemplateTranslator.PARAM_PATTERN:Ljava/util/regex/Pattern;
            aload 2 /* paramString */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 3 /* matcher */
        start local 3 // java.util.regex.Matcher matcher
         5: .line 233
            new java.util.ArrayList
            dup
            iconst_5
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* params */
        start local 4 // java.util.List params
         6: .line 234
            goto 11
         7: .line 235
      StackMap locals: java.util.regex.Matcher java.util.List
      StackMap stack:
            aload 3 /* matcher */
            invokevirtual java.util.regex.Matcher.group:()Ljava/lang/String;
            astore 5 /* argument */
        start local 5 // java.lang.String argument
         8: .line 236
            aload 5 /* argument */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 39
            if_icmpne 10
         9: .line 238
            aload 5 /* argument */
            iconst_1
            aload 5 /* argument */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            ldc "''"
            ldc "'"
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* argument */
        10: .line 241
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* params */
            aload 5 /* argument */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.lang.String argument
        11: .line 234
      StackMap locals:
      StackMap stack:
            aload 3 /* matcher */
            invokevirtual java.util.regex.Matcher.find:()Z
            ifne 7
        12: .line 244
            new org.eclipse.jface.text.templates.TemplateVariableType
            dup
            aload 1 /* typeName */
            aload 4 /* params */
            aload 4 /* params */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            invokespecial org.eclipse.jface.text.templates.TemplateVariableType.<init>:(Ljava/lang/String;[Ljava/lang/String;)V
            areturn
        end local 4 // java.util.List params
        end local 3 // java.util.regex.Matcher matcher
        end local 2 // java.lang.String paramString
        end local 1 // java.lang.String typeName
        end local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lorg/eclipse/jface/text/templates/TemplateTranslator;
            0   13     1     typeName  Ljava/lang/String;
            0   13     2  paramString  Ljava/lang/String;
            5   13     3      matcher  Ljava/util/regex/Matcher;
            6   13     4       params  Ljava/util/List<Ljava/lang/String;>;
            8   11     5     argument  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      typeName     
      paramString  

  private void fail(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
        start local 1 // java.lang.String message
         0: .line 248
            aload 0 /* this */
            aload 1 /* message */
            putfield org.eclipse.jface.text.templates.TemplateTranslator.fErrorMessage:Ljava/lang/String;
         1: .line 249
            new org.eclipse.jface.text.templates.TemplateException
            dup
            aload 1 /* message */
            invokespecial org.eclipse.jface.text.templates.TemplateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String message
        end local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/eclipse/jface/text/templates/TemplateTranslator;
            0    2     1  message  Ljava/lang/String;
    Exceptions:
      throws org.eclipse.jface.text.templates.TemplateException
    MethodParameters:
         Name  Flags
      message  

  private void updateOrCreateVariable(java.util.Map<java.lang.String, org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription>, java.lang.String, org.eclipse.jface.text.templates.TemplateVariableType, );
    descriptor: (Ljava/util/Map;Ljava/lang/String;Lorg/eclipse/jface/text/templates/TemplateVariableType;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
        start local 1 // java.util.Map variables
        start local 2 // java.lang.String name
        start local 3 // org.eclipse.jface.text.templates.TemplateVariableType type
        start local 4 // int offset
         0: .line 265
            aload 1 /* variables */
            aload 2 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription
            astore 5 /* varDesc */
        start local 5 // org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription varDesc
         1: .line 266
            aload 5 /* varDesc */
            ifnonnull 5
         2: .line 267
            new org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription
            dup
            aload 0 /* this */
            aload 2 /* name */
            aload 3 /* type */
            invokespecial org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription.<init>:(Lorg/eclipse/jface/text/templates/TemplateTranslator;Ljava/lang/String;Lorg/eclipse/jface/text/templates/TemplateVariableType;)V
            astore 5 /* varDesc */
         3: .line 268
            aload 1 /* variables */
            aload 2 /* name */
            aload 5 /* varDesc */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 269
            goto 6
         5: .line 270
      StackMap locals: org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription
      StackMap stack:
            aload 5 /* varDesc */
            aload 3 /* type */
            invokevirtual org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription.mergeType:(Lorg/eclipse/jface/text/templates/TemplateVariableType;)V
         6: .line 272
      StackMap locals:
      StackMap stack:
            aload 5 /* varDesc */
            getfield org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription.fOffsets:Ljava/util/List;
            iload 4 /* offset */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 273
            return
        end local 5 // org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription varDesc
        end local 4 // int offset
        end local 3 // org.eclipse.jface.text.templates.TemplateVariableType type
        end local 2 // java.lang.String name
        end local 1 // java.util.Map variables
        end local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/eclipse/jface/text/templates/TemplateTranslator;
            0    8     1  variables  Ljava/util/Map<Ljava/lang/String;Lorg/eclipse/jface/text/templates/TemplateTranslator$VariableDescription;>;
            0    8     2       name  Ljava/lang/String;
            0    8     3       type  Lorg/eclipse/jface/text/templates/TemplateVariableType;
            0    8     4     offset  I
            1    8     5    varDesc  Lorg/eclipse/jface/text/templates/TemplateTranslator$VariableDescription;
    Exceptions:
      throws org.eclipse.jface.text.templates.TemplateException
    Signature: (Ljava/util/Map<Ljava/lang/String;Lorg/eclipse/jface/text/templates/TemplateTranslator$VariableDescription;>;Ljava/lang/String;Lorg/eclipse/jface/text/templates/TemplateVariableType;I)V
    MethodParameters:
           Name  Flags
      variables  
      name       
      type       
      offset     

  private org.eclipse.jface.text.templates.TemplateVariable[] createVariables(java.util.Map<java.lang.String, org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription>);
    descriptor: (Ljava/util/Map;)[Lorg/eclipse/jface/text/templates/TemplateVariable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
        start local 1 // java.util.Map variables
         0: .line 283
            aload 1 /* variables */
            invokeinterface java.util.Map.size:()I
            anewarray org.eclipse.jface.text.templates.TemplateVariable
            astore 2 /* result */
        start local 2 // org.eclipse.jface.text.templates.TemplateVariable[] result
         1: .line 284
            iconst_0
            istore 3 /* idx */
        start local 3 // int idx
         2: .line 285
            aload 1 /* variables */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4 /* it */
        start local 4 // java.util.Iterator it
         3: goto 20
         4: .line 286
      StackMap locals: org.eclipse.jface.text.templates.TemplateVariable[] int java.util.Iterator
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription
            astore 5 /* desc */
        start local 5 // org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription desc
         5: .line 287
            aload 5 /* desc */
            getfield org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription.fType:Lorg/eclipse/jface/text/templates/TemplateVariableType;
            ifnonnull 6
            new org.eclipse.jface.text.templates.TemplateVariableType
            dup
            aload 5 /* desc */
            getfield org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription.fName:Ljava/lang/String;
            invokespecial org.eclipse.jface.text.templates.TemplateVariableType.<init>:(Ljava/lang/String;)V
            goto 7
      StackMap locals: org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription
      StackMap stack:
         6: aload 5 /* desc */
            getfield org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription.fType:Lorg/eclipse/jface/text/templates/TemplateVariableType;
      StackMap locals:
      StackMap stack: org.eclipse.jface.text.templates.TemplateVariableType
         7: astore 6 /* type */
        start local 6 // org.eclipse.jface.text.templates.TemplateVariableType type
         8: .line 288
            aload 5 /* desc */
            getfield org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription.fOffsets:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            newarray 10
            astore 7 /* offsets */
        start local 7 // int[] offsets
         9: .line 289
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        10: .line 290
            aload 5 /* desc */
            getfield org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription.fOffsets:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9 /* intIt */
        start local 9 // java.util.Iterator intIt
        11: goto 15
        12: .line 291
      StackMap locals: org.eclipse.jface.text.templates.TemplateTranslator java.util.Map org.eclipse.jface.text.templates.TemplateVariable[] int java.util.Iterator org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription org.eclipse.jface.text.templates.TemplateVariableType int[] int java.util.Iterator
      StackMap stack:
            aload 9 /* intIt */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 10 /* offset */
        start local 10 // java.lang.Integer offset
        13: .line 292
            aload 7 /* offsets */
            iload 8 /* i */
            aload 10 /* offset */
            invokevirtual java.lang.Integer.intValue:()I
            iastore
        end local 10 // java.lang.Integer offset
        14: .line 290
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: aload 9 /* intIt */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 9 // java.util.Iterator intIt
        16: .line 294
            aload 0 /* this */
            aload 6 /* type */
            putfield org.eclipse.jface.text.templates.TemplateTranslator.fCurrentType:Lorg/eclipse/jface/text/templates/TemplateVariableType;
        17: .line 299
            aload 0 /* this */
            aload 6 /* type */
            invokevirtual org.eclipse.jface.text.templates.TemplateVariableType.getName:()Ljava/lang/String;
            aload 5 /* desc */
            getfield org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription.fName:Ljava/lang/String;
            aload 7 /* offsets */
            invokevirtual org.eclipse.jface.text.templates.TemplateTranslator.createVariable:(Ljava/lang/String;Ljava/lang/String;[I)Lorg/eclipse/jface/text/templates/TemplateVariable;
            astore 9 /* var */
        start local 9 // org.eclipse.jface.text.templates.TemplateVariable var
        18: .line 300
            aload 2 /* result */
            iload 3 /* idx */
            aload 9 /* var */
            aastore
        end local 9 // org.eclipse.jface.text.templates.TemplateVariable var
        end local 8 // int i
        end local 7 // int[] offsets
        end local 6 // org.eclipse.jface.text.templates.TemplateVariableType type
        end local 5 // org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription desc
        19: .line 285
            iinc 3 /* idx */ 1
      StackMap locals: org.eclipse.jface.text.templates.TemplateTranslator java.util.Map org.eclipse.jface.text.templates.TemplateVariable[] int java.util.Iterator
      StackMap stack:
        20: aload 4 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 4 // java.util.Iterator it
        21: .line 302
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jface.text.templates.TemplateTranslator.fCurrentType:Lorg/eclipse/jface/text/templates/TemplateVariableType;
        22: .line 303
            aload 2 /* result */
            areturn
        end local 3 // int idx
        end local 2 // org.eclipse.jface.text.templates.TemplateVariable[] result
        end local 1 // java.util.Map variables
        end local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   23     0       this  Lorg/eclipse/jface/text/templates/TemplateTranslator;
            0   23     1  variables  Ljava/util/Map<Ljava/lang/String;Lorg/eclipse/jface/text/templates/TemplateTranslator$VariableDescription;>;
            1   23     2     result  [Lorg/eclipse/jface/text/templates/TemplateVariable;
            2   23     3        idx  I
            3   21     4         it  Ljava/util/Iterator<Lorg/eclipse/jface/text/templates/TemplateTranslator$VariableDescription;>;
            5   19     5       desc  Lorg/eclipse/jface/text/templates/TemplateTranslator$VariableDescription;
            8   19     6       type  Lorg/eclipse/jface/text/templates/TemplateVariableType;
            9   19     7    offsets  [I
           10   19     8          i  I
           11   16     9      intIt  Ljava/util/Iterator<Ljava/lang/Integer;>;
           13   14    10     offset  Ljava/lang/Integer;
           18   19     9        var  Lorg/eclipse/jface/text/templates/TemplateVariable;
    Signature: (Ljava/util/Map<Ljava/lang/String;Lorg/eclipse/jface/text/templates/TemplateTranslator$VariableDescription;>;)[Lorg/eclipse/jface/text/templates/TemplateVariable;
    MethodParameters:
           Name  Flags
      variables  

  protected org.eclipse.jface.text.templates.TemplateVariable createVariable(java.lang.String, java.lang.String, int[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[I)Lorg/eclipse/jface/text/templates/TemplateVariable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
        start local 1 // java.lang.String type
        start local 2 // java.lang.String name
        start local 3 // int[] offsets
         0: .line 321
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jface.text.templates.TemplateTranslator.fCurrentType:Lorg/eclipse/jface/text/templates/TemplateVariableType;
            aload 2 /* name */
            aload 3 /* offsets */
            invokevirtual org.eclipse.jface.text.templates.TemplateTranslator.createVariable:(Lorg/eclipse/jface/text/templates/TemplateVariableType;Ljava/lang/String;[I)Lorg/eclipse/jface/text/templates/TemplateVariable;
            areturn
        end local 3 // int[] offsets
        end local 2 // java.lang.String name
        end local 1 // java.lang.String type
        end local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/eclipse/jface/text/templates/TemplateTranslator;
            0    1     1     type  Ljava/lang/String;
            0    1     2     name  Ljava/lang/String;
            0    1     3  offsets  [I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      type     
      name     
      offsets  

  protected org.eclipse.jface.text.templates.TemplateVariable createVariable(org.eclipse.jface.text.templates.TemplateVariableType, java.lang.String, int[]);
    descriptor: (Lorg/eclipse/jface/text/templates/TemplateVariableType;Ljava/lang/String;[I)Lorg/eclipse/jface/text/templates/TemplateVariable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
        start local 1 // org.eclipse.jface.text.templates.TemplateVariableType type
        start local 2 // java.lang.String name
        start local 3 // int[] offsets
         0: .line 338
            new org.eclipse.jface.text.templates.TemplateVariable
            dup
            aload 1 /* type */
            aload 2 /* name */
            aload 2 /* name */
            aload 3 /* offsets */
            invokespecial org.eclipse.jface.text.templates.TemplateVariable.<init>:(Lorg/eclipse/jface/text/templates/TemplateVariableType;Ljava/lang/String;Ljava/lang/String;[I)V
            areturn
        end local 3 // int[] offsets
        end local 2 // java.lang.String name
        end local 1 // org.eclipse.jface.text.templates.TemplateVariableType type
        end local 0 // org.eclipse.jface.text.templates.TemplateTranslator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/eclipse/jface/text/templates/TemplateTranslator;
            0    1     1     type  Lorg/eclipse/jface/text/templates/TemplateVariableType;
            0    1     2     name  Ljava/lang/String;
            0    1     3  offsets  [I
    MethodParameters:
         Name  Flags
      type     
      name     
      offsets  
}
SourceFile: "TemplateTranslator.java"
NestMembers:
  org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription
InnerClasses:
  private final VariableDescription = org.eclipse.jface.text.templates.TemplateTranslator$VariableDescription of org.eclipse.jface.text.templates.TemplateTranslator