public final class org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation implements org.eclipse.core.resources.IWorkspaceRunnable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation
  super_class: java.lang.Object
{
  private boolean fApply;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final java.util.List<org.eclipse.jdt.core.dom.IMethodBinding> fCreated;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/eclipse/jdt/core/dom/IMethodBinding;>;

  private org.eclipse.text.edits.TextEdit fResultingEdit;
    descriptor: Lorg/eclipse/text/edits/TextEdit;
    flags: (0x0002) ACC_PRIVATE

  private final org.eclipse.jdt.core.IJavaElement fInsert;
    descriptor: Lorg/eclipse/jdt/core/IJavaElement;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean fSave;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings fSettings;
    descriptor: Lorg/eclipse/jdt/internal/corext/codemanipulation/CodeGenerationSettings;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.eclipse.jdt.core.dom.CompilationUnit fASTRoot;
    descriptor: Lorg/eclipse/jdt/core/dom/CompilationUnit;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation$DelegateEntry[] fDelegatesToCreate;
    descriptor: [Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation$DelegateEntry;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.eclipse.jdt.core.dom.CompilationUnit, org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation$DelegateEntry[], org.eclipse.jdt.core.IJavaElement, org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings, boolean, boolean);
    descriptor: (Lorg/eclipse/jdt/core/dom/CompilationUnit;[Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation$DelegateEntry;Lorg/eclipse/jdt/core/IJavaElement;Lorg/eclipse/jdt/internal/corext/codemanipulation/CodeGenerationSettings;ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=7
        start local 0 // org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation this
        start local 1 // org.eclipse.jdt.core.dom.CompilationUnit astRoot
        start local 2 // org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation$DelegateEntry[] delegatesToCreate
        start local 3 // org.eclipse.jdt.core.IJavaElement insert
        start local 4 // org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings settings
        start local 5 // boolean apply
        start local 6 // boolean save
         0: .line 109
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 77
            aload 0 /* this */
            iconst_1
            putfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fApply:Z
         2: .line 80
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fCreated:Ljava/util/List;
         3: .line 83
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fResultingEdit:Lorg/eclipse/text/edits/TextEdit;
         4: .line 110
            aload 1 /* astRoot */
            ifnull 5
            aload 1 /* astRoot */
            invokevirtual org.eclipse.jdt.core.dom.CompilationUnit.getTypeRoot:()Lorg/eclipse/jdt/core/ITypeRoot;
            instanceof org.eclipse.jdt.core.ICompilationUnit
            ifeq 5
            iconst_1
            goto 6
      StackMap locals: org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation org.eclipse.jdt.core.dom.CompilationUnit org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation$DelegateEntry[] org.eclipse.jdt.core.IJavaElement org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings int int
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: invokestatic org.eclipse.core.runtime.Assert.isTrue:(Z)Z
            pop
         7: .line 111
            aload 2 /* delegatesToCreate */
            ifnull 8
            aload 2 /* delegatesToCreate */
            arraylength
            ifle 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: invokestatic org.eclipse.core.runtime.Assert.isTrue:(Z)Z
            pop
        10: .line 112
            aload 4 /* settings */
            invokestatic org.eclipse.core.runtime.Assert.isNotNull:(Ljava/lang/Object;)V
        11: .line 113
            aload 0 /* this */
            aload 1 /* astRoot */
            putfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fASTRoot:Lorg/eclipse/jdt/core/dom/CompilationUnit;
        12: .line 114
            aload 0 /* this */
            aload 3 /* insert */
            putfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fInsert:Lorg/eclipse/jdt/core/IJavaElement;
        13: .line 115
            aload 0 /* this */
            aload 2 /* delegatesToCreate */
            putfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fDelegatesToCreate:[Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation$DelegateEntry;
        14: .line 116
            aload 0 /* this */
            aload 4 /* settings */
            putfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fSettings:Lorg/eclipse/jdt/internal/corext/codemanipulation/CodeGenerationSettings;
        15: .line 117
            aload 0 /* this */
            iload 6 /* save */
            putfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fSave:Z
        16: .line 118
            aload 0 /* this */
            iload 5 /* apply */
            putfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fApply:Z
        17: .line 119
            return
        end local 6 // boolean save
        end local 5 // boolean apply
        end local 4 // org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings settings
        end local 3 // org.eclipse.jdt.core.IJavaElement insert
        end local 2 // org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation$DelegateEntry[] delegatesToCreate
        end local 1 // org.eclipse.jdt.core.dom.CompilationUnit astRoot
        end local 0 // org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   18     0               this  Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation;
            0   18     1            astRoot  Lorg/eclipse/jdt/core/dom/CompilationUnit;
            0   18     2  delegatesToCreate  [Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation$DelegateEntry;
            0   18     3             insert  Lorg/eclipse/jdt/core/IJavaElement;
            0   18     4           settings  Lorg/eclipse/jdt/internal/corext/codemanipulation/CodeGenerationSettings;
            0   18     5              apply  Z
            0   18     6               save  Z
    MethodParameters:
                   Name  Flags
      astRoot            
      delegatesToCreate  
      insert             
      settings           
      apply              
      save               

  public final java.lang.String[] getCreatedMethods();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation this
         0: .line 127
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fCreated:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            astore 1 /* keys */
        start local 1 // java.lang.String[] keys
         1: .line 128
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fCreated:Ljava/util/List;
            aload 1 /* keys */
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
         2: .line 129
            aload 1 /* keys */
            areturn
        end local 1 // java.lang.String[] keys
        end local 0 // org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation;
            1    3     1  keys  [Ljava/lang/String;

  public final org.eclipse.text.edits.TextEdit getResultingEdit();
    descriptor: ()Lorg/eclipse/text/edits/TextEdit;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation this
         0: .line 138
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fResultingEdit:Lorg/eclipse/text/edits/TextEdit;
            areturn
        end local 0 // org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation;

  public final org.eclipse.core.runtime.jobs.ISchedulingRule getSchedulingRule();
    descriptor: ()Lorg/eclipse/core/runtime/jobs/ISchedulingRule;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation this
         0: .line 147
            invokestatic org.eclipse.core.resources.ResourcesPlugin.getWorkspace:()Lorg/eclipse/core/resources/IWorkspace;
            invokeinterface org.eclipse.core.resources.IWorkspace.getRoot:()Lorg/eclipse/core/resources/IWorkspaceRoot;
            areturn
        end local 0 // org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation;

  public final void run(org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=15, args_size=2
        start local 0 // org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation this
        start local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 155
            aload 1 /* monitor */
            ifnonnull 2
         1: .line 156
            new org.eclipse.core.runtime.NullProgressMonitor
            dup
            invokespecial org.eclipse.core.runtime.NullProgressMonitor.<init>:()V
            astore 1 /* monitor */
         2: .line 158
      StackMap locals:
      StackMap stack:
            aload 1 /* monitor */
            ldc ""
            iconst_1
            invokeinterface org.eclipse.core.runtime.IProgressMonitor.beginTask:(Ljava/lang/String;I)V
         3: .line 159
            aload 1 /* monitor */
            getstatic org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationMessages.AddDelegateMethodsOperation_monitor_message:Ljava/lang/String;
            invokeinterface org.eclipse.core.runtime.IProgressMonitor.setTaskName:(Ljava/lang/String;)V
         4: .line 160
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fCreated:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         5: .line 161
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fASTRoot:Lorg/eclipse/jdt/core/dom/CompilationUnit;
            invokevirtual org.eclipse.jdt.core.dom.CompilationUnit.getTypeRoot:()Lorg/eclipse/jdt/core/ITypeRoot;
            checkcast org.eclipse.jdt.core.ICompilationUnit
            astore 2 /* cu */
        start local 2 // org.eclipse.jdt.core.ICompilationUnit cu
         6: .line 163
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fASTRoot:Lorg/eclipse/jdt/core/dom/CompilationUnit;
            invokevirtual org.eclipse.jdt.core.dom.CompilationUnit.getAST:()Lorg/eclipse/jdt/core/dom/AST;
            invokestatic org.eclipse.jdt.core.dom.rewrite.ASTRewrite.create:(Lorg/eclipse/jdt/core/dom/AST;)Lorg/eclipse/jdt/core/dom/rewrite/ASTRewrite;
            astore 3 /* astRewrite */
        start local 3 // org.eclipse.jdt.core.dom.rewrite.ASTRewrite astRewrite
         7: .line 164
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fASTRoot:Lorg/eclipse/jdt/core/dom/CompilationUnit;
            iconst_1
            invokestatic org.eclipse.jdt.internal.core.manipulation.StubUtility.createImportRewrite:(Lorg/eclipse/jdt/core/dom/CompilationUnit;Z)Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;
            astore 4 /* importRewrite */
        start local 4 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite importRewrite
         8: .line 166
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fDelegatesToCreate:[Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation$DelegateEntry;
            iconst_0
            aaload
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation$DelegateEntry.field:Lorg/eclipse/jdt/core/dom/IVariableBinding;
            invokeinterface org.eclipse.jdt.core.dom.IVariableBinding.getDeclaringClass:()Lorg/eclipse/jdt/core/dom/ITypeBinding;
            astore 5 /* parentType */
        start local 5 // org.eclipse.jdt.core.dom.ITypeBinding parentType
         9: .line 168
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fASTRoot:Lorg/eclipse/jdt/core/dom/CompilationUnit;
            aload 5 /* parentType */
            invokevirtual org.eclipse.jdt.core.dom.CompilationUnit.findDeclaringNode:(Lorg/eclipse/jdt/core/dom/IBinding;)Lorg/eclipse/jdt/core/dom/ASTNode;
            astore 6 /* typeDecl */
        start local 6 // org.eclipse.jdt.core.dom.ASTNode typeDecl
        10: .line 170
            aconst_null
            astore 7 /* listRewriter */
        start local 7 // org.eclipse.jdt.core.dom.rewrite.ListRewrite listRewriter
        11: .line 171
            aload 6 /* typeDecl */
            instanceof org.eclipse.jdt.core.dom.AbstractTypeDeclaration
            ifeq 14
        12: .line 172
            aload 3 /* astRewrite */
            aload 6 /* typeDecl */
            aload 6 /* typeDecl */
            checkcast org.eclipse.jdt.core.dom.AbstractTypeDeclaration
            invokevirtual org.eclipse.jdt.core.dom.AbstractTypeDeclaration.getBodyDeclarationsProperty:()Lorg/eclipse/jdt/core/dom/ChildListPropertyDescriptor;
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ASTRewrite.getListRewrite:(Lorg/eclipse/jdt/core/dom/ASTNode;Lorg/eclipse/jdt/core/dom/ChildListPropertyDescriptor;)Lorg/eclipse/jdt/core/dom/rewrite/ListRewrite;
            astore 7 /* listRewriter */
        13: .line 173
            goto 16
      StackMap locals: org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation org.eclipse.core.runtime.IProgressMonitor org.eclipse.jdt.core.ICompilationUnit org.eclipse.jdt.core.dom.rewrite.ASTRewrite org.eclipse.jdt.core.dom.rewrite.ImportRewrite org.eclipse.jdt.core.dom.ITypeBinding org.eclipse.jdt.core.dom.ASTNode org.eclipse.jdt.core.dom.rewrite.ListRewrite
      StackMap stack:
        14: aload 6 /* typeDecl */
            instanceof org.eclipse.jdt.core.dom.AnonymousClassDeclaration
            ifeq 16
        15: .line 174
            aload 3 /* astRewrite */
            aload 6 /* typeDecl */
            getstatic org.eclipse.jdt.core.dom.AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY:Lorg/eclipse/jdt/core/dom/ChildListPropertyDescriptor;
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ASTRewrite.getListRewrite:(Lorg/eclipse/jdt/core/dom/ASTNode;Lorg/eclipse/jdt/core/dom/ChildListPropertyDescriptor;)Lorg/eclipse/jdt/core/dom/rewrite/ListRewrite;
            astore 7 /* listRewriter */
        16: .line 177
      StackMap locals:
      StackMap stack:
            aload 7 /* listRewriter */
            ifnull 41
        17: .line 178
            aload 7 /* listRewriter */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fInsert:Lorg/eclipse/jdt/core/IJavaElement;
            invokestatic org.eclipse.jdt.internal.corext.codemanipulation.StubUtility2Core.getNodeToInsertBefore:(Lorg/eclipse/jdt/core/dom/rewrite/ListRewrite;Lorg/eclipse/jdt/core/IJavaElement;)Lorg/eclipse/jdt/core/dom/ASTNode;
            astore 8 /* insertion */
        start local 8 // org.eclipse.jdt.core.dom.ASTNode insertion
        18: .line 180
            new org.eclipse.jdt.internal.corext.codemanipulation.ContextSensitiveImportRewriteContext
            dup
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fASTRoot:Lorg/eclipse/jdt/core/dom/CompilationUnit;
            aload 6 /* typeDecl */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getStartPosition:()I
            aload 4 /* importRewrite */
            invokespecial org.eclipse.jdt.internal.corext.codemanipulation.ContextSensitiveImportRewriteContext.<init>:(Lorg/eclipse/jdt/core/dom/CompilationUnit;ILorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;)V
            astore 9 /* context */
        start local 9 // org.eclipse.jdt.internal.corext.codemanipulation.ContextSensitiveImportRewriteContext context
        19: .line 182
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fDelegatesToCreate:[Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation$DelegateEntry;
            new org.eclipse.jdt.internal.corext.util.DelegateEntryComparator
            dup
            invokespecial org.eclipse.jdt.internal.corext.util.DelegateEntryComparator.<init>:()V
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
        20: .line 184
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        21: goto 31
        22: .line 185
      StackMap locals: org.eclipse.jdt.core.dom.ASTNode org.eclipse.jdt.internal.corext.codemanipulation.ContextSensitiveImportRewriteContext int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fDelegatesToCreate:[Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation$DelegateEntry;
            iload 10 /* i */
            aaload
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation$DelegateEntry.delegateMethod:Lorg/eclipse/jdt/core/dom/IMethodBinding;
            astore 11 /* delegateMethod */
        start local 11 // org.eclipse.jdt.core.dom.IMethodBinding delegateMethod
        23: .line 186
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fDelegatesToCreate:[Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation$DelegateEntry;
            iload 10 /* i */
            aaload
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation$DelegateEntry.field:Lorg/eclipse/jdt/core/dom/IVariableBinding;
            astore 12 /* field */
        start local 12 // org.eclipse.jdt.core.dom.IVariableBinding field
        24: .line 187
            aload 2 /* cu */
            aload 3 /* astRewrite */
            aload 4 /* importRewrite */
            aload 9 /* context */
            aload 11 /* delegateMethod */
            aload 12 /* field */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fSettings:Lorg/eclipse/jdt/internal/corext/codemanipulation/CodeGenerationSettings;
            invokestatic org.eclipse.jdt.internal.corext.codemanipulation.StubUtility2Core.createDelegationStub:(Lorg/eclipse/jdt/core/ICompilationUnit;Lorg/eclipse/jdt/core/dom/rewrite/ASTRewrite;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;Lorg/eclipse/jdt/core/dom/IMethodBinding;Lorg/eclipse/jdt/core/dom/IVariableBinding;Lorg/eclipse/jdt/internal/corext/codemanipulation/CodeGenerationSettings;)Lorg/eclipse/jdt/core/dom/MethodDeclaration;
            astore 13 /* newMethod */
        start local 13 // org.eclipse.jdt.core.dom.MethodDeclaration newMethod
        25: .line 188
            aload 13 /* newMethod */
            ifnull 30
        26: .line 189
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fCreated:Ljava/util/List;
            aload 11 /* delegateMethod */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        27: .line 190
            aload 8 /* insertion */
            ifnull 29
            aload 8 /* insertion */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getParent:()Lorg/eclipse/jdt/core/dom/ASTNode;
            aload 6 /* typeDecl */
            if_acmpne 29
        28: .line 191
            aload 7 /* listRewriter */
            aload 13 /* newMethod */
            aload 8 /* insertion */
            aconst_null
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ListRewrite.insertBefore:(Lorg/eclipse/jdt/core/dom/ASTNode;Lorg/eclipse/jdt/core/dom/ASTNode;Lorg/eclipse/text/edits/TextEditGroup;)V
            goto 30
        29: .line 193
      StackMap locals: org.eclipse.jdt.core.dom.IMethodBinding org.eclipse.jdt.core.dom.IVariableBinding org.eclipse.jdt.core.dom.MethodDeclaration
      StackMap stack:
            aload 7 /* listRewriter */
            aload 13 /* newMethod */
            aconst_null
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ListRewrite.insertLast:(Lorg/eclipse/jdt/core/dom/ASTNode;Lorg/eclipse/text/edits/TextEditGroup;)V
        end local 13 // org.eclipse.jdt.core.dom.MethodDeclaration newMethod
        end local 12 // org.eclipse.jdt.core.dom.IVariableBinding field
        end local 11 // org.eclipse.jdt.core.dom.IMethodBinding delegateMethod
        30: .line 184
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 10 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fDelegatesToCreate:[Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation$DelegateEntry;
            arraylength
            if_icmplt 22
        end local 10 // int i
        32: .line 196
            aload 0 /* this */
            new org.eclipse.text.edits.MultiTextEdit
            dup
            invokespecial org.eclipse.text.edits.MultiTextEdit.<init>:()V
            putfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fResultingEdit:Lorg/eclipse/text/edits/TextEdit;
        33: .line 197
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fResultingEdit:Lorg/eclipse/text/edits/TextEdit;
            aload 3 /* astRewrite */
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ASTRewrite.rewriteAST:()Lorg/eclipse/text/edits/TextEdit;
            invokevirtual org.eclipse.text.edits.TextEdit.addChild:(Lorg/eclipse/text/edits/TextEdit;)V
        34: .line 198
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fResultingEdit:Lorg/eclipse/text/edits/TextEdit;
            aload 4 /* importRewrite */
            new org.eclipse.core.runtime.SubProgressMonitor
            dup
            aload 1 /* monitor */
            iconst_1
            invokespecial org.eclipse.core.runtime.SubProgressMonitor.<init>:(Lorg/eclipse/core/runtime/IProgressMonitor;I)V
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ImportRewrite.rewriteImports:(Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/text/edits/TextEdit;
            invokevirtual org.eclipse.text.edits.TextEdit.addChild:(Lorg/eclipse/text/edits/TextEdit;)V
        35: .line 200
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fApply:Z
            ifeq 41
        36: .line 201
            aload 2 /* cu */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fResultingEdit:Lorg/eclipse/text/edits/TextEdit;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation.fSave:Z
            new org.eclipse.core.runtime.SubProgressMonitor
            dup
            aload 1 /* monitor */
            iconst_1
            invokespecial org.eclipse.core.runtime.SubProgressMonitor.<init>:(Lorg/eclipse/core/runtime/IProgressMonitor;I)V
            invokestatic org.eclipse.jdt.internal.corext.util.JavaModelUtil.applyEdit:(Lorg/eclipse/jdt/core/ICompilationUnit;Lorg/eclipse/text/edits/TextEdit;ZLorg/eclipse/core/runtime/IProgressMonitor;)V
        end local 9 // org.eclipse.jdt.internal.corext.codemanipulation.ContextSensitiveImportRewriteContext context
        end local 8 // org.eclipse.jdt.core.dom.ASTNode insertion
        end local 7 // org.eclipse.jdt.core.dom.rewrite.ListRewrite listRewriter
        end local 6 // org.eclipse.jdt.core.dom.ASTNode typeDecl
        end local 5 // org.eclipse.jdt.core.dom.ITypeBinding parentType
        end local 4 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite importRewrite
        end local 3 // org.eclipse.jdt.core.dom.rewrite.ASTRewrite astRewrite
        end local 2 // org.eclipse.jdt.core.ICompilationUnit cu
        37: .line 204
            goto 41
      StackMap locals: org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation org.eclipse.core.runtime.IProgressMonitor
      StackMap stack: java.lang.Throwable
        38: astore 14
        39: .line 205
            aload 1 /* monitor */
            invokeinterface org.eclipse.core.runtime.IProgressMonitor.done:()V
        40: .line 206
            aload 14
            athrow
        41: .line 205
      StackMap locals:
      StackMap stack:
            aload 1 /* monitor */
            invokeinterface org.eclipse.core.runtime.IProgressMonitor.done:()V
        42: .line 207
            return
        end local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 0 // org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   43     0            this  Lorg/eclipse/jdt/internal/corext/codemanipulation/AddDelegateMethodsOperation;
            0   43     1         monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            6   37     2              cu  Lorg/eclipse/jdt/core/ICompilationUnit;
            7   37     3      astRewrite  Lorg/eclipse/jdt/core/dom/rewrite/ASTRewrite;
            8   37     4   importRewrite  Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;
            9   37     5      parentType  Lorg/eclipse/jdt/core/dom/ITypeBinding;
           10   37     6        typeDecl  Lorg/eclipse/jdt/core/dom/ASTNode;
           11   37     7    listRewriter  Lorg/eclipse/jdt/core/dom/rewrite/ListRewrite;
           18   37     8       insertion  Lorg/eclipse/jdt/core/dom/ASTNode;
           19   37     9         context  Lorg/eclipse/jdt/internal/corext/codemanipulation/ContextSensitiveImportRewriteContext;
           21   32    10               i  I
           23   30    11  delegateMethod  Lorg/eclipse/jdt/core/dom/IMethodBinding;
           24   30    12           field  Lorg/eclipse/jdt/core/dom/IVariableBinding;
           25   30    13       newMethod  Lorg/eclipse/jdt/core/dom/MethodDeclaration;
      Exception table:
        from    to  target  type
           2    38      38  any
    Exceptions:
      throws org.eclipse.core.runtime.CoreException
    MethodParameters:
         Name  Flags
      monitor  
}
SourceFile: "AddDelegateMethodsOperation.java"
NestMembers:
  org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation$DelegateEntry
InnerClasses:
  public abstract ImportRewriteContext = org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext of org.eclipse.jdt.core.dom.rewrite.ImportRewrite
  public DelegateEntry = org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation$DelegateEntry of org.eclipse.jdt.internal.corext.codemanipulation.AddDelegateMethodsOperation