public class org.eclipse.jface.text.templates.TemplateContextType
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jface.text.templates.TemplateContextType
  super_class: java.lang.Object
{
  private java.lang.String fId;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.Map<java.lang.String, org.eclipse.jface.text.templates.TemplateVariableResolver> fResolvers;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/eclipse/jface/text/templates/TemplateVariableResolver;>;

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

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
        start local 1 // java.lang.String id
         0: .line 66
            aload 0 /* this */
            aload 1 /* id */
            aload 1 /* id */
            invokespecial org.eclipse.jface.text.templates.TemplateContextType.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 67
            return
        end local 1 // java.lang.String id
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jface/text/templates/TemplateContextType;
            0    2     1    id  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      id    

  public void <init>(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
        start local 1 // java.lang.String id
        start local 2 // java.lang.String name
         0: .line 75
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jface.text.templates.TemplateContextType.fId:Ljava/lang/String;
         2: .line 54
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.eclipse.jface.text.templates.TemplateContextType.fResolvers:Ljava/util/Map;
         3: .line 57
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jface.text.templates.TemplateContextType.fName:Ljava/lang/String;
         4: .line 76
            aload 1 /* id */
            invokestatic org.eclipse.core.runtime.Assert.isNotNull:(Ljava/lang/Object;)V
         5: .line 77
            aload 2 /* name */
            invokestatic org.eclipse.core.runtime.Assert.isNotNull:(Ljava/lang/Object;)V
         6: .line 78
            aload 0 /* this */
            aload 1 /* id */
            putfield org.eclipse.jface.text.templates.TemplateContextType.fId:Ljava/lang/String;
         7: .line 79
            aload 0 /* this */
            aload 2 /* name */
            putfield org.eclipse.jface.text.templates.TemplateContextType.fName:Ljava/lang/String;
         8: .line 80
            return
        end local 2 // java.lang.String name
        end local 1 // java.lang.String id
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/eclipse/jface/text/templates/TemplateContextType;
            0    9     1    id  Ljava/lang/String;
            0    9     2  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      id    
      name  

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

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
         0: .line 110
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jface.text.templates.TemplateContextType.fId:Ljava/lang/String;
         2: .line 54
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.eclipse.jface.text.templates.TemplateContextType.fResolvers:Ljava/util/Map;
         3: .line 57
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jface.text.templates.TemplateContextType.fName:Ljava/lang/String;
         4: .line 111
            return
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/eclipse/jface/text/templates/TemplateContextType;

  public final void setId(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
        start local 1 // java.lang.String id
         0: .line 126
            aload 1 /* id */
            invokestatic org.eclipse.core.runtime.Assert.isNotNull:(Ljava/lang/Object;)V
         1: .line 127
            aload 0 /* this */
            getfield org.eclipse.jface.text.templates.TemplateContextType.fId:Ljava/lang/String;
            ifnonnull 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: invokestatic org.eclipse.core.runtime.Assert.isTrue:(Z)Z
            pop
         4: .line 128
            aload 0 /* this */
            aload 1 /* id */
            putfield org.eclipse.jface.text.templates.TemplateContextType.fId:Ljava/lang/String;
         5: .line 129
            return
        end local 1 // java.lang.String id
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/eclipse/jface/text/templates/TemplateContextType;
            0    6     1    id  Ljava/lang/String;
    Exceptions:
      throws java.lang.RuntimeException
    MethodParameters:
      Name  Flags
      id    

  public final void setName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
        start local 1 // java.lang.String name
         0: .line 143
            aload 0 /* this */
            getfield org.eclipse.jface.text.templates.TemplateContextType.fName:Ljava/lang/String;
            ifnonnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: invokestatic org.eclipse.core.runtime.Assert.isTrue:(Z)Z
            pop
         3: .line 144
            aload 0 /* this */
            aload 1 /* name */
            putfield org.eclipse.jface.text.templates.TemplateContextType.fName:Ljava/lang/String;
         4: .line 145
            return
        end local 1 // java.lang.String name
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/eclipse/jface/text/templates/TemplateContextType;
            0    5     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void addResolver(org.eclipse.jface.text.templates.TemplateVariableResolver);
    descriptor: (Lorg/eclipse/jface/text/templates/TemplateVariableResolver;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
        start local 1 // org.eclipse.jface.text.templates.TemplateVariableResolver resolver
         0: .line 154
            aload 1 /* resolver */
            invokestatic org.eclipse.core.runtime.Assert.isNotNull:(Ljava/lang/Object;)V
         1: .line 155
            aload 0 /* this */
            getfield org.eclipse.jface.text.templates.TemplateContextType.fResolvers:Ljava/util/Map;
            aload 1 /* resolver */
            invokevirtual org.eclipse.jface.text.templates.TemplateVariableResolver.getType:()Ljava/lang/String;
            aload 1 /* resolver */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 156
            return
        end local 1 // org.eclipse.jface.text.templates.TemplateVariableResolver resolver
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/eclipse/jface/text/templates/TemplateContextType;
            0    3     1  resolver  Lorg/eclipse/jface/text/templates/TemplateVariableResolver;
    MethodParameters:
          Name  Flags
      resolver  

  public void removeResolver(org.eclipse.jface.text.templates.TemplateVariableResolver);
    descriptor: (Lorg/eclipse/jface/text/templates/TemplateVariableResolver;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
        start local 1 // org.eclipse.jface.text.templates.TemplateVariableResolver resolver
         0: .line 164
            aload 1 /* resolver */
            invokestatic org.eclipse.core.runtime.Assert.isNotNull:(Ljava/lang/Object;)V
         1: .line 165
            aload 0 /* this */
            getfield org.eclipse.jface.text.templates.TemplateContextType.fResolvers:Ljava/util/Map;
            aload 1 /* resolver */
            invokevirtual org.eclipse.jface.text.templates.TemplateVariableResolver.getType:()Ljava/lang/String;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 166
            return
        end local 1 // org.eclipse.jface.text.templates.TemplateVariableResolver resolver
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/eclipse/jface/text/templates/TemplateContextType;
            0    3     1  resolver  Lorg/eclipse/jface/text/templates/TemplateVariableResolver;
    MethodParameters:
          Name  Flags
      resolver  

  public void removeAllResolvers();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
         0: .line 172
            aload 0 /* this */
            getfield org.eclipse.jface.text.templates.TemplateContextType.fResolvers:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         1: .line 173
            return
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jface/text/templates/TemplateContextType;

  public java.util.Iterator<org.eclipse.jface.text.templates.TemplateVariableResolver> resolvers();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
         0: .line 181
            aload 0 /* this */
            getfield org.eclipse.jface.text.templates.TemplateContextType.fResolvers:Ljava/util/Map;
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            areturn
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jface/text/templates/TemplateContextType;
    Signature: ()Ljava/util/Iterator<Lorg/eclipse/jface/text/templates/TemplateVariableResolver;>;

  protected org.eclipse.jface.text.templates.TemplateVariableResolver getResolver(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/eclipse/jface/text/templates/TemplateVariableResolver;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
        start local 1 // java.lang.String type
         0: .line 191
            aload 0 /* this */
            getfield org.eclipse.jface.text.templates.TemplateContextType.fResolvers:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jface.text.templates.TemplateVariableResolver
            areturn
        end local 1 // java.lang.String type
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jface/text/templates/TemplateContextType;
            0    1     1  type  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  public void validate(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
        start local 1 // java.lang.String pattern
         0: .line 202
            new org.eclipse.jface.text.templates.TemplateTranslator
            dup
            invokespecial org.eclipse.jface.text.templates.TemplateTranslator.<init>:()V
            astore 2 /* translator */
        start local 2 // org.eclipse.jface.text.templates.TemplateTranslator translator
         1: .line 203
            aload 2 /* translator */
            aload 1 /* pattern */
            invokevirtual org.eclipse.jface.text.templates.TemplateTranslator.translate:(Ljava/lang/String;)Lorg/eclipse/jface/text/templates/TemplateBuffer;
            astore 3 /* buffer */
        start local 3 // org.eclipse.jface.text.templates.TemplateBuffer buffer
         2: .line 204
            aload 0 /* this */
            aload 3 /* buffer */
            invokevirtual org.eclipse.jface.text.templates.TemplateBuffer.getVariables:()[Lorg/eclipse/jface/text/templates/TemplateVariable;
            invokevirtual org.eclipse.jface.text.templates.TemplateContextType.validateVariables:([Lorg/eclipse/jface/text/templates/TemplateVariable;)V
         3: .line 205
            return
        end local 3 // org.eclipse.jface.text.templates.TemplateBuffer buffer
        end local 2 // org.eclipse.jface.text.templates.TemplateTranslator translator
        end local 1 // java.lang.String pattern
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/eclipse/jface/text/templates/TemplateContextType;
            0    4     1     pattern  Ljava/lang/String;
            1    4     2  translator  Lorg/eclipse/jface/text/templates/TemplateTranslator;
            2    4     3      buffer  Lorg/eclipse/jface/text/templates/TemplateBuffer;
    Exceptions:
      throws org.eclipse.jface.text.templates.TemplateException
    MethodParameters:
         Name  Flags
      pattern  

  protected void validateVariables(org.eclipse.jface.text.templates.TemplateVariable[]);
    descriptor: ([Lorg/eclipse/jface/text/templates/TemplateVariable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
        start local 1 // org.eclipse.jface.text.templates.TemplateVariable[] variables
         0: .line 220
            return
        end local 1 // org.eclipse.jface.text.templates.TemplateVariable[] variables
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/eclipse/jface/text/templates/TemplateContextType;
            0    1     1  variables  [Lorg/eclipse/jface/text/templates/TemplateVariable;
    Exceptions:
      throws org.eclipse.jface.text.templates.TemplateException
    MethodParameters:
           Name  Flags
      variables  

  public void resolve(org.eclipse.jface.text.templates.TemplateBuffer, org.eclipse.jface.text.templates.TemplateContext);
    descriptor: (Lorg/eclipse/jface/text/templates/TemplateBuffer;Lorg/eclipse/jface/text/templates/TemplateContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
        start local 1 // org.eclipse.jface.text.templates.TemplateBuffer buffer
        start local 2 // org.eclipse.jface.text.templates.TemplateContext context
         0: .line 232
            aload 2 /* context */
            invokestatic org.eclipse.core.runtime.Assert.isNotNull:(Ljava/lang/Object;)V
         1: .line 233
            aload 1 /* buffer */
            invokevirtual org.eclipse.jface.text.templates.TemplateBuffer.getVariables:()[Lorg/eclipse/jface/text/templates/TemplateVariable;
            astore 3 /* variables */
        start local 3 // org.eclipse.jface.text.templates.TemplateVariable[] variables
         2: .line 235
            aload 3 /* variables */
            invokestatic org.eclipse.jface.text.templates.TemplateContextType.variablesToPositions:([Lorg/eclipse/jface/text/templates/TemplateVariable;)Ljava/util/List;
            astore 4 /* positions */
        start local 4 // java.util.List positions
         3: .line 236
            new java.util.ArrayList
            dup
            iconst_5
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* edits */
        start local 5 // java.util.List edits
         4: .line 239
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 17
         6: .line 240
      StackMap locals: org.eclipse.jface.text.templates.TemplateContextType org.eclipse.jface.text.templates.TemplateBuffer org.eclipse.jface.text.templates.TemplateContext org.eclipse.jface.text.templates.TemplateVariable[] java.util.List java.util.List int
      StackMap stack:
            aload 3 /* variables */
            iload 6 /* i */
            aaload
            astore 7 /* variable */
        start local 7 // org.eclipse.jface.text.templates.TemplateVariable variable
         7: .line 242
            aload 7 /* variable */
            invokevirtual org.eclipse.jface.text.templates.TemplateVariable.isResolved:()Z
            ifne 9
         8: .line 243
            aload 0 /* this */
            aload 7 /* variable */
            aload 2 /* context */
            invokevirtual org.eclipse.jface.text.templates.TemplateContextType.resolve:(Lorg/eclipse/jface/text/templates/TemplateVariable;Lorg/eclipse/jface/text/templates/TemplateContext;)V
         9: .line 245
      StackMap locals: org.eclipse.jface.text.templates.TemplateVariable
      StackMap stack:
            aload 7 /* variable */
            invokevirtual org.eclipse.jface.text.templates.TemplateVariable.getDefaultValue:()Ljava/lang/String;
            astore 8 /* value */
        start local 8 // java.lang.String value
        10: .line 246
            aload 7 /* variable */
            invokevirtual org.eclipse.jface.text.templates.TemplateVariable.getOffsets:()[I
            astore 9 /* offsets */
        start local 9 // int[] offsets
        11: .line 248
            iconst_0
            istore 10 /* k */
        start local 10 // int k
        12: goto 15
        13: .line 249
      StackMap locals: java.lang.String int[] int
      StackMap stack:
            aload 5 /* edits */
            new org.eclipse.text.edits.ReplaceEdit
            dup
            aload 9 /* offsets */
            iload 10 /* k */
            iaload
            aload 7 /* variable */
            invokevirtual org.eclipse.jface.text.templates.TemplateVariable.getInitialLength:()I
            aload 8 /* value */
            invokespecial org.eclipse.text.edits.ReplaceEdit.<init>:(IILjava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 248
            iinc 10 /* k */ 1
      StackMap locals:
      StackMap stack:
        15: iload 10 /* k */
            aload 9 /* offsets */
            arraylength
            if_icmpne 13
        end local 10 // int k
        end local 9 // int[] offsets
        end local 8 // java.lang.String value
        end local 7 // org.eclipse.jface.text.templates.TemplateVariable variable
        16: .line 239
            iinc 6 /* i */ 1
      StackMap locals: org.eclipse.jface.text.templates.TemplateContextType org.eclipse.jface.text.templates.TemplateBuffer org.eclipse.jface.text.templates.TemplateContext org.eclipse.jface.text.templates.TemplateVariable[] java.util.List java.util.List int
      StackMap stack:
        17: iload 6 /* i */
            aload 3 /* variables */
            arraylength
            if_icmpne 6
        end local 6 // int i
        18: .line 253
            new org.eclipse.jface.text.Document
            dup
            aload 1 /* buffer */
            invokevirtual org.eclipse.jface.text.templates.TemplateBuffer.getString:()Ljava/lang/String;
            invokespecial org.eclipse.jface.text.Document.<init>:(Ljava/lang/String;)V
            astore 6 /* document */
        start local 6 // org.eclipse.jface.text.IDocument document
        19: .line 254
            new org.eclipse.text.edits.MultiTextEdit
            dup
            iconst_0
            aload 6 /* document */
            invokeinterface org.eclipse.jface.text.IDocument.getLength:()I
            invokespecial org.eclipse.text.edits.MultiTextEdit.<init>:(II)V
            astore 7 /* edit */
        start local 7 // org.eclipse.text.edits.MultiTextEdit edit
        20: .line 255
            aload 7 /* edit */
            aload 4 /* positions */
            aload 4 /* positions */
            invokeinterface java.util.List.size:()I
            anewarray org.eclipse.text.edits.TextEdit
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.text.edits.TextEdit[]
            invokevirtual org.eclipse.text.edits.MultiTextEdit.addChildren:([Lorg/eclipse/text/edits/TextEdit;)V
        21: .line 256
            aload 7 /* edit */
            aload 5 /* edits */
            aload 5 /* edits */
            invokeinterface java.util.List.size:()I
            anewarray org.eclipse.text.edits.TextEdit
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.text.edits.TextEdit[]
            invokevirtual org.eclipse.text.edits.MultiTextEdit.addChildren:([Lorg/eclipse/text/edits/TextEdit;)V
        22: .line 257
            aload 7 /* edit */
            aload 6 /* document */
            iconst_2
            invokevirtual org.eclipse.text.edits.MultiTextEdit.apply:(Lorg/eclipse/jface/text/IDocument;I)Lorg/eclipse/text/edits/UndoEdit;
            pop
        23: .line 259
            aload 4 /* positions */
            aload 3 /* variables */
            invokestatic org.eclipse.jface.text.templates.TemplateContextType.positionsToVariables:(Ljava/util/List;[Lorg/eclipse/jface/text/templates/TemplateVariable;)V
        24: .line 261
            aload 1 /* buffer */
            aload 6 /* document */
            invokeinterface org.eclipse.jface.text.IDocument.get:()Ljava/lang/String;
            aload 3 /* variables */
            invokevirtual org.eclipse.jface.text.templates.TemplateBuffer.setContent:(Ljava/lang/String;[Lorg/eclipse/jface/text/templates/TemplateVariable;)V
        25: .line 262
            return
        end local 7 // org.eclipse.text.edits.MultiTextEdit edit
        end local 6 // org.eclipse.jface.text.IDocument document
        end local 5 // java.util.List edits
        end local 4 // java.util.List positions
        end local 3 // org.eclipse.jface.text.templates.TemplateVariable[] variables
        end local 2 // org.eclipse.jface.text.templates.TemplateContext context
        end local 1 // org.eclipse.jface.text.templates.TemplateBuffer buffer
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   26     0       this  Lorg/eclipse/jface/text/templates/TemplateContextType;
            0   26     1     buffer  Lorg/eclipse/jface/text/templates/TemplateBuffer;
            0   26     2    context  Lorg/eclipse/jface/text/templates/TemplateContext;
            2   26     3  variables  [Lorg/eclipse/jface/text/templates/TemplateVariable;
            3   26     4  positions  Ljava/util/List<Lorg/eclipse/text/edits/RangeMarker;>;
            4   26     5      edits  Ljava/util/List<Lorg/eclipse/text/edits/ReplaceEdit;>;
            5   18     6          i  I
            7   16     7   variable  Lorg/eclipse/jface/text/templates/TemplateVariable;
           10   16     8      value  Ljava/lang/String;
           11   16     9    offsets  [I
           12   16    10          k  I
           19   26     6   document  Lorg/eclipse/jface/text/IDocument;
           20   26     7       edit  Lorg/eclipse/text/edits/MultiTextEdit;
    Exceptions:
      throws org.eclipse.text.edits.MalformedTreeException, org.eclipse.jface.text.BadLocationException
    MethodParameters:
         Name  Flags
      buffer   
      context  

  public void resolve(org.eclipse.jface.text.templates.TemplateVariable, org.eclipse.jface.text.templates.TemplateContext);
    descriptor: (Lorg/eclipse/jface/text/templates/TemplateVariable;Lorg/eclipse/jface/text/templates/TemplateContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.eclipse.jface.text.templates.TemplateContextType this
        start local 1 // org.eclipse.jface.text.templates.TemplateVariable variable
        start local 2 // org.eclipse.jface.text.templates.TemplateContext context
         0: .line 272
            aload 1 /* variable */
            invokevirtual org.eclipse.jface.text.templates.TemplateVariable.getType:()Ljava/lang/String;
            astore 3 /* type */
        start local 3 // java.lang.String type
         1: .line 273
            aload 0 /* this */
            getfield org.eclipse.jface.text.templates.TemplateContextType.fResolvers:Ljava/util/Map;
            aload 3 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jface.text.templates.TemplateVariableResolver
            astore 4 /* resolver */
        start local 4 // org.eclipse.jface.text.templates.TemplateVariableResolver resolver
         2: .line 274
            aload 4 /* resolver */
            ifnonnull 4
         3: .line 275
            new org.eclipse.jface.text.templates.TemplateVariableResolver
            dup
            aload 3 /* type */
            ldc ""
            invokespecial org.eclipse.jface.text.templates.TemplateVariableResolver.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 4 /* resolver */
         4: .line 276
      StackMap locals: java.lang.String org.eclipse.jface.text.templates.TemplateVariableResolver
      StackMap stack:
            aload 4 /* resolver */
            aload 1 /* variable */
            aload 2 /* context */
            invokevirtual org.eclipse.jface.text.templates.TemplateVariableResolver.resolve:(Lorg/eclipse/jface/text/templates/TemplateVariable;Lorg/eclipse/jface/text/templates/TemplateContext;)V
         5: .line 277
            return
        end local 4 // org.eclipse.jface.text.templates.TemplateVariableResolver resolver
        end local 3 // java.lang.String type
        end local 2 // org.eclipse.jface.text.templates.TemplateContext context
        end local 1 // org.eclipse.jface.text.templates.TemplateVariable variable
        end local 0 // org.eclipse.jface.text.templates.TemplateContextType this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/eclipse/jface/text/templates/TemplateContextType;
            0    6     1  variable  Lorg/eclipse/jface/text/templates/TemplateVariable;
            0    6     2   context  Lorg/eclipse/jface/text/templates/TemplateContext;
            1    6     3      type  Ljava/lang/String;
            2    6     4  resolver  Lorg/eclipse/jface/text/templates/TemplateVariableResolver;
    MethodParameters:
          Name  Flags
      variable  
      context   

  private static java.util.List<org.eclipse.text.edits.RangeMarker> variablesToPositions(org.eclipse.jface.text.templates.TemplateVariable[]);
    descriptor: ([Lorg/eclipse/jface/text/templates/TemplateVariable;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.eclipse.jface.text.templates.TemplateVariable[] variables
         0: .line 280
            new java.util.ArrayList
            dup
            iconst_5
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* positions */
        start local 1 // java.util.List positions
         1: .line 281
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 10
         3: .line 282
      StackMap locals: java.util.List int
      StackMap stack:
            aload 0 /* variables */
            iload 2 /* i */
            aaload
            invokevirtual org.eclipse.jface.text.templates.TemplateVariable.getOffsets:()[I
            astore 3 /* offsets */
        start local 3 // int[] offsets
         4: .line 283
            iconst_0
            istore 4 /* j */
        start local 4 // int j
         5: goto 8
         6: .line 284
      StackMap locals: int[] int
      StackMap stack:
            aload 1 /* positions */
            new org.eclipse.text.edits.RangeMarker
            dup
            aload 3 /* offsets */
            iload 4 /* j */
            iaload
            iconst_0
            invokespecial org.eclipse.text.edits.RangeMarker.<init>:(II)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 283
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* j */
            aload 3 /* offsets */
            arraylength
            if_icmpne 6
        end local 4 // int j
        end local 3 // int[] offsets
         9: .line 281
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            aload 0 /* variables */
            arraylength
            if_icmpne 3
        end local 2 // int i
        11: .line 287
            aload 1 /* positions */
            areturn
        end local 1 // java.util.List positions
        end local 0 // org.eclipse.jface.text.templates.TemplateVariable[] variables
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0  variables  [Lorg/eclipse/jface/text/templates/TemplateVariable;
            1   12     1  positions  Ljava/util/List<Lorg/eclipse/text/edits/RangeMarker;>;
            2   11     2          i  I
            4    9     3    offsets  [I
            5    9     4          j  I
    Signature: ([Lorg/eclipse/jface/text/templates/TemplateVariable;)Ljava/util/List<Lorg/eclipse/text/edits/RangeMarker;>;
    MethodParameters:
           Name  Flags
      variables  

  private static void positionsToVariables(java.util.List<org.eclipse.text.edits.RangeMarker>, org.eclipse.jface.text.templates.TemplateVariable[]);
    descriptor: (Ljava/util/List;[Lorg/eclipse/jface/text/templates/TemplateVariable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // java.util.List positions
        start local 1 // org.eclipse.jface.text.templates.TemplateVariable[] variables
         0: .line 291
            aload 0 /* positions */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2 /* iterator */
        start local 2 // java.util.Iterator iterator
         1: .line 293
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 12
         3: .line 294
      StackMap locals: java.util.Iterator int
      StackMap stack:
            aload 1 /* variables */
            iload 3 /* i */
            aaload
            astore 4 /* variable */
        start local 4 // org.eclipse.jface.text.templates.TemplateVariable variable
         4: .line 296
            aload 4 /* variable */
            invokevirtual org.eclipse.jface.text.templates.TemplateVariable.getOffsets:()[I
            arraylength
            newarray 10
            astore 5 /* offsets */
        start local 5 // int[] offsets
         5: .line 297
            iconst_0
            istore 6 /* j */
        start local 6 // int j
         6: goto 9
         7: .line 298
      StackMap locals: org.eclipse.jface.text.templates.TemplateVariable int[] int
      StackMap stack:
            aload 5 /* offsets */
            iload 6 /* j */
            aload 2 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.text.edits.RangeMarker
            invokevirtual org.eclipse.text.edits.RangeMarker.getOffset:()I
            iastore
         8: .line 297
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
         9: iload 6 /* j */
            aload 5 /* offsets */
            arraylength
            if_icmpne 7
        end local 6 // int j
        10: .line 300
            aload 4 /* variable */
            aload 5 /* offsets */
            invokevirtual org.eclipse.jface.text.templates.TemplateVariable.setOffsets:([I)V
        end local 5 // int[] offsets
        end local 4 // org.eclipse.jface.text.templates.TemplateVariable variable
        11: .line 293
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 3 /* i */
            aload 1 /* variables */
            arraylength
            if_icmpne 3
        end local 3 // int i
        13: .line 302
            return
        end local 2 // java.util.Iterator iterator
        end local 1 // org.eclipse.jface.text.templates.TemplateVariable[] variables
        end local 0 // java.util.List positions
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0  positions  Ljava/util/List<Lorg/eclipse/text/edits/RangeMarker;>;
            0   14     1  variables  [Lorg/eclipse/jface/text/templates/TemplateVariable;
            1   14     2   iterator  Ljava/util/Iterator<Lorg/eclipse/text/edits/RangeMarker;>;
            2   13     3          i  I
            4   11     4   variable  Lorg/eclipse/jface/text/templates/TemplateVariable;
            5   11     5    offsets  [I
            6   10     6          j  I
    Signature: (Ljava/util/List<Lorg/eclipse/text/edits/RangeMarker;>;[Lorg/eclipse/jface/text/templates/TemplateVariable;)V
    MethodParameters:
           Name  Flags
      positions  
      variables  
}
SourceFile: "TemplateContextType.java"