public abstract class org.eclipse.jdt.internal.core.Openable extends org.eclipse.jdt.internal.core.JavaElement implements org.eclipse.jdt.core.IOpenable, org.eclipse.jdt.core.IBufferChangedListener
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.eclipse.jdt.internal.core.Openable
  super_class: org.eclipse.jdt.internal.core.JavaElement
{
  protected void <init>(org.eclipse.jdt.internal.core.JavaElement);
    descriptor: (Lorg/eclipse/jdt/internal/core/JavaElement;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // org.eclipse.jdt.internal.core.JavaElement parent
         0: .line 41
            aload 0 /* this */
            aload 1 /* parent */
            invokespecial org.eclipse.jdt.internal.core.JavaElement.<init>:(Lorg/eclipse/jdt/internal/core/JavaElement;)V
         1: .line 42
            return
        end local 1 // org.eclipse.jdt.internal.core.JavaElement parent
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/eclipse/jdt/internal/core/Openable;
            0    2     1  parent  Lorg/eclipse/jdt/internal/core/JavaElement;
    MethodParameters:
        Name  Flags
      parent  

  public void bufferChanged(org.eclipse.jdt.core.BufferChangedEvent);
    descriptor: (Lorg/eclipse/jdt/core/BufferChangedEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // org.eclipse.jdt.core.BufferChangedEvent event
         0: .line 53
            aload 1 /* event */
            invokevirtual org.eclipse.jdt.core.BufferChangedEvent.getBuffer:()Lorg/eclipse/jdt/core/IBuffer;
            invokeinterface org.eclipse.jdt.core.IBuffer.isClosed:()Z
            ifeq 4
         1: .line 54
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.getElementsOutOfSynchWithBuffers:()Ljava/util/HashSet;
            aload 0 /* this */
            invokevirtual java.util.HashSet.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 55
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getBufferManager:()Lorg/eclipse/jdt/internal/core/BufferManager;
            aload 1 /* event */
            invokevirtual org.eclipse.jdt.core.BufferChangedEvent.getBuffer:()Lorg/eclipse/jdt/core/IBuffer;
            invokevirtual org.eclipse.jdt.internal.core.BufferManager.removeBuffer:(Lorg/eclipse/jdt/core/IBuffer;)V
         3: .line 56
            goto 5
         4: .line 57
      StackMap locals:
      StackMap stack:
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.getElementsOutOfSynchWithBuffers:()Ljava/util/HashSet;
            aload 0 /* this */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         5: .line 59
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.jdt.core.BufferChangedEvent event
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/eclipse/jdt/internal/core/Openable;
            0    6     1  event  Lorg/eclipse/jdt/core/BufferChangedEvent;
    MethodParameters:
       Name  Flags
      event  

  protected abstract boolean buildStructure(org.eclipse.jdt.internal.core.OpenableElementInfo, org.eclipse.core.runtime.IProgressMonitor, java.util.Map, org.eclipse.core.resources.IResource);
    descriptor: (Lorg/eclipse/jdt/internal/core/OpenableElementInfo;Lorg/eclipse/core/runtime/IProgressMonitor;Ljava/util/Map;Lorg/eclipse/core/resources/IResource;)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
                    Name  Flags
      info                
      pm                  
      newElements         
      underlyingResource  

  public boolean canBeRemovedFromCache();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 76
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.hasUnsavedChanges:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
         3: .line 77
      StackMap locals:
      StackMap stack: org.eclipse.jdt.core.JavaModelException
            pop
         4: .line 78
            iconst_0
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/eclipse/jdt/internal/core/Openable;
      Exception table:
        from    to  target  type
           0     2       3  Class org.eclipse.jdt.core.JavaModelException

  public boolean canBufferBeRemovedFromCache(org.eclipse.jdt.core.IBuffer);
    descriptor: (Lorg/eclipse/jdt/core/IBuffer;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // org.eclipse.jdt.core.IBuffer buffer
         0: .line 85
            aload 1 /* buffer */
            invokeinterface org.eclipse.jdt.core.IBuffer.hasUnsavedChanges:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.eclipse.jdt.core.IBuffer buffer
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/eclipse/jdt/internal/core/Openable;
            0    3     1  buffer  Lorg/eclipse/jdt/core/IBuffer;
    MethodParameters:
        Name  Flags
      buffer  

  protected void closeBuffer();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 91
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.hasBuffer:()Z
            ifne 1
            return
         1: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getBufferManager:()Lorg/eclipse/jdt/internal/core/BufferManager;
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.BufferManager.getBuffer:(Lorg/eclipse/jdt/core/IOpenable;)Lorg/eclipse/jdt/core/IBuffer;
            astore 1 /* buffer */
        start local 1 // org.eclipse.jdt.core.IBuffer buffer
         2: .line 93
            aload 1 /* buffer */
            ifnull 5
         3: .line 94
            aload 1 /* buffer */
            invokeinterface org.eclipse.jdt.core.IBuffer.close:()V
         4: .line 95
            aload 1 /* buffer */
            aload 0 /* this */
            invokeinterface org.eclipse.jdt.core.IBuffer.removeBufferChangedListener:(Lorg/eclipse/jdt/core/IBufferChangedListener;)V
         5: .line 97
      StackMap locals: org.eclipse.jdt.core.IBuffer
      StackMap stack:
            return
        end local 1 // org.eclipse.jdt.core.IBuffer buffer
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/eclipse/jdt/internal/core/Openable;
            2    6     1  buffer  Lorg/eclipse/jdt/core/IBuffer;

  protected void closing(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // java.lang.Object info
         0: .line 103
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.closeBuffer:()V
         1: .line 104
            return
        end local 1 // java.lang.Object info
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/core/Openable;
            0    2     1  info  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      info  

  protected void codeComplete(org.eclipse.jdt.internal.compiler.env.ICompilationUnit, org.eclipse.jdt.internal.compiler.env.ICompilationUnit, int, org.eclipse.jdt.core.CompletionRequestor, org.eclipse.jdt.core.WorkingCopyOwner, org.eclipse.jdt.core.ITypeRoot, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;ILorg/eclipse/jdt/core/CompletionRequestor;Lorg/eclipse/jdt/core/WorkingCopyOwner;Lorg/eclipse/jdt/core/ITypeRoot;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=13, args_size=8
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // org.eclipse.jdt.internal.compiler.env.ICompilationUnit cu
        start local 2 // org.eclipse.jdt.internal.compiler.env.ICompilationUnit unitToSkip
        start local 3 // int position
        start local 4 // org.eclipse.jdt.core.CompletionRequestor requestor
        start local 5 // org.eclipse.jdt.core.WorkingCopyOwner owner
        start local 6 // org.eclipse.jdt.core.ITypeRoot typeRoot
        start local 7 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 112
            aload 4 /* requestor */
            ifnonnull 2
         1: .line 113
            new java.lang.IllegalArgumentException
            dup
            ldc "Completion requestor cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 115
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jdt.internal.codeassist.CompletionEngine.PERF:Z
            ifeq 4
         3: .line 116
            ldc "org.eclipse.jdt.core/perf/completion"
            aload 0 /* this */
            invokestatic org.eclipse.core.runtime.PerformanceStats.getStats:(Ljava/lang/String;Ljava/lang/Object;)Lorg/eclipse/core/runtime/PerformanceStats;
            goto 5
         4: .line 117
      StackMap locals:
      StackMap stack:
            aconst_null
         5: .line 115
      StackMap locals:
      StackMap stack: org.eclipse.core.runtime.PerformanceStats
            astore 8 /* performanceStats */
        start local 8 // org.eclipse.core.runtime.PerformanceStats performanceStats
         6: .line 118
            aload 8 /* performanceStats */
            ifnull 8
         7: .line 119
            aload 8 /* performanceStats */
            new java.lang.StringBuilder
            dup
            new java.lang.String
            dup
            aload 1 /* cu */
            invokeinterface org.eclipse.jdt.internal.compiler.env.ICompilationUnit.getFileName:()[C
            invokespecial java.lang.String.<init>:([C)V
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " at "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* position */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.eclipse.core.runtime.PerformanceStats.startRun:(Ljava/lang/String;)V
         8: .line 121
      StackMap locals: org.eclipse.core.runtime.PerformanceStats
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getBuffer:()Lorg/eclipse/jdt/core/IBuffer;
            astore 9 /* buffer */
        start local 9 // org.eclipse.jdt.core.IBuffer buffer
         9: .line 122
            aload 9 /* buffer */
            ifnonnull 11
        10: .line 123
            return
        11: .line 125
      StackMap locals: org.eclipse.jdt.core.IBuffer
      StackMap stack:
            iload 3 /* position */
            iconst_m1
            if_icmplt 12
            iload 3 /* position */
            aload 9 /* buffer */
            invokeinterface org.eclipse.jdt.core.IBuffer.getLength:()I
            if_icmple 13
        12: .line 126
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.core.JavaModelException
            dup
            new org.eclipse.jdt.internal.core.JavaModelStatus
            dup
            sipush 980
            invokespecial org.eclipse.jdt.internal.core.JavaModelStatus.<init>:(I)V
            invokespecial org.eclipse.jdt.core.JavaModelException.<init>:(Lorg/eclipse/jdt/core/IJavaModelStatus;)V
            athrow
        13: .line 128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getJavaProject:()Lorg/eclipse/jdt/core/IJavaProject;
            checkcast org.eclipse.jdt.internal.core.JavaProject
            astore 10 /* project */
        start local 10 // org.eclipse.jdt.internal.core.JavaProject project
        14: .line 129
            aload 10 /* project */
            aload 5 /* owner */
            aload 4 /* requestor */
            invokevirtual org.eclipse.jdt.core.CompletionRequestor.isTestCodeExcluded:()Z
            invokevirtual org.eclipse.jdt.internal.core.JavaProject.newSearchableNameEnvironment:(Lorg/eclipse/jdt/core/WorkingCopyOwner;Z)Lorg/eclipse/jdt/internal/core/SearchableEnvironment;
            astore 11 /* environment */
        start local 11 // org.eclipse.jdt.internal.core.SearchableEnvironment environment
        15: .line 132
            aload 11 /* environment */
            aload 2 /* unitToSkip */
            putfield org.eclipse.jdt.internal.core.SearchableEnvironment.unitToSkip:Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;
        16: .line 135
            new org.eclipse.jdt.internal.codeassist.CompletionEngine
            dup
            aload 11 /* environment */
            aload 4 /* requestor */
            aload 10 /* project */
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.JavaProject.getOptions:(Z)Ljava/util/Map;
            aload 10 /* project */
            aload 5 /* owner */
            aload 7 /* monitor */
            invokespecial org.eclipse.jdt.internal.codeassist.CompletionEngine.<init>:(Lorg/eclipse/jdt/internal/core/SearchableEnvironment;Lorg/eclipse/jdt/core/CompletionRequestor;Ljava/util/Map;Lorg/eclipse/jdt/core/IJavaProject;Lorg/eclipse/jdt/core/WorkingCopyOwner;Lorg/eclipse/core/runtime/IProgressMonitor;)V
            astore 12 /* engine */
        start local 12 // org.eclipse.jdt.internal.codeassist.CompletionEngine engine
        17: .line 136
            aload 12 /* engine */
            aload 1 /* cu */
            iload 3 /* position */
            iconst_0
            aload 6 /* typeRoot */
            invokevirtual org.eclipse.jdt.internal.codeassist.CompletionEngine.complete:(Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;IILorg/eclipse/jdt/core/ITypeRoot;)V
        18: .line 137
            aload 8 /* performanceStats */
            ifnull 20
        19: .line 138
            aload 8 /* performanceStats */
            invokevirtual org.eclipse.core.runtime.PerformanceStats.endRun:()V
        20: .line 140
      StackMap locals: org.eclipse.jdt.internal.core.JavaProject org.eclipse.jdt.internal.core.SearchableEnvironment org.eclipse.jdt.internal.codeassist.CompletionEngine
      StackMap stack:
            getstatic org.eclipse.jdt.internal.core.NameLookup.VERBOSE:Z
            ifeq 23
        21: .line 141
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " TIME SPENT in NameLoopkup#seekTypesInSourcePackage: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 11 /* environment */
            getfield org.eclipse.jdt.internal.core.SearchableEnvironment.nameLookup:Lorg/eclipse/jdt/internal/core/NameLookup;
            getfield org.eclipse.jdt.internal.core.NameLookup.timeSpentInSeekTypesInSourcePackage:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        22: .line 142
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " TIME SPENT in NameLoopkup#seekTypesInBinaryPackage: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 11 /* environment */
            getfield org.eclipse.jdt.internal.core.SearchableEnvironment.nameLookup:Lorg/eclipse/jdt/internal/core/NameLookup;
            getfield org.eclipse.jdt.internal.core.NameLookup.timeSpentInSeekTypesInBinaryPackage:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        23: .line 144
      StackMap locals:
      StackMap stack:
            return
        end local 12 // org.eclipse.jdt.internal.codeassist.CompletionEngine engine
        end local 11 // org.eclipse.jdt.internal.core.SearchableEnvironment environment
        end local 10 // org.eclipse.jdt.internal.core.JavaProject project
        end local 9 // org.eclipse.jdt.core.IBuffer buffer
        end local 8 // org.eclipse.core.runtime.PerformanceStats performanceStats
        end local 7 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 6 // org.eclipse.jdt.core.ITypeRoot typeRoot
        end local 5 // org.eclipse.jdt.core.WorkingCopyOwner owner
        end local 4 // org.eclipse.jdt.core.CompletionRequestor requestor
        end local 3 // int position
        end local 2 // org.eclipse.jdt.internal.compiler.env.ICompilationUnit unitToSkip
        end local 1 // org.eclipse.jdt.internal.compiler.env.ICompilationUnit cu
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   24     0              this  Lorg/eclipse/jdt/internal/core/Openable;
            0   24     1                cu  Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;
            0   24     2        unitToSkip  Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;
            0   24     3          position  I
            0   24     4         requestor  Lorg/eclipse/jdt/core/CompletionRequestor;
            0   24     5             owner  Lorg/eclipse/jdt/core/WorkingCopyOwner;
            0   24     6          typeRoot  Lorg/eclipse/jdt/core/ITypeRoot;
            0   24     7           monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            6   24     8  performanceStats  Lorg/eclipse/core/runtime/PerformanceStats;
            9   24     9            buffer  Lorg/eclipse/jdt/core/IBuffer;
           14   24    10           project  Lorg/eclipse/jdt/internal/core/JavaProject;
           15   24    11       environment  Lorg/eclipse/jdt/internal/core/SearchableEnvironment;
           17   24    12            engine  Lorg/eclipse/jdt/internal/codeassist/CompletionEngine;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
            Name  Flags
      cu          
      unitToSkip  
      position    
      requestor   
      owner       
      typeRoot    
      monitor     

  protected org.eclipse.jdt.core.IJavaElement[] codeSelect(org.eclipse.jdt.internal.compiler.env.ICompilationUnit, int, int, org.eclipse.jdt.core.WorkingCopyOwner);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;IILorg/eclipse/jdt/core/WorkingCopyOwner;)[Lorg/eclipse/jdt/core/IJavaElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=12, args_size=5
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // org.eclipse.jdt.internal.compiler.env.ICompilationUnit cu
        start local 2 // int offset
        start local 3 // int length
        start local 4 // org.eclipse.jdt.core.WorkingCopyOwner owner
         0: .line 146
            getstatic org.eclipse.jdt.internal.codeassist.SelectionEngine.PERF:Z
            ifeq 2
         1: .line 147
            ldc "org.eclipse.jdt.core/perf/selection"
            aload 0 /* this */
            invokestatic org.eclipse.core.runtime.PerformanceStats.getStats:(Ljava/lang/String;Ljava/lang/Object;)Lorg/eclipse/core/runtime/PerformanceStats;
            goto 3
         2: .line 148
      StackMap locals:
      StackMap stack:
            aconst_null
         3: .line 146
      StackMap locals:
      StackMap stack: org.eclipse.core.runtime.PerformanceStats
            astore 5 /* performanceStats */
        start local 5 // org.eclipse.core.runtime.PerformanceStats performanceStats
         4: .line 149
            aload 5 /* performanceStats */
            ifnull 6
         5: .line 150
            aload 5 /* performanceStats */
            new java.lang.StringBuilder
            dup
            new java.lang.String
            dup
            aload 1 /* cu */
            invokeinterface org.eclipse.jdt.internal.compiler.env.ICompilationUnit.getFileName:()[C
            invokespecial java.lang.String.<init>:([C)V
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " at ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* offset */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* length */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.eclipse.core.runtime.PerformanceStats.startRun:(Ljava/lang/String;)V
         6: .line 153
      StackMap locals: org.eclipse.core.runtime.PerformanceStats
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getJavaProject:()Lorg/eclipse/jdt/core/IJavaProject;
            checkcast org.eclipse.jdt.internal.core.JavaProject
            astore 6 /* project */
        start local 6 // org.eclipse.jdt.internal.core.JavaProject project
         7: .line 154
            aload 6 /* project */
            aload 4 /* owner */
            invokevirtual org.eclipse.jdt.internal.core.JavaProject.newSearchableNameEnvironment:(Lorg/eclipse/jdt/core/WorkingCopyOwner;)Lorg/eclipse/jdt/internal/core/SearchableEnvironment;
            astore 7 /* environment */
        start local 7 // org.eclipse.jdt.internal.core.SearchableEnvironment environment
         8: .line 156
            new org.eclipse.jdt.internal.core.SelectionRequestor
            dup
            aload 7 /* environment */
            getfield org.eclipse.jdt.internal.core.SearchableEnvironment.nameLookup:Lorg/eclipse/jdt/internal/core/NameLookup;
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.core.SelectionRequestor.<init>:(Lorg/eclipse/jdt/internal/core/NameLookup;Lorg/eclipse/jdt/internal/core/Openable;)V
            astore 8 /* requestor */
        start local 8 // org.eclipse.jdt.internal.core.SelectionRequestor requestor
         9: .line 157
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getBuffer:()Lorg/eclipse/jdt/core/IBuffer;
            astore 9 /* buffer */
        start local 9 // org.eclipse.jdt.core.IBuffer buffer
        10: .line 158
            aload 9 /* buffer */
            ifnonnull 12
        11: .line 159
            aload 8 /* requestor */
            invokevirtual org.eclipse.jdt.internal.core.SelectionRequestor.getElements:()[Lorg/eclipse/jdt/core/IJavaElement;
            areturn
        12: .line 161
      StackMap locals: org.eclipse.jdt.internal.core.Openable org.eclipse.jdt.internal.compiler.env.ICompilationUnit int int org.eclipse.jdt.core.WorkingCopyOwner org.eclipse.core.runtime.PerformanceStats org.eclipse.jdt.internal.core.JavaProject org.eclipse.jdt.internal.core.SearchableEnvironment org.eclipse.jdt.internal.core.SelectionRequestor org.eclipse.jdt.core.IBuffer
      StackMap stack:
            aload 9 /* buffer */
            invokeinterface org.eclipse.jdt.core.IBuffer.getLength:()I
            istore 10 /* end */
        start local 10 // int end
        13: .line 162
            iload 2 /* offset */
            iflt 14
            iload 3 /* length */
            iflt 14
            iload 2 /* offset */
            iload 3 /* length */
            iadd
            iload 10 /* end */
            if_icmple 15
        14: .line 163
      StackMap locals: int
      StackMap stack:
            new org.eclipse.jdt.core.JavaModelException
            dup
            new org.eclipse.jdt.internal.core.JavaModelStatus
            dup
            sipush 980
            invokespecial org.eclipse.jdt.internal.core.JavaModelStatus.<init>:(I)V
            invokespecial org.eclipse.jdt.core.JavaModelException.<init>:(Lorg/eclipse/jdt/core/IJavaModelStatus;)V
            athrow
        15: .line 167
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.internal.codeassist.SelectionEngine
            dup
            aload 7 /* environment */
            aload 8 /* requestor */
            aload 6 /* project */
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.JavaProject.getOptions:(Z)Ljava/util/Map;
            aload 4 /* owner */
            invokespecial org.eclipse.jdt.internal.codeassist.SelectionEngine.<init>:(Lorg/eclipse/jdt/internal/core/SearchableEnvironment;Lorg/eclipse/jdt/internal/codeassist/ISelectionRequestor;Ljava/util/Map;Lorg/eclipse/jdt/core/WorkingCopyOwner;)V
            astore 11 /* engine */
        start local 11 // org.eclipse.jdt.internal.codeassist.SelectionEngine engine
        16: .line 168
            aload 11 /* engine */
            aload 1 /* cu */
            iload 2 /* offset */
            iload 2 /* offset */
            iload 3 /* length */
            iadd
            iconst_1
            isub
            invokevirtual org.eclipse.jdt.internal.codeassist.SelectionEngine.select:(Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;II)V
        17: .line 170
            aload 5 /* performanceStats */
            ifnull 19
        18: .line 171
            aload 5 /* performanceStats */
            invokevirtual org.eclipse.core.runtime.PerformanceStats.endRun:()V
        19: .line 173
      StackMap locals: org.eclipse.jdt.internal.codeassist.SelectionEngine
      StackMap stack:
            getstatic org.eclipse.jdt.internal.core.NameLookup.VERBOSE:Z
            ifeq 22
        20: .line 174
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " TIME SPENT in NameLoopkup#seekTypesInSourcePackage: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* environment */
            getfield org.eclipse.jdt.internal.core.SearchableEnvironment.nameLookup:Lorg/eclipse/jdt/internal/core/NameLookup;
            getfield org.eclipse.jdt.internal.core.NameLookup.timeSpentInSeekTypesInSourcePackage:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 175
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " TIME SPENT in NameLoopkup#seekTypesInBinaryPackage: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* environment */
            getfield org.eclipse.jdt.internal.core.SearchableEnvironment.nameLookup:Lorg/eclipse/jdt/internal/core/NameLookup;
            getfield org.eclipse.jdt.internal.core.NameLookup.timeSpentInSeekTypesInBinaryPackage:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        22: .line 177
      StackMap locals:
      StackMap stack:
            aload 8 /* requestor */
            invokevirtual org.eclipse.jdt.internal.core.SelectionRequestor.getElements:()[Lorg/eclipse/jdt/core/IJavaElement;
            areturn
        end local 11 // org.eclipse.jdt.internal.codeassist.SelectionEngine engine
        end local 10 // int end
        end local 9 // org.eclipse.jdt.core.IBuffer buffer
        end local 8 // org.eclipse.jdt.internal.core.SelectionRequestor requestor
        end local 7 // org.eclipse.jdt.internal.core.SearchableEnvironment environment
        end local 6 // org.eclipse.jdt.internal.core.JavaProject project
        end local 5 // org.eclipse.core.runtime.PerformanceStats performanceStats
        end local 4 // org.eclipse.jdt.core.WorkingCopyOwner owner
        end local 3 // int length
        end local 2 // int offset
        end local 1 // org.eclipse.jdt.internal.compiler.env.ICompilationUnit cu
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   23     0              this  Lorg/eclipse/jdt/internal/core/Openable;
            0   23     1                cu  Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;
            0   23     2            offset  I
            0   23     3            length  I
            0   23     4             owner  Lorg/eclipse/jdt/core/WorkingCopyOwner;
            4   23     5  performanceStats  Lorg/eclipse/core/runtime/PerformanceStats;
            7   23     6           project  Lorg/eclipse/jdt/internal/core/JavaProject;
            8   23     7       environment  Lorg/eclipse/jdt/internal/core/SearchableEnvironment;
            9   23     8         requestor  Lorg/eclipse/jdt/internal/core/SelectionRequestor;
           10   23     9            buffer  Lorg/eclipse/jdt/core/IBuffer;
           13   23    10               end  I
           16   23    11            engine  Lorg/eclipse/jdt/internal/codeassist/SelectionEngine;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
        Name  Flags
      cu      
      offset  
      length  
      owner   

  protected java.lang.Object createElementInfo();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 184
            new org.eclipse.jdt.internal.core.OpenableElementInfo
            dup
            invokespecial org.eclipse.jdt.internal.core.OpenableElementInfo.<init>:()V
            areturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/Openable;

  public boolean exists();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 191
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.getInfo:(Lorg/eclipse/jdt/core/IJavaElement;)Ljava/lang/Object;
            ifnull 2
         1: .line 192
            iconst_1
            ireturn
         2: .line 193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getElementType:()I
            tableswitch { // 4 - 6
                    4: 3
                    5: 12
                    6: 10
              default: 12
          }
         3: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getPackageFragmentRoot:()Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;
            astore 1 /* root */
        start local 1 // org.eclipse.jdt.internal.core.PackageFragmentRoot root
         4: .line 196
            aload 1 /* root */
            invokevirtual org.eclipse.jdt.internal.core.PackageFragmentRoot.isArchive:()Z
            ifeq 12
         5: .line 200
            aload 1 /* root */
            invokevirtual org.eclipse.jdt.internal.core.PackageFragmentRoot.getElementInfo:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo
            astore 2 /* rootInfo */
        start local 2 // org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo rootInfo
         6: .line 201
            goto 9
        end local 2 // org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo rootInfo
      StackMap locals: org.eclipse.jdt.internal.core.Openable org.eclipse.jdt.internal.core.PackageFragmentRoot
      StackMap stack: org.eclipse.jdt.core.JavaModelException
         7: pop
         8: .line 202
            iconst_0
            ireturn
        start local 2 // org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo rootInfo
         9: .line 204
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo
      StackMap stack:
            aload 2 /* rootInfo */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo.rawPackageInfo:Lorg/eclipse/jdt/internal/core/util/HashtableOfArrayToObject;
            aload 0 /* this */
            checkcast org.eclipse.jdt.internal.core.PackageFragment
            getfield org.eclipse.jdt.internal.core.PackageFragment.names:[Ljava/lang/String;
            invokevirtual org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject.containsKey:([Ljava/lang/Object;)Z
            ireturn
        end local 2 // org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo rootInfo
        end local 1 // org.eclipse.jdt.internal.core.PackageFragmentRoot root
        10: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getPackageFragmentRoot:()Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;
            invokevirtual org.eclipse.jdt.internal.core.PackageFragmentRoot.isArchive:()Z
            ifeq 12
        11: .line 210
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.core.JavaElement.exists:()Z
            ireturn
        12: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.resource:()Lorg/eclipse/core/resources/IResource;
            invokevirtual org.eclipse.jdt.internal.core.Openable.validateExistence:(Lorg/eclipse/core/resources/IResource;)Lorg/eclipse/core/runtime/IStatus;
            invokeinterface org.eclipse.core.runtime.IStatus.isOK:()Z
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lorg/eclipse/jdt/internal/core/Openable;
            4   10     1      root  Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;
            6    7     2  rootInfo  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRootInfo;
            9   10     2  rootInfo  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRootInfo;
      Exception table:
        from    to  target  type
           5     6       7  Class org.eclipse.jdt.core.JavaModelException

  public java.lang.String findRecommendedLineSeparator();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 218
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getBuffer:()Lorg/eclipse/jdt/core/IBuffer;
            astore 1 /* buffer */
        start local 1 // org.eclipse.jdt.core.IBuffer buffer
         1: .line 219
            aload 1 /* buffer */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: org.eclipse.jdt.core.IBuffer
      StackMap stack:
         2: aload 1 /* buffer */
            invokeinterface org.eclipse.jdt.core.IBuffer.getContents:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         3: astore 2 /* source */
        start local 2 // java.lang.String source
         4: .line 220
            aload 2 /* source */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getJavaProject:()Lorg/eclipse/jdt/core/IJavaProject;
            invokestatic org.eclipse.jdt.internal.core.util.Util.getLineSeparator:(Ljava/lang/String;Lorg/eclipse/jdt/core/IJavaProject;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String source
        end local 1 // org.eclipse.jdt.core.IBuffer buffer
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/eclipse/jdt/internal/core/Openable;
            1    5     1  buffer  Lorg/eclipse/jdt/core/IBuffer;
            4    5     2  source  Ljava/lang/String;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException

  protected void generateInfos(java.lang.Object, java.util.HashMap, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Ljava/lang/Object;Ljava/util/HashMap;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // java.lang.Object info
        start local 2 // java.util.HashMap newElements
        start local 3 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 225
            getstatic org.eclipse.jdt.internal.core.JavaModelCache.VERBOSE:Z
            ifeq 14
         1: .line 227
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getElementType:()I
            tableswitch { // 2 - 6
                    2: 2
                    3: 4
                    4: 6
                    5: 10
                    6: 8
              default: 12
          }
         2: .line 229
      StackMap locals:
      StackMap stack:
            ldc "project"
            astore 4 /* element */
        start local 4 // java.lang.String element
         3: .line 230
            goto 13
        end local 4 // java.lang.String element
         4: .line 232
      StackMap locals:
      StackMap stack:
            ldc "root"
            astore 4 /* element */
        start local 4 // java.lang.String element
         5: .line 233
            goto 13
        end local 4 // java.lang.String element
         6: .line 235
      StackMap locals:
      StackMap stack:
            ldc "package"
            astore 4 /* element */
        start local 4 // java.lang.String element
         7: .line 236
            goto 13
        end local 4 // java.lang.String element
         8: .line 238
      StackMap locals:
      StackMap stack:
            ldc "class file"
            astore 4 /* element */
        start local 4 // java.lang.String element
         9: .line 239
            goto 13
        end local 4 // java.lang.String element
        10: .line 241
      StackMap locals:
      StackMap stack:
            ldc "compilation unit"
            astore 4 /* element */
        start local 4 // java.lang.String element
        11: .line 242
            goto 13
        end local 4 // java.lang.String element
        12: .line 244
      StackMap locals:
      StackMap stack:
            ldc "element"
            astore 4 /* element */
        start local 4 // java.lang.String element
        13: .line 246
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " OPENING "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* element */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.toStringWithAncestors:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 4 // java.lang.String element
        14: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* newElements */
            aload 3 /* monitor */
            invokevirtual org.eclipse.jdt.internal.core.Openable.openAncestors:(Ljava/util/HashMap;Lorg/eclipse/core/runtime/IProgressMonitor;)V
        15: .line 253
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.resource:()Lorg/eclipse/core/resources/IResource;
            astore 4 /* underlResource */
        start local 4 // org.eclipse.core.resources.IResource underlResource
        16: .line 254
            aload 0 /* this */
            aload 4 /* underlResource */
            invokevirtual org.eclipse.jdt.internal.core.Openable.validateExistence:(Lorg/eclipse/core/resources/IResource;)Lorg/eclipse/core/runtime/IStatus;
            astore 5 /* status */
        start local 5 // org.eclipse.core.runtime.IStatus status
        17: .line 255
            aload 5 /* status */
            invokeinterface org.eclipse.core.runtime.IStatus.isOK:()Z
            ifne 19
            aload 0 /* this */
            aload 5 /* status */
            invokevirtual org.eclipse.jdt.internal.core.Openable.ignoreErrorStatus:(Lorg/eclipse/core/runtime/IStatus;)Z
            ifne 19
        18: .line 256
            aload 0 /* this */
            aload 5 /* status */
            invokevirtual org.eclipse.jdt.internal.core.Openable.newJavaModelException:(Lorg/eclipse/core/runtime/IStatus;)Lorg/eclipse/jdt/core/JavaModelException;
            athrow
        19: .line 258
      StackMap locals: org.eclipse.core.resources.IResource org.eclipse.core.runtime.IStatus
      StackMap stack:
            aload 3 /* monitor */
            ifnull 21
            aload 3 /* monitor */
            invokeinterface org.eclipse.core.runtime.IProgressMonitor.isCanceled:()Z
            ifeq 21
        20: .line 259
            new org.eclipse.core.runtime.OperationCanceledException
            dup
            invokespecial org.eclipse.core.runtime.OperationCanceledException.<init>:()V
            athrow
        21: .line 263
      StackMap locals:
      StackMap stack:
            aload 2 /* newElements */
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 267
            aload 1 /* info */
            checkcast org.eclipse.jdt.internal.core.OpenableElementInfo
            astore 6 /* openableElementInfo */
        start local 6 // org.eclipse.jdt.internal.core.OpenableElementInfo openableElementInfo
        23: .line 268
            aload 0 /* this */
            aload 6 /* openableElementInfo */
            aload 3 /* monitor */
            aload 2 /* newElements */
            aload 4 /* underlResource */
            invokevirtual org.eclipse.jdt.internal.core.Openable.buildStructure:(Lorg/eclipse/jdt/internal/core/OpenableElementInfo;Lorg/eclipse/core/runtime/IProgressMonitor;Ljava/util/Map;Lorg/eclipse/core/resources/IResource;)Z
            istore 7 /* isStructureKnown */
        start local 7 // boolean isStructureKnown
        24: .line 269
            aload 6 /* openableElementInfo */
            iload 7 /* isStructureKnown */
            invokevirtual org.eclipse.jdt.internal.core.OpenableElementInfo.setIsStructureKnown:(Z)V
        end local 7 // boolean isStructureKnown
        end local 6 // org.eclipse.jdt.internal.core.OpenableElementInfo openableElementInfo
        25: .line 270
            goto 29
      StackMap locals:
      StackMap stack: org.eclipse.jdt.core.JavaModelException
        26: astore 6 /* e */
        start local 6 // org.eclipse.jdt.core.JavaModelException e
        27: .line 271
            aload 2 /* newElements */
            aload 0 /* this */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 272
            aload 6 /* e */
            athrow
        end local 6 // org.eclipse.jdt.core.JavaModelException e
        29: .line 276
      StackMap locals:
      StackMap stack:
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.getElementsOutOfSynchWithBuffers:()Ljava/util/HashSet;
            aload 0 /* this */
            invokevirtual java.util.HashSet.remove:(Ljava/lang/Object;)Z
            pop
        30: .line 278
            getstatic org.eclipse.jdt.internal.core.JavaModelCache.VERBOSE:Z
            ifeq 32
        31: .line 279
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            ldc "-> "
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.cacheToString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        32: .line 281
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.eclipse.core.runtime.IStatus status
        end local 4 // org.eclipse.core.resources.IResource underlResource
        end local 3 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 2 // java.util.HashMap newElements
        end local 1 // java.lang.Object info
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   33     0                 this  Lorg/eclipse/jdt/internal/core/Openable;
            0   33     1                 info  Ljava/lang/Object;
            0   33     2          newElements  Ljava/util/HashMap;
            0   33     3              monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            3    4     4              element  Ljava/lang/String;
            5    6     4              element  Ljava/lang/String;
            7    8     4              element  Ljava/lang/String;
            9   10     4              element  Ljava/lang/String;
           11   12     4              element  Ljava/lang/String;
           13   14     4              element  Ljava/lang/String;
           16   33     4       underlResource  Lorg/eclipse/core/resources/IResource;
           17   33     5               status  Lorg/eclipse/core/runtime/IStatus;
           23   25     6  openableElementInfo  Lorg/eclipse/jdt/internal/core/OpenableElementInfo;
           24   25     7     isStructureKnown  Z
           27   29     6                    e  Lorg/eclipse/jdt/core/JavaModelException;
      Exception table:
        from    to  target  type
          22    25      26  Class org.eclipse.jdt.core.JavaModelException
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
             Name  Flags
      info         
      newElements  
      monitor      

  protected boolean ignoreErrorStatus(org.eclipse.core.runtime.IStatus);
    descriptor: (Lorg/eclipse/core/runtime/IStatus;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // org.eclipse.core.runtime.IStatus status
         0: .line 283
            iconst_0
            ireturn
        end local 1 // org.eclipse.core.runtime.IStatus status
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/eclipse/jdt/internal/core/Openable;
            0    1     1  status  Lorg/eclipse/core/runtime/IStatus;
    MethodParameters:
        Name  Flags
      status  

  public org.eclipse.jdt.core.IBuffer getBuffer();
    descriptor: ()Lorg/eclipse/jdt/core/IBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 296
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.hasBuffer:()Z
            ifeq 8
         1: .line 298
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getElementInfo:()Ljava/lang/Object;
            astore 1 /* info */
        start local 1 // java.lang.Object info
         2: .line 299
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getBufferManager:()Lorg/eclipse/jdt/internal/core/BufferManager;
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.BufferManager.getBuffer:(Lorg/eclipse/jdt/core/IOpenable;)Lorg/eclipse/jdt/core/IBuffer;
            astore 2 /* buffer */
        start local 2 // org.eclipse.jdt.core.IBuffer buffer
         3: .line 300
            aload 2 /* buffer */
            ifnonnull 5
         4: .line 302
            aload 0 /* this */
            aconst_null
            aload 1 /* info */
            invokevirtual org.eclipse.jdt.internal.core.Openable.openBuffer:(Lorg/eclipse/core/runtime/IProgressMonitor;Ljava/lang/Object;)Lorg/eclipse/jdt/core/IBuffer;
            astore 2 /* buffer */
         5: .line 304
      StackMap locals: java.lang.Object org.eclipse.jdt.core.IBuffer
      StackMap stack:
            aload 2 /* buffer */
            instanceof org.eclipse.jdt.internal.core.NullBuffer
            ifeq 7
         6: .line 305
            aconst_null
            areturn
         7: .line 307
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
            areturn
        end local 2 // org.eclipse.jdt.core.IBuffer buffer
        end local 1 // java.lang.Object info
         8: .line 309
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/eclipse/jdt/internal/core/Openable;
            2    8     1    info  Ljava/lang/Object;
            3    8     2  buffer  Lorg/eclipse/jdt/core/IBuffer;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException

  public org.eclipse.jdt.core.IBufferFactory getBufferFactory();
    descriptor: ()Lorg/eclipse/jdt/core/IBufferFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 317
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getBufferManager:()Lorg/eclipse/jdt/internal/core/BufferManager;
            invokevirtual org.eclipse.jdt.internal.core.BufferManager.getDefaultBufferFactory:()Lorg/eclipse/jdt/core/IBufferFactory;
            areturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/Openable;

  protected org.eclipse.jdt.internal.core.BufferManager getBufferManager();
    descriptor: ()Lorg/eclipse/jdt/internal/core/BufferManager;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 324
            invokestatic org.eclipse.jdt.internal.core.BufferManager.getDefaultBufferManager:()Lorg/eclipse/jdt/internal/core/BufferManager;
            areturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/Openable;

  public org.eclipse.core.resources.IResource getCorrespondingResource();
    descriptor: ()Lorg/eclipse/core/resources/IResource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 334
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getUnderlyingResource:()Lorg/eclipse/core/resources/IResource;
            areturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/Openable;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException

  public org.eclipse.jdt.core.IOpenable getOpenable();
    descriptor: ()Lorg/eclipse/jdt/core/IOpenable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 341
            aload 0 /* this */
            areturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/Openable;

  public org.eclipse.core.resources.IResource getUnderlyingResource();
    descriptor: ()Lorg/eclipse/core/resources/IResource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 351
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.Openable.parent:Lorg/eclipse/jdt/internal/core/JavaElement;
            invokevirtual org.eclipse.jdt.internal.core.JavaElement.getUnderlyingResource:()Lorg/eclipse/core/resources/IResource;
            astore 1 /* parentResource */
        start local 1 // org.eclipse.core.resources.IResource parentResource
         1: .line 352
            aload 1 /* parentResource */
            ifnonnull 3
         2: .line 353
            aconst_null
            areturn
         3: .line 355
      StackMap locals: org.eclipse.core.resources.IResource
      StackMap stack:
            aload 1 /* parentResource */
            invokeinterface org.eclipse.core.resources.IResource.getType:()I
            istore 2 /* type */
        start local 2 // int type
         4: .line 356
            iload 2 /* type */
            iconst_2
            if_icmpeq 5
            iload 2 /* type */
            iconst_4
            if_icmpne 10
         5: .line 357
      StackMap locals: int
      StackMap stack:
            aload 1 /* parentResource */
            checkcast org.eclipse.core.resources.IContainer
            astore 3 /* folder */
        start local 3 // org.eclipse.core.resources.IContainer folder
         6: .line 358
            aload 3 /* folder */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getElementName:()Ljava/lang/String;
            invokeinterface org.eclipse.core.resources.IContainer.findMember:(Ljava/lang/String;)Lorg/eclipse/core/resources/IResource;
            astore 4 /* resource */
        start local 4 // org.eclipse.core.resources.IResource resource
         7: .line 359
            aload 4 /* resource */
            ifnonnull 9
         8: .line 360
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.newNotPresentException:()Lorg/eclipse/jdt/core/JavaModelException;
            athrow
         9: .line 362
      StackMap locals: org.eclipse.core.resources.IContainer org.eclipse.core.resources.IResource
      StackMap stack:
            aload 4 /* resource */
            areturn
        end local 4 // org.eclipse.core.resources.IResource resource
        end local 3 // org.eclipse.core.resources.IContainer folder
        10: .line 365
      StackMap locals:
      StackMap stack:
            aload 1 /* parentResource */
            areturn
        end local 2 // int type
        end local 1 // org.eclipse.core.resources.IResource parentResource
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lorg/eclipse/jdt/internal/core/Openable;
            1   11     1  parentResource  Lorg/eclipse/core/resources/IResource;
            4   11     2            type  I
            6   10     3          folder  Lorg/eclipse/core/resources/IContainer;
            7   10     4        resource  Lorg/eclipse/core/resources/IResource;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException

  protected boolean hasBuffer();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 374
            iconst_0
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/Openable;

  public boolean hasUnsavedChanges();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 382
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.isReadOnly:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.isOpen:()Z
            ifne 2
         1: .line 383
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 385
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getBuffer:()Lorg/eclipse/jdt/core/IBuffer;
            astore 1 /* buf */
        start local 1 // org.eclipse.jdt.core.IBuffer buf
         3: .line 386
            aload 1 /* buf */
            ifnull 5
            aload 1 /* buf */
            invokeinterface org.eclipse.jdt.core.IBuffer.hasUnsavedChanges:()Z
            ifeq 5
         4: .line 387
            iconst_1
            ireturn
         5: .line 391
      StackMap locals: org.eclipse.jdt.core.IBuffer
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getElementType:()I
            istore 2 /* elementType */
        start local 2 // int elementType
         6: .line 392
            iload 2 /* elementType */
            iconst_4
            if_icmpeq 10
         7: .line 393
            iload 2 /* elementType */
            iconst_3
            if_icmpeq 10
         8: .line 394
            iload 2 /* elementType */
            iconst_2
            if_icmpeq 10
         9: .line 395
            iload 2 /* elementType */
            iconst_1
            if_icmpne 18
        10: .line 396
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getBufferManager:()Lorg/eclipse/jdt/internal/core/BufferManager;
            invokevirtual org.eclipse.jdt.internal.core.BufferManager.getOpenBuffers:()Ljava/util/Enumeration;
            astore 3 /* openBuffers */
        start local 3 // java.util.Enumeration openBuffers
        11: .line 397
            goto 17
        12: .line 398
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 3 /* openBuffers */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.IBuffer
            astore 4 /* buffer */
        start local 4 // org.eclipse.jdt.core.IBuffer buffer
        13: .line 399
            aload 4 /* buffer */
            invokeinterface org.eclipse.jdt.core.IBuffer.hasUnsavedChanges:()Z
            ifeq 17
        14: .line 400
            aload 4 /* buffer */
            invokeinterface org.eclipse.jdt.core.IBuffer.getOwner:()Lorg/eclipse/jdt/core/IOpenable;
            checkcast org.eclipse.jdt.core.IJavaElement
            astore 5 /* owner */
        start local 5 // org.eclipse.jdt.core.IJavaElement owner
        15: .line 401
            aload 0 /* this */
            aload 5 /* owner */
            invokevirtual org.eclipse.jdt.internal.core.Openable.isAncestorOf:(Lorg/eclipse/jdt/core/IJavaElement;)Z
            ifeq 17
        16: .line 402
            iconst_1
            ireturn
        end local 5 // org.eclipse.jdt.core.IJavaElement owner
        end local 4 // org.eclipse.jdt.core.IBuffer buffer
        17: .line 397
      StackMap locals:
      StackMap stack:
            aload 3 /* openBuffers */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 12
        end local 3 // java.util.Enumeration openBuffers
        18: .line 408
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // int elementType
        end local 1 // org.eclipse.jdt.core.IBuffer buf
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Lorg/eclipse/jdt/internal/core/Openable;
            3   19     1          buf  Lorg/eclipse/jdt/core/IBuffer;
            6   19     2  elementType  I
           11   18     3  openBuffers  Ljava/util/Enumeration;
           13   17     4       buffer  Lorg/eclipse/jdt/core/IBuffer;
           15   17     5        owner  Lorg/eclipse/jdt/core/IJavaElement;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException

  public boolean isConsistent();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 417
            iconst_1
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/Openable;

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 425
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.getInfo:(Lorg/eclipse/jdt/core/IJavaElement;)Ljava/lang/Object;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/core/Openable;

  protected boolean isSourceElement();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 433
            iconst_0
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/Openable;

  public boolean isStructureKnown();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 440
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getElementInfo:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.OpenableElementInfo
            invokevirtual org.eclipse.jdt.internal.core.OpenableElementInfo.isStructureKnown:()Z
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/Openable;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException

  public void makeConsistent(org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 449
            return
        end local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/eclipse/jdt/internal/core/Openable;
            0    1     1  monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
         Name  Flags
      monitor  

  public void open(org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // org.eclipse.core.runtime.IProgressMonitor pm
         0: .line 455
            aload 0 /* this */
            aload 1 /* pm */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getElementInfo:(Lorg/eclipse/core/runtime/IProgressMonitor;)Ljava/lang/Object;
            pop
         1: .line 456
            return
        end local 1 // org.eclipse.core.runtime.IProgressMonitor pm
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/core/Openable;
            0    2     1    pm  Lorg/eclipse/core/runtime/IProgressMonitor;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
      Name  Flags
      pm    

  protected org.eclipse.jdt.core.IBuffer openBuffer(org.eclipse.core.runtime.IProgressMonitor, java.lang.Object);
    descriptor: (Lorg/eclipse/core/runtime/IProgressMonitor;Ljava/lang/Object;)Lorg/eclipse/jdt/core/IBuffer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // org.eclipse.core.runtime.IProgressMonitor pm
        start local 2 // java.lang.Object info
         0: .line 465
            aconst_null
            areturn
        end local 2 // java.lang.Object info
        end local 1 // org.eclipse.core.runtime.IProgressMonitor pm
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/Openable;
            0    1     1    pm  Lorg/eclipse/core/runtime/IProgressMonitor;
            0    1     2  info  Ljava/lang/Object;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
      Name  Flags
      pm    
      info  

  public org.eclipse.core.resources.IResource getResource();
    descriptor: ()Lorg/eclipse/core/resources/IResource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 470
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getPackageFragmentRoot:()Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;
            astore 1 /* root */
        start local 1 // org.eclipse.jdt.internal.core.PackageFragmentRoot root
         1: .line 471
            aload 1 /* root */
            ifnull 6
         2: .line 472
            aload 1 /* root */
            invokevirtual org.eclipse.jdt.internal.core.PackageFragmentRoot.isExternal:()Z
            ifeq 4
         3: .line 473
            aconst_null
            areturn
         4: .line 474
      StackMap locals: org.eclipse.jdt.internal.core.PackageFragmentRoot
      StackMap stack:
            aload 1 /* root */
            invokevirtual org.eclipse.jdt.internal.core.PackageFragmentRoot.isArchive:()Z
            ifeq 6
         5: .line 475
            aload 1 /* root */
            aload 1 /* root */
            invokevirtual org.eclipse.jdt.internal.core.PackageFragmentRoot.resource:(Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;)Lorg/eclipse/core/resources/IResource;
            areturn
         6: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* root */
            invokevirtual org.eclipse.jdt.internal.core.Openable.resource:(Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;)Lorg/eclipse/core/resources/IResource;
            areturn
        end local 1 // org.eclipse.jdt.internal.core.PackageFragmentRoot root
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/eclipse/jdt/internal/core/Openable;
            1    7     1  root  Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;

  public org.eclipse.core.resources.IResource resource();
    descriptor: ()Lorg/eclipse/core/resources/IResource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 482
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getPackageFragmentRoot:()Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;
            astore 1 /* root */
        start local 1 // org.eclipse.jdt.internal.core.PackageFragmentRoot root
         1: .line 483
            aload 1 /* root */
            ifnull 3
            aload 1 /* root */
            invokevirtual org.eclipse.jdt.internal.core.PackageFragmentRoot.isArchive:()Z
            ifeq 3
         2: .line 484
            aload 1 /* root */
            aload 1 /* root */
            invokevirtual org.eclipse.jdt.internal.core.PackageFragmentRoot.resource:(Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;)Lorg/eclipse/core/resources/IResource;
            areturn
         3: .line 485
      StackMap locals: org.eclipse.jdt.internal.core.PackageFragmentRoot
      StackMap stack:
            aload 0 /* this */
            aload 1 /* root */
            invokevirtual org.eclipse.jdt.internal.core.Openable.resource:(Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;)Lorg/eclipse/core/resources/IResource;
            areturn
        end local 1 // org.eclipse.jdt.internal.core.PackageFragmentRoot root
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/eclipse/jdt/internal/core/Openable;
            1    4     1  root  Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;

  protected abstract org.eclipse.core.resources.IResource resource(org.eclipse.jdt.internal.core.PackageFragmentRoot);
    descriptor: (Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;)Lorg/eclipse/core/resources/IResource;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      root  

  protected boolean resourceExists(org.eclipse.core.resources.IResource);
    descriptor: (Lorg/eclipse/core/resources/IResource;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // org.eclipse.core.resources.IResource underlyingResource
         0: .line 494
            aload 1 /* underlyingResource */
            invokeinterface org.eclipse.core.resources.IResource.isAccessible:()Z
            ireturn
        end local 1 // org.eclipse.core.resources.IResource underlyingResource
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lorg/eclipse/jdt/internal/core/Openable;
            0    1     1  underlyingResource  Lorg/eclipse/core/resources/IResource;
    MethodParameters:
                    Name  Flags
      underlyingResource  

  public void save(org.eclipse.core.runtime.IProgressMonitor, boolean);
    descriptor: (Lorg/eclipse/core/runtime/IProgressMonitor;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // org.eclipse.core.runtime.IProgressMonitor pm
        start local 2 // boolean force
         0: .line 502
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.isReadOnly:()Z
            ifeq 2
         1: .line 503
            new org.eclipse.jdt.core.JavaModelException
            dup
            new org.eclipse.jdt.internal.core.JavaModelStatus
            dup
            sipush 976
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.core.JavaModelStatus.<init>:(ILorg/eclipse/jdt/core/IJavaElement;)V
            invokespecial org.eclipse.jdt.core.JavaModelException.<init>:(Lorg/eclipse/jdt/core/IJavaModelStatus;)V
            athrow
         2: .line 505
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getBuffer:()Lorg/eclipse/jdt/core/IBuffer;
            astore 3 /* buf */
        start local 3 // org.eclipse.jdt.core.IBuffer buf
         3: .line 506
            aload 3 /* buf */
            ifnull 6
         4: .line 507
            aload 3 /* buf */
            aload 1 /* pm */
            iload 2 /* force */
            invokeinterface org.eclipse.jdt.core.IBuffer.save:(Lorg/eclipse/core/runtime/IProgressMonitor;Z)V
         5: .line 508
            aload 0 /* this */
            aload 1 /* pm */
            invokevirtual org.eclipse.jdt.internal.core.Openable.makeConsistent:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
         6: .line 510
      StackMap locals: org.eclipse.jdt.core.IBuffer
      StackMap stack:
            return
        end local 3 // org.eclipse.jdt.core.IBuffer buf
        end local 2 // boolean force
        end local 1 // org.eclipse.core.runtime.IProgressMonitor pm
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/eclipse/jdt/internal/core/Openable;
            0    7     1     pm  Lorg/eclipse/core/runtime/IProgressMonitor;
            0    7     2  force  Z
            3    7     3    buf  Lorg/eclipse/jdt/core/IBuffer;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
       Name  Flags
      pm     
      force  

  public org.eclipse.jdt.internal.core.PackageFragmentRoot getPackageFragmentRoot();
    descriptor: ()Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.Openable this
         0: .line 516
            aload 0 /* this */
            iconst_3
            invokevirtual org.eclipse.jdt.internal.core.Openable.getAncestor:(I)Lorg/eclipse/jdt/core/IJavaElement;
            checkcast org.eclipse.jdt.internal.core.PackageFragmentRoot
            areturn
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/Openable;

  protected abstract org.eclipse.core.runtime.IStatus validateExistence(org.eclipse.core.resources.IResource);
    descriptor: (Lorg/eclipse/core/resources/IResource;)Lorg/eclipse/core/runtime/IStatus;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
                    Name  Flags
      underlyingResource  

  protected void openAncestors(java.util.HashMap, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Ljava/util/HashMap;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.Openable this
        start local 1 // java.util.HashMap newElements
        start local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 528
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getOpenableParent:()Lorg/eclipse/jdt/core/IOpenable;
            checkcast org.eclipse.jdt.internal.core.Openable
            astore 3 /* openableParent */
        start local 3 // org.eclipse.jdt.internal.core.Openable openableParent
         1: .line 529
            aload 3 /* openableParent */
            ifnull 3
            aload 3 /* openableParent */
            invokevirtual org.eclipse.jdt.internal.core.Openable.isOpen:()Z
            ifne 3
         2: .line 530
            aload 3 /* openableParent */
            aload 3 /* openableParent */
            invokevirtual org.eclipse.jdt.internal.core.Openable.createElementInfo:()Ljava/lang/Object;
            aload 1 /* newElements */
            aload 2 /* monitor */
            invokevirtual org.eclipse.jdt.internal.core.Openable.generateInfos:(Ljava/lang/Object;Ljava/util/HashMap;Lorg/eclipse/core/runtime/IProgressMonitor;)V
         3: .line 532
      StackMap locals: org.eclipse.jdt.internal.core.Openable
      StackMap stack:
            return
        end local 3 // org.eclipse.jdt.internal.core.Openable openableParent
        end local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 1 // java.util.HashMap newElements
        end local 0 // org.eclipse.jdt.internal.core.Openable this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/eclipse/jdt/internal/core/Openable;
            0    4     1     newElements  Ljava/util/HashMap;
            0    4     2         monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1    4     3  openableParent  Lorg/eclipse/jdt/internal/core/Openable;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
             Name  Flags
      newElements  
      monitor      
}
SourceFile: "Openable.java"