public class org.eclipse.jdt.internal.core.ModularClassFile extends org.eclipse.jdt.internal.core.AbstractClassFile implements org.eclipse.jdt.core.IModularClassFile
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.ModularClassFile
  super_class: org.eclipse.jdt.internal.core.AbstractClassFile
{
  private org.eclipse.jdt.internal.core.BinaryModule binaryModule;
    descriptor: Lorg/eclipse/jdt/internal/core/BinaryModule;
    flags: (0x0002) ACC_PRIVATE

  protected void <init>(org.eclipse.jdt.internal.core.PackageFragment);
    descriptor: (Lorg/eclipse/jdt/internal/core/PackageFragment;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
        start local 1 // org.eclipse.jdt.internal.core.PackageFragment parent
         0: .line 42
            aload 0 /* this */
            aload 1 /* parent */
            ldc "module-info"
            invokespecial org.eclipse.jdt.internal.core.AbstractClassFile.<init>:(Lorg/eclipse/jdt/internal/core/PackageFragment;Ljava/lang/String;)V
         1: .line 43
            return
        end local 1 // org.eclipse.jdt.internal.core.PackageFragment parent
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
            0    2     1  parent  Lorg/eclipse/jdt/internal/core/PackageFragment;
    MethodParameters:
        Name  Flags
      parent  

  protected 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: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
        start local 1 // org.eclipse.jdt.internal.core.OpenableElementInfo info
        start local 2 // org.eclipse.core.runtime.IProgressMonitor pm
        start local 3 // java.util.Map newElements
        start local 4 // org.eclipse.core.resources.IResource underlyingResource
         0: .line 55
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getBinaryModuleInfo:()Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;
            astore 5 /* moduleInfo */
        start local 5 // org.eclipse.jdt.internal.compiler.env.IBinaryModule moduleInfo
         1: .line 56
            aload 5 /* moduleInfo */
            ifnonnull 4
         2: .line 59
            aload 1 /* info */
            getstatic org.eclipse.jdt.internal.core.JavaElement.NO_ELEMENTS:[Lorg/eclipse/jdt/internal/core/JavaElement;
            invokevirtual org.eclipse.jdt.internal.core.OpenableElementInfo.setChildren:([Lorg/eclipse/jdt/core/IJavaElement;)V
         3: .line 60
            iconst_0
            ireturn
         4: .line 64
      StackMap locals: org.eclipse.jdt.internal.compiler.env.IBinaryModule
      StackMap stack:
            new org.eclipse.jdt.internal.core.BinaryModule
            dup
            aload 0 /* this */
            aload 5 /* moduleInfo */
            invokespecial org.eclipse.jdt.internal.core.BinaryModule.<init>:(Lorg/eclipse/jdt/internal/core/JavaElement;Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;)V
            astore 6 /* module */
        start local 6 // org.eclipse.jdt.internal.core.BinaryModule module
         5: .line 65
            aload 3 /* newElements */
            aload 6 /* module */
            aload 5 /* moduleInfo */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 66
            aload 1 /* info */
            iconst_1
            anewarray org.eclipse.jdt.core.IJavaElement
            dup
            iconst_0
            aload 6 /* module */
            aastore
            invokevirtual org.eclipse.jdt.internal.core.OpenableElementInfo.setChildren:([Lorg/eclipse/jdt/core/IJavaElement;)V
         7: .line 67
            aload 0 /* this */
            aload 6 /* module */
            putfield org.eclipse.jdt.internal.core.ModularClassFile.binaryModule:Lorg/eclipse/jdt/internal/core/BinaryModule;
         8: .line 68
            aload 1 /* info */
            instanceof org.eclipse.jdt.internal.core.ClassFileInfo
            ifeq 10
         9: .line 69
            aload 1 /* info */
            checkcast org.eclipse.jdt.internal.core.ClassFileInfo
            aload 6 /* module */
            invokevirtual org.eclipse.jdt.internal.core.ClassFileInfo.setModule:(Lorg/eclipse/jdt/core/IModuleDescription;)V
        10: .line 71
      StackMap locals: org.eclipse.jdt.internal.core.BinaryModule
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getPackageFragmentRoot:()Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;
            invokevirtual org.eclipse.jdt.internal.core.PackageFragmentRoot.getElementInfo:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.PackageFragmentRootInfo
            aload 6 /* module */
            invokevirtual org.eclipse.jdt.internal.core.PackageFragmentRootInfo.setModule:(Lorg/eclipse/jdt/core/IModuleDescription;)V
        11: .line 72
            iconst_1
            ireturn
        end local 6 // org.eclipse.jdt.internal.core.BinaryModule module
        end local 5 // org.eclipse.jdt.internal.compiler.env.IBinaryModule moduleInfo
        end local 4 // org.eclipse.core.resources.IResource underlyingResource
        end local 3 // java.util.Map newElements
        end local 2 // org.eclipse.core.runtime.IProgressMonitor pm
        end local 1 // org.eclipse.jdt.internal.core.OpenableElementInfo info
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   12     0                this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
            0   12     1                info  Lorg/eclipse/jdt/internal/core/OpenableElementInfo;
            0   12     2                  pm  Lorg/eclipse/core/runtime/IProgressMonitor;
            0   12     3         newElements  Ljava/util/Map;
            0   12     4  underlyingResource  Lorg/eclipse/core/resources/IResource;
            1   12     5          moduleInfo  Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;
            5   12     6              module  Lorg/eclipse/jdt/internal/core/BinaryModule;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
                    Name  Flags
      info                
      pm                  
      newElements         
      underlyingResource  

  public void codeComplete(int, org.eclipse.jdt.core.CompletionRequestor, org.eclipse.jdt.core.WorkingCopyOwner, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (ILorg/eclipse/jdt/core/CompletionRequestor;Lorg/eclipse/jdt/core/WorkingCopyOwner;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=5
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
        start local 1 // int offset
        start local 2 // org.eclipse.jdt.core.CompletionRequestor requestor
        start local 3 // org.eclipse.jdt.core.WorkingCopyOwner owner
        start local 4 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 77
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getSource:()Ljava/lang/String;
            astore 5 /* source */
        start local 5 // java.lang.String source
         1: .line 78
            aload 5 /* source */
            ifnull 10
         2: .line 80
            new org.eclipse.jdt.internal.core.BasicCompilationUnit
            dup
         3: .line 81
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getSource:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
         4: .line 82
            aconst_null
         5: .line 83
            ldc "module-info.java"
         6: .line 84
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getJavaProject:()Lorg/eclipse/jdt/core/IJavaProject;
         7: .line 80
            invokespecial org.eclipse.jdt.internal.core.BasicCompilationUnit.<init>:([C[[CLjava/lang/String;Lorg/eclipse/jdt/core/IJavaElement;)V
         8: .line 79
            astore 6 /* cu */
        start local 6 // org.eclipse.jdt.internal.core.BasicCompilationUnit cu
         9: .line 85
            aload 0 /* this */
            aload 6 /* cu */
            aload 6 /* cu */
            iload 1 /* offset */
            aload 2 /* requestor */
            aload 3 /* owner */
            aconst_null
            aload 4 /* monitor */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.codeComplete:(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
        end local 6 // org.eclipse.jdt.internal.core.BasicCompilationUnit cu
        10: .line 87
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 5 // java.lang.String source
        end local 4 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 3 // org.eclipse.jdt.core.WorkingCopyOwner owner
        end local 2 // org.eclipse.jdt.core.CompletionRequestor requestor
        end local 1 // int offset
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
            0   11     1     offset  I
            0   11     2  requestor  Lorg/eclipse/jdt/core/CompletionRequestor;
            0   11     3      owner  Lorg/eclipse/jdt/core/WorkingCopyOwner;
            0   11     4    monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   11     5     source  Ljava/lang/String;
            9   10     6         cu  Lorg/eclipse/jdt/internal/core/BasicCompilationUnit;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
           Name  Flags
      offset     
      requestor  
      owner      
      monitor    

  public org.eclipse.jdt.core.IJavaElement[] codeSelect(int, int, org.eclipse.jdt.core.WorkingCopyOwner);
    descriptor: (IILorg/eclipse/jdt/core/WorkingCopyOwner;)[Lorg/eclipse/jdt/core/IJavaElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
        start local 1 // int offset
        start local 2 // int length
        start local 3 // org.eclipse.jdt.core.WorkingCopyOwner owner
         0: .line 91
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getBuffer:()Lorg/eclipse/jdt/core/IBuffer;
            astore 4 /* buffer */
        start local 4 // org.eclipse.jdt.core.IBuffer buffer
         1: .line 93
            aload 4 /* buffer */
            ifnull 5
            aload 4 /* buffer */
            invokeinterface org.eclipse.jdt.core.IBuffer.getCharacters:()[C
            dup
            astore 5 /* contents */
        start local 5 // char[] contents
         2: ifnull 5
         3: .line 94
            new org.eclipse.jdt.internal.core.BasicCompilationUnit
            dup
            aload 5 /* contents */
            aconst_null
            ldc "module-info.java"
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.core.BasicCompilationUnit.<init>:([C[[CLjava/lang/String;Lorg/eclipse/jdt/core/IJavaElement;)V
            astore 6 /* cu */
        start local 6 // org.eclipse.jdt.internal.core.BasicCompilationUnit cu
         4: .line 95
            aload 0 /* this */
            aload 6 /* cu */
            iload 1 /* offset */
            iload 2 /* length */
            aload 3 /* owner */
            invokespecial org.eclipse.jdt.internal.core.AbstractClassFile.codeSelect:(Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;IILorg/eclipse/jdt/core/WorkingCopyOwner;)[Lorg/eclipse/jdt/core/IJavaElement;
            areturn
        end local 6 // org.eclipse.jdt.internal.core.BasicCompilationUnit cu
        end local 5 // char[] contents
         5: .line 98
      StackMap locals: org.eclipse.jdt.core.IBuffer
      StackMap stack:
            iconst_0
            anewarray org.eclipse.jdt.core.IJavaElement
            areturn
        end local 4 // org.eclipse.jdt.core.IBuffer buffer
        end local 3 // org.eclipse.jdt.core.WorkingCopyOwner owner
        end local 2 // int length
        end local 1 // int offset
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
            0    6     1    offset  I
            0    6     2    length  I
            0    6     3     owner  Lorg/eclipse/jdt/core/WorkingCopyOwner;
            1    6     4    buffer  Lorg/eclipse/jdt/core/IBuffer;
            2    5     5  contents  [C
            4    5     6        cu  Lorg/eclipse/jdt/internal/core/BasicCompilationUnit;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
        Name  Flags
      offset  
      length  
      owner   

  public org.eclipse.jdt.core.IType findPrimaryType();
    descriptor: ()Lorg/eclipse/jdt/core/IType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
         0: .line 104
            aconst_null
            areturn
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/ModularClassFile;

  public boolean isClass();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
         0: .line 109
            iconst_0
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException

  public boolean isInterface();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
         0: .line 114
            iconst_0
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException

  public org.eclipse.jdt.core.IType getType();
    descriptor: ()Lorg/eclipse/jdt/core/IType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
         0: .line 119
            new java.lang.UnsupportedOperationException
            dup
            ldc "IClassFile#getType() cannot be used on an IModularClassFile"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/ModularClassFile;

  public org.eclipse.jdt.internal.compiler.env.IBinaryModule getBinaryModuleInfo();
    descriptor: ()Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
         0: .line 136
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getJarBinaryModuleInfo:()Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;
            astore 1 /* info */
        start local 1 // org.eclipse.jdt.internal.compiler.env.IBinaryModule info
         1: .line 137
            aload 1 /* info */
            ifnonnull 3
         2: .line 138
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.newNotPresentException:()Lorg/eclipse/jdt/core/JavaModelException;
            athrow
         3: .line 140
      StackMap locals: org.eclipse.jdt.internal.compiler.env.IBinaryModule
      StackMap stack:
            aload 1 /* info */
         4: areturn
        end local 1 // org.eclipse.jdt.internal.compiler.env.IBinaryModule info
         5: .line 141
      StackMap locals: org.eclipse.jdt.internal.core.ModularClassFile
      StackMap stack: org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
            astore 1 /* cfe */
        start local 1 // org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException cfe
         6: .line 143
            invokestatic org.eclipse.jdt.core.JavaCore.getPlugin:()Lorg/eclipse/core/runtime/Plugin;
            invokevirtual org.eclipse.core.runtime.Plugin.isDebugging:()Z
            ifeq 8
         7: .line 144
            aload 1 /* cfe */
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException.printStackTrace:(Ljava/io/PrintStream;)V
         8: .line 146
      StackMap locals: org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException cfe
         9: .line 147
      StackMap locals: org.eclipse.jdt.internal.core.ModularClassFile
      StackMap stack: java.io.IOException
            astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
        10: .line 148
            new org.eclipse.jdt.core.JavaModelException
            dup
            aload 1 /* ioe */
            sipush 985
            invokespecial org.eclipse.jdt.core.JavaModelException.<init>:(Ljava/lang/Throwable;I)V
            athrow
        end local 1 // java.io.IOException ioe
        11: .line 149
      StackMap locals:
      StackMap stack: org.eclipse.core.runtime.CoreException
            astore 1 /* e */
        start local 1 // org.eclipse.core.runtime.CoreException e
        12: .line 150
            aload 1 /* e */
            instanceof org.eclipse.jdt.core.JavaModelException
            ifeq 14
        13: .line 151
            aload 1 /* e */
            checkcast org.eclipse.jdt.core.JavaModelException
            athrow
        14: .line 153
      StackMap locals: org.eclipse.core.runtime.CoreException
      StackMap stack:
            new org.eclipse.jdt.core.JavaModelException
            dup
            aload 1 /* e */
            invokespecial org.eclipse.jdt.core.JavaModelException.<init>:(Lorg/eclipse/core/runtime/CoreException;)V
            athrow
        end local 1 // org.eclipse.core.runtime.CoreException e
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
            1    5     1  info  Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;
            6    9     1   cfe  Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFormatException;
           10   11     1   ioe  Ljava/io/IOException;
           12   15     1     e  Lorg/eclipse/core/runtime/CoreException;
      Exception table:
        from    to  target  type
           0     4       5  Class org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
           0     4       9  Class java.io.IOException
           0     4      11  Class org.eclipse.core.runtime.CoreException
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException

  private org.eclipse.jdt.internal.compiler.env.IBinaryModule getJarBinaryModuleInfo();
    descriptor: ()Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
         0: .line 159
            aload 0 /* this */
            invokestatic org.eclipse.jdt.internal.core.nd.java.model.BinaryModuleFactory.createDescriptor:(Lorg/eclipse/jdt/internal/core/ModularClassFile;)Lorg/eclipse/jdt/internal/core/nd/java/model/BinaryModuleDescriptor;
            astore 1 /* descriptor */
        start local 1 // org.eclipse.jdt.internal.core.nd.java.model.BinaryModuleDescriptor descriptor
         1: .line 161
            aload 1 /* descriptor */
            ifnonnull 3
         2: .line 162
            aconst_null
            areturn
         3: .line 164
      StackMap locals: org.eclipse.jdt.internal.core.nd.java.model.BinaryModuleDescriptor
      StackMap stack:
            aconst_null
            astore 2 /* result */
        start local 2 // org.eclipse.jdt.internal.compiler.env.IBinaryModule result
         4: .line 165
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getPackageFragmentRoot:()Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;
            astore 3 /* root */
        start local 3 // org.eclipse.jdt.core.IPackageFragmentRoot root
         5: .line 166
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getPackageFragmentRoot:()Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;
            instanceof org.eclipse.jdt.internal.core.JarPackageFragmentRoot
            ifeq 17
         6: .line 167
            aload 3 /* root */
            instanceof org.eclipse.jdt.internal.core.JrtPackageFragmentRoot
            ifne 7
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.ModularClassFile.name:Ljava/lang/String;
            ldc "module-info"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
         7: .line 168
      StackMap locals: org.eclipse.jdt.internal.compiler.env.IBinaryModule org.eclipse.jdt.core.IPackageFragmentRoot
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getParent:()Lorg/eclipse/jdt/core/IJavaElement;
            checkcast org.eclipse.jdt.internal.core.PackageFragment
            astore 4 /* pkg */
        start local 4 // org.eclipse.jdt.internal.core.PackageFragment pkg
         8: .line 169
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getPackageFragmentRoot:()Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;
            checkcast org.eclipse.jdt.internal.core.JarPackageFragmentRoot
            astore 5 /* jarRoot */
        start local 5 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot jarRoot
         9: .line 170
            aload 5 /* jarRoot */
            aload 4 /* pkg */
            getfield org.eclipse.jdt.internal.core.PackageFragment.names:[Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getElementName:()Ljava/lang/String;
            bipush 47
            invokestatic org.eclipse.jdt.internal.core.util.Util.concatWith:([Ljava/lang/String;Ljava/lang/String;C)Ljava/lang/String;
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getClassFilePath:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* entryName */
        start local 6 // java.lang.String entryName
        10: .line 171
            aload 0 /* this */
            aload 5 /* jarRoot */
            aload 6 /* entryName */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getClassFileContent:(Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;Ljava/lang/String;)[B
            astore 7 /* contents */
        start local 7 // byte[] contents
        11: .line 172
            aload 7 /* contents */
            ifnull 18
        12: .line 173
            new java.lang.StringBuilder
            dup
            aload 3 /* root */
            invokeinterface org.eclipse.jdt.core.IPackageFragmentRoot.getHandleIdentifier:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 124
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 6 /* entryName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* fileName */
        start local 8 // java.lang.String fileName
        13: .line 174
            new org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader
            dup
            aload 7 /* contents */
            aload 8 /* fileName */
            invokevirtual java.lang.String.toCharArray:()[C
            iconst_0
            invokespecial org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.<init>:([B[CZ)V
            astore 9 /* classFileReader */
        start local 9 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader classFileReader
        14: .line 175
            aload 9 /* classFileReader */
            invokevirtual org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.getModuleDeclaration:()Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;
            areturn
        end local 9 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader classFileReader
        end local 8 // java.lang.String fileName
        end local 7 // byte[] contents
        end local 6 // java.lang.String entryName
        end local 5 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot jarRoot
        end local 4 // org.eclipse.jdt.internal.core.PackageFragment pkg
        15: .line 178
      StackMap locals:
      StackMap stack:
            aload 1 /* descriptor */
            aconst_null
            invokestatic org.eclipse.jdt.internal.core.nd.java.model.BinaryModuleFactory.readModule:(Lorg/eclipse/jdt/internal/core/nd/java/model/BinaryModuleDescriptor;Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;
            astore 2 /* result */
        16: .line 180
            goto 18
        17: .line 181
      StackMap locals:
      StackMap stack:
            aload 1 /* descriptor */
            aconst_null
            invokestatic org.eclipse.jdt.internal.core.nd.java.model.BinaryModuleFactory.readModule:(Lorg/eclipse/jdt/internal/core/nd/java/model/BinaryModuleDescriptor;Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;
            astore 2 /* result */
        18: .line 184
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 3 // org.eclipse.jdt.core.IPackageFragmentRoot root
        end local 2 // org.eclipse.jdt.internal.compiler.env.IBinaryModule result
        end local 1 // org.eclipse.jdt.internal.core.nd.java.model.BinaryModuleDescriptor descriptor
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0             this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
            1   19     1       descriptor  Lorg/eclipse/jdt/internal/core/nd/java/model/BinaryModuleDescriptor;
            4   19     2           result  Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;
            5   19     3             root  Lorg/eclipse/jdt/core/IPackageFragmentRoot;
            8   15     4              pkg  Lorg/eclipse/jdt/internal/core/PackageFragment;
            9   15     5          jarRoot  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
           10   15     6        entryName  Ljava/lang/String;
           11   15     7         contents  [B
           13   15     8         fileName  Ljava/lang/String;
           14   15     9  classFileReader  Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;
    Exceptions:
      throws org.eclipse.core.runtime.CoreException, java.io.IOException, org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException

  public org.eclipse.jdt.core.IJavaElement getElementAt(int);
    descriptor: (I)Lorg/eclipse/jdt/core/IJavaElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
        start local 1 // int position
         0: .line 192
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getParent:()Lorg/eclipse/jdt/core/IJavaElement;
            astore 2 /* parentElement */
        start local 2 // org.eclipse.jdt.core.IJavaElement parentElement
         1: .line 193
            goto 3
         2: .line 194
      StackMap locals: org.eclipse.jdt.core.IJavaElement
      StackMap stack:
            aload 2 /* parentElement */
            invokeinterface org.eclipse.jdt.core.IJavaElement.getParent:()Lorg/eclipse/jdt/core/IJavaElement;
            astore 2 /* parentElement */
         3: .line 193
      StackMap locals:
      StackMap stack:
            aload 2 /* parentElement */
            invokeinterface org.eclipse.jdt.core.IJavaElement.getElementType:()I
            iconst_3
            if_icmpne 2
         4: .line 196
            aload 2 /* parentElement */
            checkcast org.eclipse.jdt.internal.core.PackageFragmentRoot
            astore 3 /* root */
        start local 3 // org.eclipse.jdt.internal.core.PackageFragmentRoot root
         5: .line 197
            aload 3 /* root */
            invokevirtual org.eclipse.jdt.internal.core.PackageFragmentRoot.getSourceMapper:()Lorg/eclipse/jdt/internal/core/SourceMapper;
            astore 4 /* mapper */
        start local 4 // org.eclipse.jdt.internal.core.SourceMapper mapper
         6: .line 198
            aload 4 /* mapper */
            ifnonnull 8
         7: .line 199
            aconst_null
            areturn
         8: .line 202
      StackMap locals: org.eclipse.jdt.internal.core.PackageFragmentRoot org.eclipse.jdt.internal.core.SourceMapper
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getBuffer:()Lorg/eclipse/jdt/core/IBuffer;
            pop
         9: .line 204
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getModule:()Lorg/eclipse/jdt/core/IModuleDescription;
            astore 5 /* module */
        start local 5 // org.eclipse.jdt.core.IModuleDescription module
        10: .line 205
            aload 0 /* this */
            aload 5 /* module */
            iload 1 /* position */
            aload 4 /* mapper */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.findElement:(Lorg/eclipse/jdt/core/IJavaElement;ILorg/eclipse/jdt/internal/core/SourceMapper;)Lorg/eclipse/jdt/core/IJavaElement;
            areturn
        end local 5 // org.eclipse.jdt.core.IModuleDescription module
        end local 4 // org.eclipse.jdt.internal.core.SourceMapper mapper
        end local 3 // org.eclipse.jdt.internal.core.PackageFragmentRoot root
        end local 2 // org.eclipse.jdt.core.IJavaElement parentElement
        end local 1 // int position
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
            0   11     1       position  I
            1   11     2  parentElement  Lorg/eclipse/jdt/core/IJavaElement;
            5   11     3           root  Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;
            6   11     4         mapper  Lorg/eclipse/jdt/internal/core/SourceMapper;
           10   11     5         module  Lorg/eclipse/jdt/core/IModuleDescription;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
          Name  Flags
      position  

  public org.eclipse.jdt.core.IJavaElement getHandleFromMemento(java.lang.String, org.eclipse.jdt.internal.core.util.MementoTokenizer, org.eclipse.jdt.core.WorkingCopyOwner);
    descriptor: (Ljava/lang/String;Lorg/eclipse/jdt/internal/core/util/MementoTokenizer;Lorg/eclipse/jdt/core/WorkingCopyOwner;)Lorg/eclipse/jdt/core/IJavaElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
        start local 1 // java.lang.String token
        start local 2 // org.eclipse.jdt.internal.core.util.MementoTokenizer memento
        start local 3 // org.eclipse.jdt.core.WorkingCopyOwner owner
         0: .line 210
            aload 1 /* token */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            tableswitch { // 96 - 96
                   96: 1
              default: 5
          }
         1: .line 212
      StackMap locals:
      StackMap stack:
            aload 2 /* memento */
            invokevirtual org.eclipse.jdt.internal.core.util.MementoTokenizer.hasMoreTokens:()Z
            ifne 2
            aload 0 /* this */
            areturn
         2: .line 213
      StackMap locals:
      StackMap stack:
            aload 2 /* memento */
            invokevirtual org.eclipse.jdt.internal.core.util.MementoTokenizer.nextToken:()Ljava/lang/String;
            astore 4 /* modName */
        start local 4 // java.lang.String modName
         3: .line 214
            new org.eclipse.jdt.internal.core.BinaryModule
            dup
            aload 0 /* this */
            aload 4 /* modName */
            invokespecial org.eclipse.jdt.internal.core.BinaryModule.<init>:(Lorg/eclipse/jdt/internal/core/JavaElement;Ljava/lang/String;)V
            astore 5 /* mod */
        start local 5 // org.eclipse.jdt.internal.core.JavaElement mod
         4: .line 215
            aload 5 /* mod */
            aload 2 /* memento */
            aload 3 /* owner */
            invokevirtual org.eclipse.jdt.internal.core.JavaElement.getHandleFromMemento:(Lorg/eclipse/jdt/internal/core/util/MementoTokenizer;Lorg/eclipse/jdt/core/WorkingCopyOwner;)Lorg/eclipse/jdt/core/IJavaElement;
            areturn
        end local 5 // org.eclipse.jdt.internal.core.JavaElement mod
        end local 4 // java.lang.String modName
         5: .line 217
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.eclipse.jdt.core.WorkingCopyOwner owner
        end local 2 // org.eclipse.jdt.internal.core.util.MementoTokenizer memento
        end local 1 // java.lang.String token
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
            0    6     1    token  Ljava/lang/String;
            0    6     2  memento  Lorg/eclipse/jdt/internal/core/util/MementoTokenizer;
            0    6     3    owner  Lorg/eclipse/jdt/core/WorkingCopyOwner;
            3    5     4  modName  Ljava/lang/String;
            4    5     5      mod  Lorg/eclipse/jdt/internal/core/JavaElement;
    MethodParameters:
         Name  Flags
      token    
      memento  
      owner    

  protected char getHandleMementoDelimiter();
    descriptor: ()C
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
         0: .line 224
            bipush 39
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/ModularClassFile;

  protected void escapeMementoName(java.lang.StringBuffer, java.lang.String);
    descriptor: (Ljava/lang/StringBuffer;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
        start local 1 // java.lang.StringBuffer buffer
        start local 2 // java.lang.String mementoName
         0: .line 229
            return
        end local 2 // java.lang.String mementoName
        end local 1 // java.lang.StringBuffer buffer
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
            0    1     1       buffer  Ljava/lang/StringBuffer;
            0    1     2  mementoName  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      buffer       
      mementoName  

  public org.eclipse.jdt.core.ICompilationUnit getWorkingCopy(org.eclipse.jdt.core.WorkingCopyOwner, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/jdt/core/WorkingCopyOwner;Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/jdt/core/ICompilationUnit;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
        start local 1 // org.eclipse.jdt.core.WorkingCopyOwner owner
        start local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 232
            new org.eclipse.jdt.internal.core.ClassFileWorkingCopy
            dup
            aload 0 /* this */
            aload 1 /* owner */
            ifnonnull 1
            getstatic org.eclipse.jdt.internal.core.DefaultWorkingCopyOwner.PRIMARY:Lorg/eclipse/jdt/internal/core/DefaultWorkingCopyOwner;
            goto 2
      StackMap locals: org.eclipse.jdt.internal.core.ModularClassFile org.eclipse.jdt.core.WorkingCopyOwner org.eclipse.core.runtime.IProgressMonitor
      StackMap stack: new 0 new 0 org.eclipse.jdt.internal.core.ModularClassFile
         1: aload 1 /* owner */
      StackMap locals: org.eclipse.jdt.internal.core.ModularClassFile org.eclipse.jdt.core.WorkingCopyOwner org.eclipse.core.runtime.IProgressMonitor
      StackMap stack: new 0 new 0 org.eclipse.jdt.internal.core.ModularClassFile org.eclipse.jdt.core.WorkingCopyOwner
         2: invokespecial org.eclipse.jdt.internal.core.ClassFileWorkingCopy.<init>:(Lorg/eclipse/jdt/internal/core/AbstractClassFile;Lorg/eclipse/jdt/core/WorkingCopyOwner;)V
            astore 3 /* workingCopy */
        start local 3 // org.eclipse.jdt.internal.core.CompilationUnit workingCopy
         3: .line 233
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            astore 4 /* manager */
        start local 4 // org.eclipse.jdt.internal.core.JavaModelManager manager
         4: .line 235
            aload 4 /* manager */
            aload 3 /* workingCopy */
            iconst_0
            iconst_1
            aconst_null
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.getPerWorkingCopyInfo:(Lorg/eclipse/jdt/internal/core/CompilationUnit;ZZLorg/eclipse/jdt/core/IProblemRequestor;)Lorg/eclipse/jdt/internal/core/JavaModelManager$PerWorkingCopyInfo;
         5: .line 234
            astore 5 /* perWorkingCopyInfo */
        start local 5 // org.eclipse.jdt.internal.core.JavaModelManager$PerWorkingCopyInfo perWorkingCopyInfo
         6: .line 236
            aload 5 /* perWorkingCopyInfo */
            ifnull 8
         7: .line 237
            aload 5 /* perWorkingCopyInfo */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager$PerWorkingCopyInfo.getWorkingCopy:()Lorg/eclipse/jdt/core/ICompilationUnit;
            areturn
         8: .line 239
      StackMap locals: org.eclipse.jdt.internal.core.CompilationUnit org.eclipse.jdt.internal.core.JavaModelManager org.eclipse.jdt.internal.core.JavaModelManager$PerWorkingCopyInfo
      StackMap stack:
            new org.eclipse.jdt.internal.core.BecomeWorkingCopyOperation
            dup
            aload 3 /* workingCopy */
            aconst_null
            invokespecial org.eclipse.jdt.internal.core.BecomeWorkingCopyOperation.<init>:(Lorg/eclipse/jdt/internal/core/CompilationUnit;Lorg/eclipse/jdt/core/IProblemRequestor;)V
            astore 6 /* op */
        start local 6 // org.eclipse.jdt.internal.core.BecomeWorkingCopyOperation op
         9: .line 240
            aload 6 /* op */
            aload 2 /* monitor */
            invokevirtual org.eclipse.jdt.internal.core.BecomeWorkingCopyOperation.runOperation:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
        10: .line 241
            aload 3 /* workingCopy */
            areturn
        end local 6 // org.eclipse.jdt.internal.core.BecomeWorkingCopyOperation op
        end local 5 // org.eclipse.jdt.internal.core.JavaModelManager$PerWorkingCopyInfo perWorkingCopyInfo
        end local 4 // org.eclipse.jdt.internal.core.JavaModelManager manager
        end local 3 // org.eclipse.jdt.internal.core.CompilationUnit workingCopy
        end local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 1 // org.eclipse.jdt.core.WorkingCopyOwner owner
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0                this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
            0   11     1               owner  Lorg/eclipse/jdt/core/WorkingCopyOwner;
            0   11     2             monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            3   11     3         workingCopy  Lorg/eclipse/jdt/internal/core/CompilationUnit;
            4   11     4             manager  Lorg/eclipse/jdt/internal/core/JavaModelManager;
            6   11     5  perWorkingCopyInfo  Lorg/eclipse/jdt/internal/core/JavaModelManager$PerWorkingCopyInfo;
            9   11     6                  op  Lorg/eclipse/jdt/internal/core/BecomeWorkingCopyOperation;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
         Name  Flags
      owner    
      monitor  

  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=2, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
        start local 1 // org.eclipse.core.runtime.IProgressMonitor pm
        start local 2 // java.lang.Object info
         0: .line 253
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getSourceMapper:()Lorg/eclipse/jdt/internal/core/SourceMapper;
            astore 3 /* mapper */
        start local 3 // org.eclipse.jdt.internal.core.SourceMapper mapper
         1: .line 254
            aload 3 /* mapper */
            ifnull 3
         2: .line 255
            aload 0 /* this */
            aload 3 /* mapper */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.mapSource:(Lorg/eclipse/jdt/internal/core/SourceMapper;)Lorg/eclipse/jdt/core/IBuffer;
            areturn
         3: .line 257
      StackMap locals: org.eclipse.jdt.internal.core.SourceMapper
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.eclipse.jdt.internal.core.SourceMapper mapper
        end local 2 // java.lang.Object info
        end local 1 // org.eclipse.core.runtime.IProgressMonitor pm
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
            0    4     1      pm  Lorg/eclipse/core/runtime/IProgressMonitor;
            0    4     2    info  Ljava/lang/Object;
            1    4     3  mapper  Lorg/eclipse/jdt/internal/core/SourceMapper;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
      Name  Flags
      pm    
      info  

  private org.eclipse.jdt.core.IBuffer mapSource(org.eclipse.jdt.internal.core.SourceMapper);
    descriptor: (Lorg/eclipse/jdt/internal/core/SourceMapper;)Lorg/eclipse/jdt/core/IBuffer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
        start local 1 // org.eclipse.jdt.internal.core.SourceMapper mapper
         0: .line 262
            aload 1 /* mapper */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getModule:()Lorg/eclipse/jdt/core/IModuleDescription;
            invokevirtual org.eclipse.jdt.internal.core.SourceMapper.findSource:(Lorg/eclipse/jdt/core/IModuleDescription;)[C
            astore 2 /* contents */
        start local 2 // char[] contents
         1: .line 263
            aload 2 /* contents */
            ifnull 11
         2: .line 265
            aload 0 /* this */
            invokestatic org.eclipse.jdt.internal.core.BufferManager.createBuffer:(Lorg/eclipse/jdt/core/IOpenable;)Lorg/eclipse/jdt/core/IBuffer;
            astore 3 /* buffer */
        start local 3 // org.eclipse.jdt.core.IBuffer buffer
         3: .line 266
            aload 3 /* buffer */
            ifnonnull 4
            aconst_null
            areturn
         4: .line 267
      StackMap locals: char[] org.eclipse.jdt.core.IBuffer
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getBufferManager:()Lorg/eclipse/jdt/internal/core/BufferManager;
            astore 4 /* bufManager */
        start local 4 // org.eclipse.jdt.internal.core.BufferManager bufManager
         5: .line 268
            aload 4 /* bufManager */
            aload 3 /* buffer */
            invokevirtual org.eclipse.jdt.internal.core.BufferManager.addBuffer:(Lorg/eclipse/jdt/core/IBuffer;)V
         6: .line 271
            aload 3 /* buffer */
            invokeinterface org.eclipse.jdt.core.IBuffer.getCharacters:()[C
            ifnonnull 8
         7: .line 272
            aload 3 /* buffer */
            aload 2 /* contents */
            invokeinterface org.eclipse.jdt.core.IBuffer.setContents:([C)V
         8: .line 276
      StackMap locals: org.eclipse.jdt.internal.core.BufferManager
      StackMap stack:
            aload 3 /* buffer */
            aload 0 /* this */
            invokeinterface org.eclipse.jdt.core.IBuffer.addBufferChangedListener:(Lorg/eclipse/jdt/core/IBufferChangedListener;)V
         9: .line 279
            aload 1 /* mapper */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getModule:()Lorg/eclipse/jdt/core/IModuleDescription;
            checkcast org.eclipse.jdt.internal.core.NamedMember
            aload 2 /* contents */
            aconst_null
            invokevirtual org.eclipse.jdt.internal.core.SourceMapper.mapSource:(Lorg/eclipse/jdt/internal/core/NamedMember;[CLorg/eclipse/jdt/internal/compiler/env/IBinaryType;)V
        10: .line 281
            aload 3 /* buffer */
            areturn
        end local 4 // org.eclipse.jdt.internal.core.BufferManager bufManager
        end local 3 // org.eclipse.jdt.core.IBuffer buffer
        11: .line 284
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic org.eclipse.jdt.internal.core.BufferManager.createNullBuffer:(Lorg/eclipse/jdt/core/IOpenable;)Lorg/eclipse/jdt/core/IBuffer;
            astore 3 /* buffer */
        start local 3 // org.eclipse.jdt.core.IBuffer buffer
        12: .line 285
            aload 3 /* buffer */
            ifnonnull 13
            aconst_null
            areturn
        13: .line 286
      StackMap locals: org.eclipse.jdt.core.IBuffer
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.getBufferManager:()Lorg/eclipse/jdt/internal/core/BufferManager;
            astore 4 /* bufManager */
        start local 4 // org.eclipse.jdt.internal.core.BufferManager bufManager
        14: .line 287
            aload 4 /* bufManager */
            aload 3 /* buffer */
            invokevirtual org.eclipse.jdt.internal.core.BufferManager.addBuffer:(Lorg/eclipse/jdt/core/IBuffer;)V
        15: .line 290
            aload 3 /* buffer */
            aload 0 /* this */
            invokeinterface org.eclipse.jdt.core.IBuffer.addBufferChangedListener:(Lorg/eclipse/jdt/core/IBufferChangedListener;)V
        16: .line 291
            aload 3 /* buffer */
            areturn
        end local 4 // org.eclipse.jdt.internal.core.BufferManager bufManager
        end local 3 // org.eclipse.jdt.core.IBuffer buffer
        end local 2 // char[] contents
        end local 1 // org.eclipse.jdt.internal.core.SourceMapper mapper
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
            0   17     1      mapper  Lorg/eclipse/jdt/internal/core/SourceMapper;
            1   17     2    contents  [C
            3   11     3      buffer  Lorg/eclipse/jdt/core/IBuffer;
            5   11     4  bufManager  Lorg/eclipse/jdt/internal/core/BufferManager;
           12   17     3      buffer  Lorg/eclipse/jdt/core/IBuffer;
           14   17     4  bufManager  Lorg/eclipse/jdt/internal/core/BufferManager;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
        Name  Flags
      mapper  

  public org.eclipse.jdt.core.IModuleDescription getModule();
    descriptor: ()Lorg/eclipse/jdt/core/IModuleDescription;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
         0: .line 297
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.ModularClassFile.binaryModule:Lorg/eclipse/jdt/internal/core/BinaryModule;
            ifnonnull 4
         1: .line 298
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.createElementInfo:()Ljava/lang/Object;
            iconst_0
            aconst_null
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.openWhenClosed:(Ljava/lang/Object;ZLorg/eclipse/core/runtime/IProgressMonitor;)Ljava/lang/Object;
            pop
         2: .line 299
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.ModularClassFile.binaryModule:Lorg/eclipse/jdt/internal/core/BinaryModule;
            ifnonnull 4
         3: .line 300
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.ModularClassFile.newNotPresentException:()Lorg/eclipse/jdt/core/JavaModelException;
            athrow
         4: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.ModularClassFile.binaryModule:Lorg/eclipse/jdt/internal/core/BinaryModule;
            areturn
        end local 0 // org.eclipse.jdt.internal.core.ModularClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/eclipse/jdt/internal/core/ModularClassFile;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
}
SourceFile: "ModularClassFile.java"
InnerClasses:
  public PerWorkingCopyInfo = org.eclipse.jdt.internal.core.JavaModelManager$PerWorkingCopyInfo of org.eclipse.jdt.internal.core.JavaModelManager