public class org.eclipse.jdt.internal.core.JarPackageFragmentRoot extends org.eclipse.jdt.internal.core.PackageFragmentRoot
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.JarPackageFragmentRoot
  super_class: org.eclipse.jdt.internal.core.PackageFragmentRoot
{
  protected static final java.util.ArrayList EMPTY_LIST;
    descriptor: Ljava/util/ArrayList;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  protected final org.eclipse.core.runtime.IPath jarPath;
    descriptor: Lorg/eclipse/core/runtime/IPath;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  boolean knownToBeModuleLess;
    descriptor: Z
    flags: (0x0000) 

  private boolean multiVersion;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  protected final org.eclipse.jdt.core.IClasspathAttribute[] extraAttributes;
    descriptor: [Lorg/eclipse/jdt/core/IClasspathAttribute;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 66
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putstatic org.eclipse.jdt.internal.core.JarPackageFragmentRoot.EMPTY_LIST:Ljava/util/ArrayList;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.eclipse.core.resources.IResource, org.eclipse.core.runtime.IPath, org.eclipse.jdt.internal.core.JavaProject, org.eclipse.jdt.core.IClasspathAttribute[]);
    descriptor: (Lorg/eclipse/core/resources/IResource;Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/jdt/internal/core/JavaProject;[Lorg/eclipse/jdt/core/IClasspathAttribute;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=5
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
        start local 1 // org.eclipse.core.resources.IResource resource
        start local 2 // org.eclipse.core.runtime.IPath externalJarPath
        start local 3 // org.eclipse.jdt.internal.core.JavaProject project
        start local 4 // org.eclipse.jdt.core.IClasspathAttribute[] attributes
         0: .line 91
            aload 0 /* this */
            aload 1 /* resource */
            aload 3 /* project */
            invokespecial org.eclipse.jdt.internal.core.PackageFragmentRoot.<init>:(Lorg/eclipse/core/resources/IResource;Lorg/eclipse/jdt/internal/core/JavaProject;)V
         1: .line 92
            aload 0 /* this */
            aload 2 /* externalJarPath */
            putfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.jarPath:Lorg/eclipse/core/runtime/IPath;
         2: .line 93
            aload 4 /* attributes */
            ifnonnull 14
         3: .line 99
            aload 3 /* project */
            invokevirtual org.eclipse.jdt.internal.core.JavaProject.getPerProjectInfo:()Lorg/eclipse/jdt/internal/core/JavaModelManager$PerProjectInfo;
            astore 5 /* perProjectInfo */
        start local 5 // org.eclipse.jdt.internal.core.JavaModelManager$PerProjectInfo perProjectInfo
         4: .line 100
            aload 5 /* perProjectInfo */
            dup
            astore 6
            monitorenter
         5: .line 101
            aload 5 /* perProjectInfo */
            getfield org.eclipse.jdt.internal.core.JavaModelManager$PerProjectInfo.resolvedClasspath:[Lorg/eclipse/jdt/core/IClasspathEntry;
            ifnull 9
            aload 5 /* perProjectInfo */
            getfield org.eclipse.jdt.internal.core.JavaModelManager$PerProjectInfo.unresolvedEntryStatus:Lorg/eclipse/jdt/core/IJavaModelStatus;
            getstatic org.eclipse.jdt.internal.core.JavaModelStatus.VERIFIED_OK:Lorg/eclipse/jdt/core/IJavaModelStatus;
            if_acmpne 9
         6: .line 102
            aload 3 /* project */
            aload 2 /* externalJarPath */
            invokevirtual org.eclipse.jdt.internal.core.JavaProject.getClasspathEntryFor:(Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/jdt/core/IClasspathEntry;
            astore 7 /* classpathEntry */
        start local 7 // org.eclipse.jdt.core.IClasspathEntry classpathEntry
         7: .line 103
            aload 7 /* classpathEntry */
            ifnull 9
         8: .line 104
            aload 7 /* classpathEntry */
            invokeinterface org.eclipse.jdt.core.IClasspathEntry.getExtraAttributes:()[Lorg/eclipse/jdt/core/IClasspathAttribute;
            astore 4 /* attributes */
        end local 7 // org.eclipse.jdt.core.IClasspathEntry classpathEntry
         9: .line 100
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.core.resources.IResource org.eclipse.core.runtime.IPath org.eclipse.jdt.internal.core.JavaProject org.eclipse.jdt.core.IClasspathAttribute[] org.eclipse.jdt.internal.core.JavaModelManager$PerProjectInfo org.eclipse.jdt.internal.core.JavaModelManager$PerProjectInfo
      StackMap stack:
            aload 6
            monitorexit
        10: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 6
            monitorexit
        12: athrow
        end local 5 // org.eclipse.jdt.internal.core.JavaModelManager$PerProjectInfo perProjectInfo
        13: .line 107
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.core.resources.IResource org.eclipse.core.runtime.IPath org.eclipse.jdt.internal.core.JavaProject org.eclipse.jdt.core.IClasspathAttribute[]
      StackMap stack: org.eclipse.jdt.core.JavaModelException
            pop
        14: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* attributes */
            putfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.extraAttributes:[Lorg/eclipse/jdt/core/IClasspathAttribute;
        15: .line 112
            return
        end local 4 // org.eclipse.jdt.core.IClasspathAttribute[] attributes
        end local 3 // org.eclipse.jdt.internal.core.JavaProject project
        end local 2 // org.eclipse.core.runtime.IPath externalJarPath
        end local 1 // org.eclipse.core.resources.IResource resource
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            0   16     1         resource  Lorg/eclipse/core/resources/IResource;
            0   16     2  externalJarPath  Lorg/eclipse/core/runtime/IPath;
            0   16     3          project  Lorg/eclipse/jdt/internal/core/JavaProject;
            0   16     4       attributes  [Lorg/eclipse/jdt/core/IClasspathAttribute;
            4   13     5   perProjectInfo  Lorg/eclipse/jdt/internal/core/JavaModelManager$PerProjectInfo;
            7    9     7   classpathEntry  Lorg/eclipse/jdt/core/IClasspathEntry;
      Exception table:
        from    to  target  type
           5    10      11  any
          11    12      11  any
           3    13      13  Class org.eclipse.jdt.core.JavaModelException
    MethodParameters:
                 Name  Flags
      resource         
      externalJarPath  
      project          
      attributes       

  protected boolean computeChildren(org.eclipse.jdt.internal.core.OpenableElementInfo, org.eclipse.core.resources.IResource);
    descriptor: (Lorg/eclipse/jdt/internal/core/OpenableElementInfo;Lorg/eclipse/core/resources/IResource;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=25, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
        start local 1 // org.eclipse.jdt.internal.core.OpenableElementInfo info
        start local 2 // org.eclipse.core.resources.IResource underlyingResource
         0: .line 121
            new org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject
            dup
            invokespecial org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject.<init>:()V
            astore 3 /* rawPackageInfo */
        start local 3 // org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject rawPackageInfo
         1: .line 122
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* overridden */
        start local 4 // java.util.Map overridden
         2: .line 123
            getstatic org.eclipse.jdt.internal.core.JarPackageFragmentRoot.NO_ELEMENTS:[Lorg/eclipse/jdt/internal/core/JavaElement;
            astore 5 /* children */
        start local 5 // org.eclipse.jdt.core.IJavaElement[] children
         3: .line 126
            aload 3 /* rawPackageInfo */
            getstatic org.eclipse.jdt.core.compiler.CharOperation.NO_STRINGS:[Ljava/lang/String;
            iconst_2
            anewarray java.util.ArrayList
            dup
            iconst_0
            getstatic org.eclipse.jdt.internal.core.JarPackageFragmentRoot.EMPTY_LIST:Ljava/util/ArrayList;
            aastore
            dup
            iconst_1
            getstatic org.eclipse.jdt.internal.core.JarPackageFragmentRoot.EMPTY_LIST:Ljava/util/ArrayList;
            aastore
            invokevirtual org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject.put:([Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 128
            iconst_0
            istore 6 /* usedIndex */
        start local 6 // boolean usedIndex
         5: .line 129
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.isEnabled:()Z
            ifeq 32
         6: .line 130
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getIndex:()Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            astore 7 /* index */
        start local 7 // org.eclipse.jdt.internal.core.nd.java.JavaIndex index
         7: .line 131
            aconst_null
            astore 8
            aconst_null
            astore 9
         8: aload 7 /* index */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.JavaIndex.getNd:()Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireReadLock:()Lorg/eclipse/jdt/internal/core/nd/IReader;
            astore 10 /* reader */
        start local 10 // org.eclipse.jdt.internal.core.nd.IReader reader
         9: .line 132
            aload 0 /* this */
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getLocationForElement:(Lorg/eclipse/jdt/core/IJavaElement;)Lorg/eclipse/core/runtime/IPath;
            astore 11 /* resourcePath */
        start local 11 // org.eclipse.core.runtime.IPath resourcePath
        10: .line 133
            aload 11 /* resourcePath */
            invokeinterface org.eclipse.core.runtime.IPath.isEmpty:()Z
            ifne 26
        11: .line 134
            aload 7 /* index */
            aload 11 /* resourcePath */
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            invokevirtual org.eclipse.jdt.internal.core.nd.java.JavaIndex.getResourceFile:([C)Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
            astore 12 /* resourceFile */
        start local 12 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
        12: .line 135
            aload 7 /* index */
            aload 12 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.JavaIndex.isUpToDate:(Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;)Z
            ifeq 26
        13: .line 136
            iconst_1
            istore 6 /* usedIndex */
        14: .line 137
            aload 12 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getJdkLevel:()J
            lstore 13 /* level */
        start local 13 // long level
        15: .line 138
            lload 13 /* level */
            invokestatic org.eclipse.jdt.internal.compiler.impl.CompilerOptions.versionFromJdkLevel:(J)Ljava/lang/String;
            astore 15 /* compliance */
        start local 15 // java.lang.String compliance
        16: .line 140
            aload 12 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getZipEntries:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 17
            goto 20
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.jdt.internal.core.OpenableElementInfo org.eclipse.core.resources.IResource org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject java.util.Map org.eclipse.jdt.core.IJavaElement[] int org.eclipse.jdt.internal.core.nd.java.JavaIndex java.lang.Throwable java.lang.Throwable org.eclipse.jdt.internal.core.nd.IReader org.eclipse.core.runtime.IPath org.eclipse.jdt.internal.core.nd.java.NdResourceFile long java.lang.String top java.util.Iterator
      StackMap stack:
        17: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.NdZipEntry
            astore 16 /* next */
        start local 16 // org.eclipse.jdt.internal.core.nd.java.NdZipEntry next
        18: .line 141
            aload 16 /* next */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdZipEntry.getFileName:()Lorg/eclipse/jdt/internal/core/nd/db/IString;
            invokeinterface org.eclipse.jdt.internal.core.nd.db.IString.getString:()Ljava/lang/String;
            astore 18 /* filename */
        start local 18 // java.lang.String filename
        19: .line 142
            aload 0 /* this */
            aload 3 /* rawPackageInfo */
            aload 18 /* filename */
            aload 18 /* filename */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            aload 15 /* compliance */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.initRawPackageInfo:(Lorg/eclipse/jdt/internal/core/util/HashtableOfArrayToObject;Ljava/lang/String;ZLjava/lang/String;)V
        end local 18 // java.lang.String filename
        end local 16 // org.eclipse.jdt.internal.core.nd.java.NdZipEntry next
        20: .line 140
      StackMap locals:
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        21: .line 146
            aload 12 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getTypes:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 17
            goto 25
      StackMap locals:
      StackMap stack:
        22: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.NdType
            astore 16 /* type */
        start local 16 // org.eclipse.jdt.internal.core.nd.java.NdType type
        23: .line 147
            new java.lang.StringBuilder
            dup
            new java.lang.String
            dup
            aload 16 /* type */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.getTypeId:()Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeId.getBinaryName:()[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 ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 18 /* path */
        start local 18 // java.lang.String path
        24: .line 148
            aload 0 /* this */
            aload 3 /* rawPackageInfo */
            aload 18 /* path */
            iconst_0
            aload 15 /* compliance */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.initRawPackageInfo:(Lorg/eclipse/jdt/internal/core/util/HashtableOfArrayToObject;Ljava/lang/String;ZLjava/lang/String;)V
        end local 18 // java.lang.String path
        end local 16 // org.eclipse.jdt.internal.core.nd.java.NdType type
        25: .line 146
      StackMap locals:
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        end local 15 // java.lang.String compliance
        end local 13 // long level
        end local 12 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
        end local 11 // org.eclipse.core.runtime.IPath resourcePath
        26: .line 152
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.jdt.internal.core.OpenableElementInfo org.eclipse.core.resources.IResource org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject java.util.Map org.eclipse.jdt.core.IJavaElement[] int org.eclipse.jdt.internal.core.nd.java.JavaIndex java.lang.Throwable java.lang.Throwable org.eclipse.jdt.internal.core.nd.IReader
      StackMap stack:
            aload 10 /* reader */
            ifnull 32
            aload 10 /* reader */
            invokeinterface org.eclipse.jdt.internal.core.nd.IReader.close:()V
            goto 32
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: astore 8
            aload 10 /* reader */
            ifnull 28
            aload 10 /* reader */
            invokeinterface org.eclipse.jdt.internal.core.nd.IReader.close:()V
        end local 10 // org.eclipse.jdt.internal.core.nd.IReader reader
      StackMap locals:
      StackMap stack:
        28: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        29: astore 9
            aload 8
            ifnonnull 30
            aload 9
            astore 8
            goto 31
      StackMap locals:
      StackMap stack:
        30: aload 8
            aload 9
            if_acmpeq 31
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        31: aload 8
            athrow
        end local 7 // org.eclipse.jdt.internal.core.nd.java.JavaIndex index
        32: .line 157
      StackMap locals:
      StackMap stack:
            iload 6 /* usedIndex */
            ifne 76
        33: .line 158
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getPath:()Lorg/eclipse/core/runtime/IPath;
            iconst_1
            invokestatic org.eclipse.jdt.internal.core.JavaModel.getTarget:(Lorg/eclipse/core/runtime/IPath;Z)Ljava/lang/Object;
            astore 7 /* file */
        start local 7 // java.lang.Object file
        34: .line 159
            aload 7 /* file */
            invokestatic org.eclipse.jdt.internal.core.util.Util.getJdkLevel:(Ljava/lang/Object;)J
            lstore 8 /* classLevel */
        start local 8 // long classLevel
        35: .line 160
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getJavaProject:()Lorg/eclipse/jdt/core/IJavaProject;
            ldc "org.eclipse.jdt.core.compiler.compliance"
            iconst_1
            invokeinterface org.eclipse.jdt.core.IJavaProject.getOption:(Ljava/lang/String;Z)Ljava/lang/String;
            astore 10 /* projectCompliance */
        start local 10 // java.lang.String projectCompliance
        36: .line 161
            aload 10 /* projectCompliance */
            invokestatic org.eclipse.jdt.internal.compiler.impl.CompilerOptions.versionToJdkLevel:(Ljava/lang/String;)J
            lstore 11 /* projectLevel */
        start local 11 // long projectLevel
        37: .line 162
            aconst_null
            astore 13 /* jar */
        start local 13 // java.util.zip.ZipFile jar
        38: .line 164
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getJar:()Ljava/util/zip/ZipFile;
            astore 13 /* jar */
        39: .line 165
            ldc "META-INF/versions/"
            astore 14 /* version */
        start local 14 // java.lang.String version
        40: .line 166
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 15 /* versions */
        start local 15 // java.util.List versions
        41: .line 167
            lload 11 /* projectLevel */
            ldc 3473408
            lcmp
            iflt 53
            aload 13 /* jar */
            aload 14 /* version */
            invokevirtual java.util.zip.ZipFile.getEntry:(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
            ifnull 53
        42: .line 168
            bipush 53
            istore 16 /* earliestJavaVersion */
        start local 16 // int earliestJavaVersion
        43: .line 169
            aload 10 /* projectCompliance */
            invokestatic org.eclipse.jdt.internal.compiler.impl.CompilerOptions.releaseToJDKLevel:(Ljava/lang/String;)J
            lstore 17 /* latestJDK */
        start local 17 // long latestJDK
        44: .line 170
            lload 17 /* latestJDK */
            bipush 16
            lshr
            l2i
            istore 19 /* latestJavaVer */
        start local 19 // int latestJavaVer
        45: .line 172
            iload 19 /* latestJavaVer */
            istore 20 /* i */
        start local 20 // int i
        46: goto 52
        47: .line 173
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.jdt.internal.core.OpenableElementInfo org.eclipse.core.resources.IResource org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject java.util.Map org.eclipse.jdt.core.IJavaElement[] int java.lang.Object long java.lang.String long java.util.zip.ZipFile java.lang.String java.util.List int long int int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            iload 20 /* i */
            bipush 44
            isub
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 21 /* s */
        start local 21 // java.lang.String s
        48: .line 174
            new java.lang.StringBuilder
            dup
            aload 14 /* version */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 21 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 22 /* versionPath */
        start local 22 // java.lang.String versionPath
        49: .line 175
            aload 13 /* jar */
            aload 22 /* versionPath */
            invokevirtual java.util.zip.ZipFile.getEntry:(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
            ifnull 51
        50: .line 176
            aload 15 /* versions */
            aload 21 /* s */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 22 // java.lang.String versionPath
        end local 21 // java.lang.String s
        51: .line 172
      StackMap locals:
      StackMap stack:
            iinc 20 /* i */ -1
      StackMap locals:
      StackMap stack:
        52: iload 20 /* i */
            iload 16 /* earliestJavaVersion */
            if_icmpge 47
        end local 20 // int i
        end local 19 // int latestJavaVer
        end local 17 // long latestJDK
        end local 16 // int earliestJavaVersion
        53: .line 181
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.jdt.internal.core.OpenableElementInfo org.eclipse.core.resources.IResource org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject java.util.Map org.eclipse.jdt.core.IJavaElement[] int java.lang.Object long java.lang.String long java.util.zip.ZipFile java.lang.String java.util.List
      StackMap stack:
            aload 15 /* versions */
            aload 15 /* versions */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 16 /* supportedVersions */
        start local 16 // java.lang.String[] supportedVersions
        54: .line 182
            aload 16 /* supportedVersions */
            arraylength
            ifle 56
        55: .line 183
            aload 0 /* this */
            iconst_1
            putfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.multiVersion:Z
        56: .line 185
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 14 /* version */
            invokevirtual java.lang.String.length:()I
            istore 17 /* length */
        start local 17 // int length
        57: .line 186
            aload 13 /* jar */
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 18 /* e */
        start local 18 // java.util.Enumeration e
        58: goto 70
        59: .line 187
      StackMap locals: int java.util.Enumeration
      StackMap stack:
            aload 18 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            astore 19 /* member */
        start local 19 // java.util.zip.ZipEntry member
        60: .line 188
            aload 19 /* member */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 20 /* name */
        start local 20 // java.lang.String name
        61: .line 189
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.multiVersion:Z
            ifeq 69
            aload 20 /* name */
            invokevirtual java.lang.String.length:()I
            iload 17 /* length */
            iconst_2
            iadd
            if_icmple 69
            aload 20 /* name */
            aload 14 /* version */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 69
        62: .line 190
            aload 20 /* name */
            bipush 47
            iload 17 /* length */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 21 /* end */
        start local 21 // int end
        63: .line 191
            iload 21 /* end */
            aload 20 /* name */
            invokevirtual java.lang.String.length:()I
            if_icmplt 64
            goto 70
        64: .line 192
      StackMap locals: java.util.zip.ZipEntry java.lang.String int
      StackMap stack:
            aload 20 /* name */
            iconst_0
            iload 21 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 22 /* versionPath */
        start local 22 // java.lang.String versionPath
        65: .line 193
            aload 20 /* name */
            iload 17 /* length */
            iload 21 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 23 /* ver */
        start local 23 // java.lang.String ver
        66: .line 194
            aload 15 /* versions */
            aload 23 /* ver */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 69
            aload 20 /* name */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.isClassFileName:(Ljava/lang/String;)Z
            ifeq 69
        67: .line 195
            aload 20 /* name */
            iload 21 /* end */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 20 /* name */
        68: .line 196
            aload 4 /* overridden */
            aload 20 /* name */
            aload 22 /* versionPath */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 23 // java.lang.String ver
        end local 22 // java.lang.String versionPath
        end local 21 // int end
        69: .line 199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* rawPackageInfo */
            aload 20 /* name */
            aload 19 /* member */
            invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
            lload 8 /* classLevel */
            invokestatic org.eclipse.jdt.internal.compiler.impl.CompilerOptions.versionFromJdkLevel:(J)Ljava/lang/String;
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.initRawPackageInfo:(Lorg/eclipse/jdt/internal/core/util/HashtableOfArrayToObject;Ljava/lang/String;ZLjava/lang/String;)V
        end local 20 // java.lang.String name
        end local 19 // java.util.zip.ZipEntry member
        70: .line 186
      StackMap locals:
      StackMap stack:
            aload 18 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 59
        end local 18 // java.util.Enumeration e
        end local 17 // int length
        end local 16 // java.lang.String[] supportedVersions
        end local 15 // java.util.List versions
        end local 14 // java.lang.String version
        71: .line 201
            goto 75
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.jdt.internal.core.OpenableElementInfo org.eclipse.core.resources.IResource org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject java.util.Map org.eclipse.jdt.core.IJavaElement[] int java.lang.Object long java.lang.String long java.util.zip.ZipFile
      StackMap stack: java.lang.Throwable
        72: astore 24
        73: .line 202
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            aload 13 /* jar */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.closeZipFile:(Ljava/util/zip/ZipFile;)V
        74: .line 203
            aload 24
            athrow
        75: .line 202
      StackMap locals:
      StackMap stack:
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            aload 13 /* jar */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.closeZipFile:(Ljava/util/zip/ZipFile;)V
        end local 13 // java.util.zip.ZipFile jar
        end local 11 // long projectLevel
        end local 10 // java.lang.String projectCompliance
        end local 8 // long classLevel
        end local 7 // java.lang.Object file
        76: .line 207
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.jdt.internal.core.OpenableElementInfo org.eclipse.core.resources.IResource org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject java.util.Map org.eclipse.jdt.core.IJavaElement[] int
      StackMap stack:
            aload 3 /* rawPackageInfo */
            invokevirtual org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject.size:()I
            anewarray org.eclipse.jdt.core.IJavaElement
            astore 5 /* children */
        77: .line 208
            iconst_0
            istore 7 /* index */
        start local 7 // int index
        78: .line 209
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        79: aload 3 /* rawPackageInfo */
            getfield org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject.keyTable:[[Ljava/lang/Object;
            arraylength
            istore 9 /* length */
        start local 9 // int length
        80: goto 85
        81: .line 210
      StackMap locals: int int int
      StackMap stack:
            aload 3 /* rawPackageInfo */
            getfield org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject.keyTable:[[Ljava/lang/Object;
            iload 8 /* i */
            aaload
            checkcast java.lang.String[]
            astore 10 /* pkgName */
        start local 10 // java.lang.String[] pkgName
        82: .line 211
            aload 10 /* pkgName */
            ifnonnull 83
            goto 84
        83: .line 212
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 5 /* children */
            iload 7 /* index */
            iinc 7 /* index */ 1
            aload 0 /* this */
            aload 10 /* pkgName */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getPackageFragment:([Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/PackageFragment;
            aastore
        end local 10 // java.lang.String[] pkgName
        84: .line 209
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        85: iload 8 /* i */
            iload 9 /* length */
            if_icmplt 81
        end local 9 // int length
        end local 8 // int i
        end local 7 // int index
        end local 6 // boolean usedIndex
        86: .line 214
            goto 95
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.jdt.internal.core.OpenableElementInfo org.eclipse.core.resources.IResource org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject java.util.Map org.eclipse.jdt.core.IJavaElement[]
      StackMap stack: org.eclipse.core.runtime.CoreException
        87: astore 6 /* e */
        start local 6 // org.eclipse.core.runtime.CoreException e
        88: .line 215
            aload 6 /* e */
            invokevirtual org.eclipse.core.runtime.CoreException.getCause:()Ljava/lang/Throwable;
            instanceof java.util.zip.ZipException
            ifeq 92
        89: .line 217
            iconst_4
            new java.lang.StringBuilder
            dup
            ldc "Invalid ZIP archive: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.toStringWithAncestors:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.util.Util.log:(ILjava/lang/String;)V
        90: .line 218
            getstatic org.eclipse.jdt.internal.core.JarPackageFragmentRoot.NO_ELEMENTS:[Lorg/eclipse/jdt/internal/core/JavaElement;
            astore 5 /* children */
        91: .line 219
            goto 95
      StackMap locals: org.eclipse.core.runtime.CoreException
      StackMap stack:
        92: aload 6 /* e */
            instanceof org.eclipse.jdt.core.JavaModelException
            ifeq 94
        93: .line 220
            aload 6 /* e */
            checkcast org.eclipse.jdt.core.JavaModelException
            athrow
        94: .line 222
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.core.JavaModelException
            dup
            aload 6 /* e */
            invokespecial org.eclipse.jdt.core.JavaModelException.<init>:(Lorg/eclipse/core/runtime/CoreException;)V
            athrow
        end local 6 // org.eclipse.core.runtime.CoreException e
        95: .line 225
      StackMap locals:
      StackMap stack:
            aload 1 /* info */
            aload 5 /* children */
            invokevirtual org.eclipse.jdt.internal.core.OpenableElementInfo.setChildren:([Lorg/eclipse/jdt/core/IJavaElement;)V
        96: .line 226
            aload 1 /* info */
            checkcast org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo
            aload 3 /* rawPackageInfo */
            putfield org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo.rawPackageInfo:Lorg/eclipse/jdt/internal/core/util/HashtableOfArrayToObject;
        97: .line 227
            aload 1 /* info */
            checkcast org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo
            aload 4 /* overridden */
            putfield org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo.overriddenClasses:Ljava/util/Map;
        98: .line 228
            iconst_1
            ireturn
        end local 5 // org.eclipse.jdt.core.IJavaElement[] children
        end local 4 // java.util.Map overridden
        end local 3 // org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject rawPackageInfo
        end local 2 // org.eclipse.core.resources.IResource underlyingResource
        end local 1 // org.eclipse.jdt.internal.core.OpenableElementInfo info
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   99     0                 this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            0   99     1                 info  Lorg/eclipse/jdt/internal/core/OpenableElementInfo;
            0   99     2   underlyingResource  Lorg/eclipse/core/resources/IResource;
            1   99     3       rawPackageInfo  Lorg/eclipse/jdt/internal/core/util/HashtableOfArrayToObject;
            2   99     4           overridden  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            3   99     5             children  [Lorg/eclipse/jdt/core/IJavaElement;
            5   86     6            usedIndex  Z
            7   32     7                index  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            9   28    10               reader  Lorg/eclipse/jdt/internal/core/nd/IReader;
           10   26    11         resourcePath  Lorg/eclipse/core/runtime/IPath;
           12   26    12         resourceFile  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
           15   26    13                level  J
           16   26    15           compliance  Ljava/lang/String;
           18   20    16                 next  Lorg/eclipse/jdt/internal/core/nd/java/NdZipEntry;
           19   20    18             filename  Ljava/lang/String;
           23   25    16                 type  Lorg/eclipse/jdt/internal/core/nd/java/NdType;
           24   25    18                 path  Ljava/lang/String;
           34   76     7                 file  Ljava/lang/Object;
           35   76     8           classLevel  J
           36   76    10    projectCompliance  Ljava/lang/String;
           37   76    11         projectLevel  J
           38   76    13                  jar  Ljava/util/zip/ZipFile;
           40   71    14              version  Ljava/lang/String;
           41   71    15             versions  Ljava/util/List<Ljava/lang/String;>;
           43   53    16  earliestJavaVersion  I
           44   53    17            latestJDK  J
           45   53    19        latestJavaVer  I
           46   53    20                    i  I
           48   51    21                    s  Ljava/lang/String;
           49   51    22          versionPath  Ljava/lang/String;
           54   71    16    supportedVersions  [Ljava/lang/String;
           57   71    17               length  I
           58   71    18                    e  Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
           60   70    19               member  Ljava/util/zip/ZipEntry;
           61   70    20                 name  Ljava/lang/String;
           63   69    21                  end  I
           65   69    22          versionPath  Ljava/lang/String;
           66   69    23                  ver  Ljava/lang/String;
           78   86     7                index  I
           79   86     8                    i  I
           80   86     9               length  I
           82   84    10              pkgName  [Ljava/lang/String;
           88   95     6                    e  Lorg/eclipse/core/runtime/CoreException;
      Exception table:
        from    to  target  type
           9    26      27  any
           8    29      29  any
          38    72      72  any
           3    86      87  Class org.eclipse.core.runtime.CoreException
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
                    Name  Flags
      info                
      underlyingResource  

  protected org.eclipse.jdt.core.IJavaElement[] createChildren(org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject);
    descriptor: (Lorg/eclipse/jdt/internal/core/util/HashtableOfArrayToObject;)[Lorg/eclipse/jdt/core/IJavaElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
        start local 1 // org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject rawPackageInfo
         0: .line 234
            aload 1 /* rawPackageInfo */
            invokevirtual org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject.size:()I
            anewarray org.eclipse.jdt.core.IJavaElement
            astore 2 /* children */
        start local 2 // org.eclipse.jdt.core.IJavaElement[] children
         1: .line 235
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         2: .line 236
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: aload 1 /* rawPackageInfo */
            getfield org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject.keyTable:[[Ljava/lang/Object;
            arraylength
            istore 5 /* length */
        start local 5 // int length
         4: goto 9
         5: .line 237
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject org.eclipse.jdt.core.IJavaElement[] int int int
      StackMap stack:
            aload 1 /* rawPackageInfo */
            getfield org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject.keyTable:[[Ljava/lang/Object;
            iload 4 /* i */
            aaload
            checkcast java.lang.String[]
            astore 6 /* pkgName */
        start local 6 // java.lang.String[] pkgName
         6: .line 238
            aload 6 /* pkgName */
            ifnonnull 7
            goto 8
         7: .line 239
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 2 /* children */
            iload 3 /* index */
            iinc 3 /* index */ 1
            aload 0 /* this */
            aload 6 /* pkgName */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getPackageFragment:([Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/PackageFragment;
            aastore
        end local 6 // java.lang.String[] pkgName
         8: .line 236
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 5 /* length */
            if_icmplt 5
        end local 5 // int length
        end local 4 // int i
        10: .line 241
            aload 2 /* children */
            areturn
        end local 3 // int index
        end local 2 // org.eclipse.jdt.core.IJavaElement[] children
        end local 1 // org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject rawPackageInfo
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            0   11     1  rawPackageInfo  Lorg/eclipse/jdt/internal/core/util/HashtableOfArrayToObject;
            1   11     2        children  [Lorg/eclipse/jdt/core/IJavaElement;
            2   11     3           index  I
            3   10     4               i  I
            4   10     5          length  I
            6    8     6         pkgName  [Ljava/lang/String;
    MethodParameters:
                Name  Flags
      rawPackageInfo  final

  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.JarPackageFragmentRoot this
         0: .line 248
            new org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo
            dup
            invokespecial org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo.<init>:()V
            areturn
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;

  protected int determineKind(org.eclipse.core.resources.IResource);
    descriptor: (Lorg/eclipse/core/resources/IResource;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
        start local 1 // org.eclipse.core.resources.IResource underlyingResource
         0: .line 255
            iconst_2
            ireturn
        end local 1 // org.eclipse.core.resources.IResource underlyingResource
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            0    1     1  underlyingResource  Lorg/eclipse/core/resources/IResource;
    MethodParameters:
                    Name  Flags
      underlyingResource  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
        start local 1 // java.lang.Object o
         0: .line 266
            aload 0 /* this */
            aload 1 /* o */
            if_acmpne 2
         1: .line 267
            iconst_1
            ireturn
         2: .line 268
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.eclipse.jdt.internal.core.JarPackageFragmentRoot
            ifeq 8
         3: .line 269
            aload 1 /* o */
            checkcast org.eclipse.jdt.internal.core.JarPackageFragmentRoot
            astore 2 /* other */
        start local 2 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot other
         4: .line 270
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.jarPath:Lorg/eclipse/core/runtime/IPath;
            aload 2 /* other */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.jarPath:Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 271
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.extraAttributes:[Lorg/eclipse/jdt/core/IClasspathAttribute;
            aload 2 /* other */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.extraAttributes:[Lorg/eclipse/jdt/core/IClasspathAttribute;
            invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifeq 7
         6: .line 270
            iconst_1
            ireturn
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot
      StackMap stack:
         7: iconst_0
            ireturn
        end local 2 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot other
         8: .line 273
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            0    9     1      o  Ljava/lang/Object;
            4    8     2  other  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
    MethodParameters:
      Name  Flags
      o     

  public java.lang.String getElementName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
         0: .line 277
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.jarPath:Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.lastSegment:()Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;

  public java.util.zip.ZipFile getJar();
    descriptor: ()Ljava/util/zip/ZipFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
         0: .line 285
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getPath:()Lorg/eclipse/core/runtime/IPath;
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.getZipFile:(Lorg/eclipse/core/runtime/IPath;)Ljava/util/zip/ZipFile;
            areturn
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
    Exceptions:
      throws org.eclipse.core.runtime.CoreException

  public int getKind();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
         0: .line 292
            iconst_2
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;

  int internalKind();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
         0: .line 296
            iconst_2
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException

  public java.lang.Object[] getNonJavaResources();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
         0: .line 304
            aload 0 /* this */
            getstatic org.eclipse.jdt.core.compiler.CharOperation.NO_STRINGS:[Ljava/lang/String;
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getPackageFragment:([Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/PackageFragment;
            checkcast org.eclipse.jdt.internal.core.JarPackageFragment
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragment.storedNonJavaResources:()[Ljava/lang/Object;
            astore 1 /* defaultPkgResources */
        start local 1 // java.lang.Object[] defaultPkgResources
         1: .line 305
            aload 1 /* defaultPkgResources */
            arraylength
            istore 2 /* length */
        start local 2 // int length
         2: .line 306
            iload 2 /* length */
            ifne 4
         3: .line 307
            aload 1 /* defaultPkgResources */
            areturn
         4: .line 308
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            iload 2 /* length */
            anewarray java.lang.Object
            astore 3 /* nonJavaResources */
        start local 3 // java.lang.Object[] nonJavaResources
         5: .line 309
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 10
         7: .line 310
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 1 /* defaultPkgResources */
            iload 4 /* i */
            aaload
            checkcast org.eclipse.jdt.internal.core.JarEntryResource
            astore 5 /* nonJavaResource */
        start local 5 // org.eclipse.jdt.internal.core.JarEntryResource nonJavaResource
         8: .line 311
            aload 3 /* nonJavaResources */
            iload 4 /* i */
            aload 5 /* nonJavaResource */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarEntryResource.clone:(Ljava/lang/Object;)Lorg/eclipse/jdt/internal/core/JarEntryResource;
            aastore
        end local 5 // org.eclipse.jdt.internal.core.JarEntryResource nonJavaResource
         9: .line 309
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            iload 2 /* length */
            if_icmplt 7
        end local 4 // int i
        11: .line 313
            aload 3 /* nonJavaResources */
            areturn
        end local 3 // java.lang.Object[] nonJavaResources
        end local 2 // int length
        end local 1 // java.lang.Object[] defaultPkgResources
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   12     0                 this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            1   12     1  defaultPkgResources  [Ljava/lang/Object;
            2   12     2               length  I
            5   12     3     nonJavaResources  [Ljava/lang/Object;
            6   11     4                    i  I
            8    9     5      nonJavaResource  Lorg/eclipse/jdt/internal/core/JarEntryResource;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException

  public org.eclipse.jdt.internal.core.PackageFragment getPackageFragment(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/PackageFragment;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
        start local 1 // java.lang.String[] pkgName
         0: .line 317
            new org.eclipse.jdt.internal.core.JarPackageFragment
            dup
            aload 0 /* this */
            aload 1 /* pkgName */
            invokespecial org.eclipse.jdt.internal.core.JarPackageFragment.<init>:(Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;[Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String[] pkgName
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            0    1     1  pkgName  [Ljava/lang/String;
    MethodParameters:
         Name  Flags
      pkgName  

  public org.eclipse.jdt.internal.core.PackageFragment getPackageFragment(java.lang.String[], java.lang.String);
    descriptor: ([Ljava/lang/String;Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/PackageFragment;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
        start local 1 // java.lang.String[] pkgName
        start local 2 // java.lang.String mod
         0: .line 321
            new org.eclipse.jdt.internal.core.JarPackageFragment
            dup
            aload 0 /* this */
            aload 1 /* pkgName */
            invokespecial org.eclipse.jdt.internal.core.JarPackageFragment.<init>:(Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;[Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String mod
        end local 1 // java.lang.String[] pkgName
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            0    1     1  pkgName  [Ljava/lang/String;
            0    1     2      mod  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      pkgName  
      mod      

  public java.lang.String getClassFilePath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
        start local 1 // java.lang.String classname
         0: .line 326
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.multiVersion:Z
            ifeq 7
         1: .line 329
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getElementInfo:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo
            astore 2 /* elementInfo */
        start local 2 // org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo elementInfo
         2: .line 330
            aload 2 /* elementInfo */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo.overriddenClasses:Ljava/util/Map;
            aload 1 /* classname */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* versionPath */
        start local 3 // java.lang.String versionPath
         3: .line 331
            aload 3 /* versionPath */
            ifnonnull 4
            aload 1 /* classname */
            goto 5
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo java.lang.String
      StackMap stack:
         4: new java.lang.StringBuilder
            dup
            aload 3 /* versionPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* classname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         5: areturn
        end local 3 // java.lang.String versionPath
        end local 2 // org.eclipse.jdt.internal.core.JarPackageFragmentRootInfo elementInfo
         6: .line 332
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot java.lang.String
      StackMap stack: org.eclipse.jdt.core.JavaModelException
            pop
         7: .line 336
      StackMap locals:
      StackMap stack:
            aload 1 /* classname */
            areturn
        end local 1 // java.lang.String classname
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            0    8     1    classname  Ljava/lang/String;
            2    6     2  elementInfo  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRootInfo;
            3    6     3  versionPath  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     5       6  Class org.eclipse.jdt.core.JavaModelException
    MethodParameters:
           Name  Flags
      classname  

  public org.eclipse.jdt.core.IModuleDescription getModuleDescription();
    descriptor: ()Lorg/eclipse/jdt/core/IModuleDescription;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
         0: .line 340
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.knownToBeModuleLess:Z
            ifeq 2
         1: .line 341
            aconst_null
            areturn
         2: .line 342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.core.PackageFragmentRoot.getModuleDescription:()Lorg/eclipse/jdt/core/IModuleDescription;
            astore 1 /* module */
        start local 1 // org.eclipse.jdt.core.IModuleDescription module
         3: .line 343
            aload 1 /* module */
            ifnonnull 5
         4: .line 344
            aload 0 /* this */
            iconst_1
            putfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.knownToBeModuleLess:Z
         5: .line 345
      StackMap locals: org.eclipse.jdt.core.IModuleDescription
      StackMap stack:
            aload 1 /* module */
            areturn
        end local 1 // org.eclipse.jdt.core.IModuleDescription module
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            3    6     1  module  Lorg/eclipse/jdt/core/IModuleDescription;

  public org.eclipse.core.runtime.IPath internalPath();
    descriptor: ()Lorg/eclipse/core/runtime/IPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
         0: .line 350
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.isExternal:()Z
            ifeq 2
         1: .line 351
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.jarPath:Lorg/eclipse/core/runtime/IPath;
            areturn
         2: .line 353
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.core.PackageFragmentRoot.internalPath:()Lorg/eclipse/core/runtime/IPath;
            areturn
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;

  public 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: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
        start local 1 // org.eclipse.jdt.internal.core.PackageFragmentRoot root
         0: .line 358
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.resource:Lorg/eclipse/core/resources/IResource;
            ifnonnull 2
         1: .line 360
            aconst_null
            areturn
         2: .line 362
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* root */
            invokespecial org.eclipse.jdt.internal.core.PackageFragmentRoot.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.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            0    3     1  root  Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;
    MethodParameters:
      Name  Flags
      root  

  public org.eclipse.core.resources.IResource getUnderlyingResource();
    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.JarPackageFragmentRoot this
         0: .line 371
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.isExternal:()Z
            ifeq 3
         1: .line 372
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.exists:()Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.newNotPresentException:()Lorg/eclipse/jdt/core/JavaModelException;
            athrow
         2: .line 373
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         3: .line 375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.core.PackageFragmentRoot.getUnderlyingResource:()Lorg/eclipse/core/resources/IResource;
            areturn
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
         0: .line 380
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.jarPath:Lorg/eclipse/core/runtime/IPath;
            invokevirtual java.lang.Object.hashCode:()I
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.JarPackageFragmentRoot.extraAttributes:[Lorg/eclipse/jdt/core/IClasspathAttribute;
            invokestatic java.util.Arrays.hashCode:([Ljava/lang/Object;)I
            iadd
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;

  protected void initRawPackageInfo(org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject, java.lang.String, boolean, java.lang.String);
    descriptor: (Lorg/eclipse/jdt/internal/core/util/HashtableOfArrayToObject;Ljava/lang/String;ZLjava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=13, args_size=5
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
        start local 1 // org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject rawPackageInfo
        start local 2 // java.lang.String entryName
        start local 3 // boolean isDirectory
        start local 4 // java.lang.String compliance
         0: .line 384
            iload 3 /* isDirectory */
            ifeq 6
         1: .line 385
            aload 2 /* entryName */
            aload 2 /* entryName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 4
         2: .line 386
            aload 2 /* entryName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            istore 5 /* lastSeparator */
        start local 5 // int lastSeparator
         3: .line 387
            goto 7
        end local 5 // int lastSeparator
         4: .line 388
      StackMap locals:
      StackMap stack:
            aload 2 /* entryName */
            invokevirtual java.lang.String.length:()I
            istore 5 /* lastSeparator */
        start local 5 // int lastSeparator
         5: .line 390
            goto 7
        end local 5 // int lastSeparator
         6: .line 391
      StackMap locals:
      StackMap stack:
            aload 2 /* entryName */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 5 /* lastSeparator */
        start local 5 // int lastSeparator
         7: .line 393
      StackMap locals: int
      StackMap stack:
            bipush 47
            aload 2 /* entryName */
            iconst_0
            iload 5 /* lastSeparator */
            invokestatic org.eclipse.jdt.internal.core.util.Util.splitOn:(CLjava/lang/String;II)[Ljava/lang/String;
            astore 6 /* pkgName */
        start local 6 // java.lang.String[] pkgName
         8: .line 394
            aconst_null
            astore 7 /* existing */
        start local 7 // java.lang.String[] existing
         9: .line 395
            aload 6 /* pkgName */
            arraylength
            istore 8 /* length */
        start local 8 // int length
        10: .line 396
            iload 8 /* length */
            istore 9 /* existingLength */
        start local 9 // int existingLength
        11: .line 397
            goto 15
        12: .line 398
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject java.lang.String int java.lang.String int java.lang.String[] java.lang.String[] int int
      StackMap stack:
            aload 1 /* rawPackageInfo */
            aload 6 /* pkgName */
            iload 9 /* existingLength */
            invokevirtual org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject.getKey:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 7 /* existing */
        13: .line 399
            aload 7 /* existing */
            ifnull 14
            goto 16
        14: .line 400
      StackMap locals:
      StackMap stack:
            iinc 9 /* existingLength */ -1
        15: .line 397
      StackMap locals:
      StackMap stack:
            iload 9 /* existingLength */
            ifge 12
        16: .line 402
      StackMap locals:
      StackMap stack:
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            astore 10 /* manager */
        start local 10 // org.eclipse.jdt.internal.core.JavaModelManager manager
        17: .line 403
            iload 9 /* existingLength */
            istore 11 /* i */
        start local 11 // int i
        18: goto 30
        19: .line 405
      StackMap locals: org.eclipse.jdt.internal.core.JavaModelManager int
      StackMap stack:
            aload 6 /* pkgName */
            iload 11 /* i */
            aaload
            aconst_null
            aload 4 /* compliance */
            invokestatic org.eclipse.jdt.internal.core.util.Util.isValidFolderNameForPackage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 24
        20: .line 406
            aload 7 /* existing */
            iconst_0
            iload 11 /* i */
            iconst_1
            iadd
            anewarray java.lang.String
            dup
            astore 7 /* existing */
            iconst_0
            iload 11 /* i */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        21: .line 407
            aload 7 /* existing */
            iload 11 /* i */
            aload 10 /* manager */
            aload 6 /* pkgName */
            iload 11 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.intern:(Ljava/lang/String;)Ljava/lang/String;
            aastore
        22: .line 408
            aload 1 /* rawPackageInfo */
            aload 7 /* existing */
            iconst_2
            anewarray java.util.ArrayList
            dup
            iconst_0
            getstatic org.eclipse.jdt.internal.core.JarPackageFragmentRoot.EMPTY_LIST:Ljava/util/ArrayList;
            aastore
            dup
            iconst_1
            getstatic org.eclipse.jdt.internal.core.JarPackageFragmentRoot.EMPTY_LIST:Ljava/util/ArrayList;
            aastore
            invokevirtual org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject.put:([Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 409
            goto 29
        24: .line 411
      StackMap locals:
      StackMap stack:
            iload 3 /* isDirectory */
            ifne 28
        25: .line 412
            aload 1 /* rawPackageInfo */
            aload 7 /* existing */
            invokevirtual org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject.get:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.ArrayList[]
            astore 12 /* children */
        start local 12 // java.util.ArrayList[] children
        26: .line 413
            aload 12 /* children */
            iconst_1
            aaload
            getstatic org.eclipse.jdt.internal.core.JarPackageFragmentRoot.EMPTY_LIST:Ljava/util/ArrayList;
            if_acmpne 27
            aload 12 /* children */
            iconst_1
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            aastore
        27: .line 414
      StackMap locals: java.util.ArrayList[]
      StackMap stack:
            aload 12 /* children */
            iconst_1
            aaload
            aload 2 /* entryName */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // java.util.ArrayList[] children
        28: .line 416
      StackMap locals:
      StackMap stack:
            return
        29: .line 403
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 11 /* i */
            iload 8 /* length */
            if_icmplt 19
        end local 11 // int i
        31: .line 419
            iload 3 /* isDirectory */
            ifeq 33
        32: .line 420
            return
        33: .line 423
      StackMap locals:
      StackMap stack:
            aload 1 /* rawPackageInfo */
            aload 6 /* pkgName */
            invokevirtual org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject.get:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.ArrayList[]
            astore 11 /* children */
        start local 11 // java.util.ArrayList[] children
        34: .line 424
            aload 2 /* entryName */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.isClassFileName:(Ljava/lang/String;)Z
            ifeq 39
        35: .line 425
            aload 11 /* children */
            iconst_0
            aaload
            getstatic org.eclipse.jdt.internal.core.JarPackageFragmentRoot.EMPTY_LIST:Ljava/util/ArrayList;
            if_acmpne 36
            aload 11 /* children */
            iconst_0
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            aastore
        36: .line 426
      StackMap locals: java.util.ArrayList[]
      StackMap stack:
            aload 2 /* entryName */
            iload 5 /* lastSeparator */
            iconst_1
            iadd
            aload 2 /* entryName */
            invokevirtual java.lang.String.length:()I
            bipush 6
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 12 /* nameWithoutExtension */
        start local 12 // java.lang.String nameWithoutExtension
        37: .line 427
            aload 11 /* children */
            iconst_0
            aaload
            aload 12 /* nameWithoutExtension */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // java.lang.String nameWithoutExtension
        38: .line 428
            goto 41
        39: .line 429
      StackMap locals:
      StackMap stack:
            aload 11 /* children */
            iconst_1
            aaload
            getstatic org.eclipse.jdt.internal.core.JarPackageFragmentRoot.EMPTY_LIST:Ljava/util/ArrayList;
            if_acmpne 40
            aload 11 /* children */
            iconst_1
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            aastore
        40: .line 430
      StackMap locals:
      StackMap stack:
            aload 11 /* children */
            iconst_1
            aaload
            aload 2 /* entryName */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        41: .line 433
      StackMap locals:
      StackMap stack:
            return
        end local 11 // java.util.ArrayList[] children
        end local 10 // org.eclipse.jdt.internal.core.JavaModelManager manager
        end local 9 // int existingLength
        end local 8 // int length
        end local 7 // java.lang.String[] existing
        end local 6 // java.lang.String[] pkgName
        end local 5 // int lastSeparator
        end local 4 // java.lang.String compliance
        end local 3 // boolean isDirectory
        end local 2 // java.lang.String entryName
        end local 1 // org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject rawPackageInfo
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   42     0                  this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            0   42     1        rawPackageInfo  Lorg/eclipse/jdt/internal/core/util/HashtableOfArrayToObject;
            0   42     2             entryName  Ljava/lang/String;
            0   42     3           isDirectory  Z
            0   42     4            compliance  Ljava/lang/String;
            3    4     5         lastSeparator  I
            5    6     5         lastSeparator  I
            7   42     5         lastSeparator  I
            8   42     6               pkgName  [Ljava/lang/String;
            9   42     7              existing  [Ljava/lang/String;
           10   42     8                length  I
           11   42     9        existingLength  I
           17   42    10               manager  Lorg/eclipse/jdt/internal/core/JavaModelManager;
           18   31    11                     i  I
           26   28    12              children  [Ljava/util/ArrayList;
           34   42    11              children  [Ljava/util/ArrayList;
           37   38    12  nameWithoutExtension  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      rawPackageInfo  
      entryName       
      isDirectory     
      compliance      

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

  public boolean isExternal();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
         0: .line 446
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.resource:()Lorg/eclipse/core/resources/IResource;
            ifnonnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;

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

  protected boolean resourceExists(org.eclipse.core.resources.IResource);
    descriptor: (Lorg/eclipse/core/resources/IResource;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
        start local 1 // org.eclipse.core.resources.IResource underlyingResource
         0: .line 460
            aload 1 /* underlyingResource */
            ifnonnull 6
         1: .line 463
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getPath:()Lorg/eclipse/core/runtime/IPath;
         2: .line 464
            iconst_1
         3: .line 462
            invokestatic org.eclipse.jdt.internal.core.JavaModel.getExternalTarget:(Lorg/eclipse/core/runtime/IPath;Z)Ljava/lang/Object;
            ifnull 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
         5: .line 461
            ireturn
         6: .line 466
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* underlyingResource */
            invokespecial org.eclipse.jdt.internal.core.PackageFragmentRoot.resourceExists:(Lorg/eclipse/core/resources/IResource;)Z
            ireturn
        end local 1 // org.eclipse.core.resources.IResource underlyingResource
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            0    7     1  underlyingResource  Lorg/eclipse/core/resources/IResource;
    MethodParameters:
                    Name  Flags
      underlyingResource  

  protected void toStringAncestors(java.lang.StringBuffer);
    descriptor: (Ljava/lang/StringBuffer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
        start local 1 // java.lang.StringBuffer buffer
         0: .line 472
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.isExternal:()Z
            ifeq 2
         1: .line 475
            return
         2: .line 476
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buffer */
            invokespecial org.eclipse.jdt.internal.core.PackageFragmentRoot.toStringAncestors:(Ljava/lang/StringBuffer;)V
         3: .line 477
            return
        end local 1 // java.lang.StringBuffer buffer
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            0    4     1  buffer  Ljava/lang/StringBuffer;
    MethodParameters:
        Name  Flags
      buffer  

  public java.net.URL getIndexPath();
    descriptor: ()Ljava/net/URL;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
         0: .line 481
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getParent:()Lorg/eclipse/jdt/core/IJavaElement;
            checkcast org.eclipse.jdt.internal.core.JavaProject
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getPath:()Lorg/eclipse/core/runtime/IPath;
            invokevirtual org.eclipse.jdt.internal.core.JavaProject.getClasspathEntryFor:(Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/jdt/core/IClasspathEntry;
            astore 1 /* entry */
        start local 1 // org.eclipse.jdt.core.IClasspathEntry entry
         1: .line 482
            aload 1 /* entry */
            ifnull 4
            aload 1 /* entry */
            checkcast org.eclipse.jdt.internal.core.ClasspathEntry
            invokevirtual org.eclipse.jdt.internal.core.ClasspathEntry.getLibraryIndexLocation:()Ljava/net/URL;
         2: areturn
        end local 1 // org.eclipse.jdt.core.IClasspathEntry entry
         3: .line 483
      StackMap locals:
      StackMap stack: org.eclipse.jdt.core.JavaModelException
            pop
         4: .line 486
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            1    3     1  entry  Lorg/eclipse/jdt/core/IClasspathEntry;
      Exception table:
        from    to  target  type
           0     2       3  Class org.eclipse.jdt.core.JavaModelException

  public java.util.jar.Manifest getManifest();
    descriptor: ()Ljava/util/jar/Manifest;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
         0: .line 491
            aconst_null
            astore 1 /* jar */
        start local 1 // java.util.zip.ZipFile jar
         1: .line 493
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getJar:()Ljava/util/zip/ZipFile;
            astore 1 /* jar */
         2: .line 494
            aload 1 /* jar */
            ldc "META-INF/MANIFEST.MF"
            invokevirtual java.util.zip.ZipFile.getEntry:(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
            astore 2 /* mfEntry */
        start local 2 // java.util.zip.ZipEntry mfEntry
         3: .line 495
            aload 2 /* mfEntry */
            ifnull 12
         4: .line 496
            new java.util.jar.Manifest
            dup
            aload 1 /* jar */
            aload 2 /* mfEntry */
            invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 4
         5: .line 500
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            aload 1 /* jar */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.closeZipFile:(Ljava/util/zip/ZipFile;)V
         6: .line 496
            aload 4
            areturn
        end local 2 // java.util.zip.ZipEntry mfEntry
         7: .line 497
      StackMap locals: org.eclipse.jdt.internal.core.JarPackageFragmentRoot java.util.zip.ZipFile
      StackMap stack: java.lang.Exception
            pop
         8: .line 500
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            aload 1 /* jar */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.closeZipFile:(Ljava/util/zip/ZipFile;)V
            goto 13
         9: .line 499
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
        10: .line 500
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            aload 1 /* jar */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.closeZipFile:(Ljava/util/zip/ZipFile;)V
        11: .line 501
            aload 3
            athrow
        12: .line 500
      StackMap locals:
      StackMap stack:
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            aload 1 /* jar */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.closeZipFile:(Ljava/util/zip/ZipFile;)V
        13: .line 502
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.util.zip.ZipFile jar
        end local 0 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            1   14     1      jar  Ljava/util/zip/ZipFile;
            3    7     2  mfEntry  Ljava/util/zip/ZipEntry;
      Exception table:
        from    to  target  type
           1     5       7  Class org.eclipse.core.runtime.CoreException
           1     5       7  Class java.io.IOException
           1     5       9  any
           7     8       9  any
}
SourceFile: "JarPackageFragmentRoot.java"
InnerClasses:
  public PerProjectInfo = org.eclipse.jdt.internal.core.JavaModelManager$PerProjectInfo of org.eclipse.jdt.internal.core.JavaModelManager