public class org.eclipse.jdt.internal.core.nd.java.JavaIndex
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.nd.java.JavaIndex
  super_class: java.lang.Object
{
  static final int CURRENT_VERSION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int MAX_SUPPORTED_VERSION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int MIN_SUPPORTED_VERSION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  public static final org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex<org.eclipse.jdt.internal.core.nd.java.NdResourceFile> FILES;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex<Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;>;

  public static final org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex<org.eclipse.jdt.internal.core.nd.java.NdTypeId> SIMPLE_INDEX;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex<Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;>;

  public static final org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex<org.eclipse.jdt.internal.core.nd.java.NdTypeId> TYPES;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex<Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;>;

  public static final org.eclipse.jdt.internal.core.nd.field.StructDef<org.eclipse.jdt.internal.core.nd.java.JavaIndex> type;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lorg/eclipse/jdt/internal/core/nd/field/StructDef<Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;>;

  private static final org.eclipse.jdt.internal.core.nd.java.JavaIndex$BestResourceFile bestResourceFile;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex$BestResourceFile;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final long address;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.eclipse.jdt.internal.core.nd.Nd nd;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/Nd;
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$IResultRank anyResult;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$IResultRank;
    flags: (0x0002) ACC_PRIVATE

  private static org.eclipse.jdt.internal.core.nd.Nd globalNd;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/Nd;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.lang.String INDEX_FILENAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "index.db"

  private static final java.lang.Object ndMutex;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 40
            ldc Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.$assertionsDisabled:Z
         3: .line 42
            iconst_1
            bipush 49
            invokestatic org.eclipse.jdt.internal.core.nd.Nd.version:(II)I
            putstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.CURRENT_VERSION:I
         4: .line 43
            iconst_1
            bipush 49
            invokestatic org.eclipse.jdt.internal.core.nd.Nd.version:(II)I
            putstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.MAX_SUPPORTED_VERSION:I
         5: .line 44
            iconst_1
            bipush 49
            invokestatic org.eclipse.jdt.internal.core.nd.Nd.version:(II)I
            putstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.MIN_SUPPORTED_VERSION:I
         6: .line 53
            ldc Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            invokestatic org.eclipse.jdt.internal.core.nd.field.StructDef.create:(Ljava/lang/Class;)Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            putstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
         7: .line 54
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            getstatic org.eclipse.jdt.internal.core.nd.java.NdResourceFile.FILENAME:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchKey;
            invokestatic org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex.create:(Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchKey;)Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
            putstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.FILES:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
         8: .line 55
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            getstatic org.eclipse.jdt.internal.core.nd.java.NdTypeId.SIMPLE_NAME:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchKey;
            invokestatic org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex.create:(Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchKey;)Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
            putstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.SIMPLE_INDEX:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
         9: .line 56
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            getstatic org.eclipse.jdt.internal.core.nd.java.NdTypeId.FIELD_DESCRIPTOR:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchKey;
            invokestatic org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex.create:(Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchKey;)Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
            putstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.TYPES:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
        10: .line 57
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.done:()V
        11: .line 60
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.$assertionsDisabled:Z
            ifne 12
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokeinterface org.eclipse.jdt.internal.core.nd.ITypeFactory.getRecordSize:()I
            sipush 4096
            if_icmple 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 73
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.internal.core.nd.java.JavaIndex$BestResourceFile
            dup
            invokespecial org.eclipse.jdt.internal.core.nd.java.JavaIndex$BestResourceFile.<init>:()V
            putstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.bestResourceFile:Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex$BestResourceFile;
        13: .line 84
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.ndMutex:Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.eclipse.jdt.internal.core.nd.Nd, long);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd dom
        start local 2 // long address
         0: .line 86
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 76
            aload 0 /* this */
            new org.eclipse.jdt.internal.core.nd.java.JavaIndex$1
            dup
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.core.nd.java.JavaIndex$1.<init>:(Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;)V
            putfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.anyResult:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$IResultRank;
         2: .line 87
            aload 0 /* this */
            lload 2 /* address */
            putfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.address:J
         3: .line 88
            aload 0 /* this */
            aload 1 /* dom */
            putfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
         4: .line 89
            return
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd dom
        end local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            0    5     1      dom  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    5     2  address  J
    MethodParameters:
         Name  Flags
      dom      
      address  

  public org.eclipse.jdt.internal.core.nd.java.NdResourceFile getResourceFile(char[]);
    descriptor: ([C)Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
        start local 1 // char[] location
         0: .line 95
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.FILES:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.address:J
            aload 1 /* location */
            invokestatic org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria.create:([C)Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;
         1: .line 96
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.bestResourceFile:Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex$BestResourceFile;
         2: .line 95
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex.findBest:(Lorg/eclipse/jdt/internal/core/nd/Nd;JLorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$IResultRank;)Lorg/eclipse/jdt/internal/core/nd/NdNode;
            checkcast org.eclipse.jdt.internal.core.nd.java.NdResourceFile
            areturn
        end local 1 // char[] location
        end local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            0    3     1  location  [C
    MethodParameters:
          Name  Flags
      location  

  public boolean isUpToDate(org.eclipse.jdt.internal.core.nd.java.NdResourceFile);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
        start local 1 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile file
         0: .line 107
            aload 1 /* file */
            ifnull 10
            aload 1 /* file */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.isDoneIndexing:()Z
            ifeq 10
         1: .line 108
            aload 1 /* file */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getLocation:()Lorg/eclipse/jdt/internal/core/nd/db/IString;
            invokeinterface org.eclipse.jdt.internal.core.nd.db.IString.getString:()Ljava/lang/String;
            astore 2 /* location */
        start local 2 // java.lang.String location
         2: .line 110
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.JavaIndex.getNd:()Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.FileStateCache.getCache:(Lorg/eclipse/jdt/internal/core/nd/Nd;)Lorg/eclipse/jdt/internal/core/nd/indexer/FileStateCache;
            astore 3 /* cache */
        start local 3 // org.eclipse.jdt.internal.core.nd.indexer.FileStateCache cache
         3: .line 111
            aload 3 /* cache */
            aload 2 /* location */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.FileStateCache.isUpToDate:(Ljava/lang/String;)Ljava/lang/Boolean;
            astore 4 /* cachedResult */
        start local 4 // java.lang.Boolean cachedResult
         4: .line 112
            aload 4 /* cachedResult */
            ifnull 6
         5: .line 113
            aload 4 /* cachedResult */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
         6: .line 116
      StackMap locals: java.lang.String org.eclipse.jdt.internal.core.nd.indexer.FileStateCache java.lang.Boolean
      StackMap stack:
            new org.eclipse.core.runtime.Path
            dup
            aload 2 /* location */
            invokespecial org.eclipse.core.runtime.Path.<init>:(Ljava/lang/String;)V
            astore 5 /* locationPath */
        start local 5 // org.eclipse.core.runtime.Path locationPath
         7: .line 117
            aload 1 /* file */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getFingerprint:()Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;
            aload 5 /* locationPath */
            aconst_null
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint.test:(Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint$FingerprintTestResult;
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult.matches:()Z
            istore 6 /* result */
        start local 6 // boolean result
         8: .line 118
            aload 3 /* cache */
            aload 2 /* location */
            iload 6 /* result */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.FileStateCache.put:(Ljava/lang/String;Z)V
         9: .line 119
            iload 6 /* result */
            ireturn
        end local 6 // boolean result
        end local 5 // org.eclipse.core.runtime.Path locationPath
        end local 4 // java.lang.Boolean cachedResult
        end local 3 // org.eclipse.jdt.internal.core.nd.indexer.FileStateCache cache
        end local 2 // java.lang.String location
        10: .line 121
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile file
        end local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            0   11     1          file  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
            2   10     2      location  Ljava/lang/String;
            3   10     3         cache  Lorg/eclipse/jdt/internal/core/nd/indexer/FileStateCache;
            4   10     4  cachedResult  Ljava/lang/Boolean;
            7   10     5  locationPath  Lorg/eclipse/core/runtime/Path;
            8   10     6        result  Z
    Exceptions:
      throws org.eclipse.core.runtime.CoreException
    MethodParameters:
      Name  Flags
      file  

  public void dirty(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
        start local 1 // java.lang.String location
         0: .line 125
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.JavaIndex.getNd:()Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.FileStateCache.getCache:(Lorg/eclipse/jdt/internal/core/nd/Nd;)Lorg/eclipse/jdt/internal/core/nd/indexer/FileStateCache;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.FileStateCache.clear:()V
         1: .line 126
            return
        end local 1 // java.lang.String location
        end local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            0    2     1  location  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      location  

  public java.util.List<org.eclipse.jdt.internal.core.nd.java.NdResourceFile> findResourcesWithPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
        start local 1 // java.lang.String thePath
         0: .line 129
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.FILES:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.address:J
            aload 1 /* thePath */
            invokevirtual java.lang.String.toCharArray:()[C
            invokestatic org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria.create:([C)Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex.findAll:(Lorg/eclipse/jdt/internal/core/nd/Nd;JLorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;)Ljava/util/List;
            areturn
        end local 1 // java.lang.String thePath
        end local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            0    1     1  thePath  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;>;
    MethodParameters:
         Name  Flags
      thePath  

  public java.util.List<org.eclipse.jdt.internal.core.nd.java.NdResourceFile> getAllResourceFiles();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
         0: .line 133
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.FILES:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.address:J
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex.asList:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)Ljava/util/List;
            areturn
        end local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
    Signature: ()Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;>;

  public org.eclipse.jdt.internal.core.nd.java.NdTypeId findType(char[]);
    descriptor: ([C)Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
        start local 1 // char[] fieldDescriptor
         0: .line 137
            aload 1 /* fieldDescriptor */
            invokestatic org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria.create:([C)Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;
            astore 2 /* searchCriteria */
        start local 2 // org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria searchCriteria
         1: .line 138
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.TYPES:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.address:J
            aload 2 /* searchCriteria */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.anyResult:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$IResultRank;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex.findBest:(Lorg/eclipse/jdt/internal/core/nd/Nd;JLorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$IResultRank;)Lorg/eclipse/jdt/internal/core/nd/NdNode;
            checkcast org.eclipse.jdt.internal.core.nd.java.NdTypeId
            areturn
        end local 2 // org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria searchCriteria
        end local 1 // char[] fieldDescriptor
        end local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            0    2     1  fieldDescriptor  [C
            1    2     2   searchCriteria  Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;
    MethodParameters:
                 Name  Flags
      fieldDescriptor  

  public java.util.List<org.eclipse.jdt.internal.core.nd.java.NdTypeId> findTypesBySimpleName(char[]);
    descriptor: ([C)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
        start local 1 // char[] query
         0: .line 142
            aload 1 /* query */
            invokestatic org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria.create:([C)Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria.prefix:(Z)Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;
            astore 2 /* searchCriteria */
        start local 2 // org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria searchCriteria
         1: .line 143
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.SIMPLE_INDEX:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.address:J
            aload 2 /* searchCriteria */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex.findAll:(Lorg/eclipse/jdt/internal/core/nd/Nd;JLorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;)Ljava/util/List;
            areturn
        end local 2 // org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria searchCriteria
        end local 1 // char[] query
        end local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            0    2     1           query  [C
            1    2     2  searchCriteria  Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;
    Signature: ([C)Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;>;
    MethodParameters:
       Name  Flags
      query  

  public java.util.List<org.eclipse.jdt.internal.core.nd.java.NdTypeId> findTypesBySimpleName(char[], int);
    descriptor: ([CI)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
        start local 1 // char[] query
        start local 2 // int count
         0: .line 147
            aload 1 /* query */
            invokestatic org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria.create:([C)Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria.prefix:(Z)Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;
            astore 3 /* searchCriteria */
        start local 3 // org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria searchCriteria
         1: .line 148
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.SIMPLE_INDEX:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.address:J
            aload 3 /* searchCriteria */
            iload 2 /* count */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex.findAll:(Lorg/eclipse/jdt/internal/core/nd/Nd;JLorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;I)Ljava/util/List;
            areturn
        end local 3 // org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria searchCriteria
        end local 2 // int count
        end local 1 // char[] query
        end local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            0    2     1           query  [C
            0    2     2           count  I
            1    2     3  searchCriteria  Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;
    Signature: ([CI)Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;>;
    MethodParameters:
       Name  Flags
      query  
      count  

  public boolean visitFieldDescriptorsStartingWith(char[], org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$Visitor<org.eclipse.jdt.internal.core.nd.java.NdTypeId>);
    descriptor: ([CLorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$Visitor;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
        start local 1 // char[] fieldDescriptorPrefix
        start local 2 // org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$Visitor visitor
         0: .line 152
            aload 1 /* fieldDescriptorPrefix */
            invokestatic org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria.create:([C)Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria.prefix:(Z)Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;
            astore 3 /* searchCriteria */
        start local 3 // org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria searchCriteria
         1: .line 153
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.TYPES:Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.address:J
            aload 3 /* searchCriteria */
            aload 2 /* visitor */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex.visitAll:(Lorg/eclipse/jdt/internal/core/nd/Nd;JLorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$Visitor;)Z
            ireturn
        end local 3 // org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria searchCriteria
        end local 2 // org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$Visitor visitor
        end local 1 // char[] fieldDescriptorPrefix
        end local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            0    2     1  fieldDescriptorPrefix  [C
            0    2     2                visitor  Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$Visitor<Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;>;
            1    2     3         searchCriteria  Lorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$SearchCriteria;
    Signature: ([CLorg/eclipse/jdt/internal/core/nd/field/FieldSearchIndex$Visitor<Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;>;)Z
    MethodParameters:
                       Name  Flags
      fieldDescriptorPrefix  
      visitor                

  public org.eclipse.jdt.internal.core.nd.java.NdTypeId createTypeId(char[]);
    descriptor: ([C)Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
        start local 1 // char[] fieldDescriptor
         0: .line 161
            aload 0 /* this */
            aload 1 /* fieldDescriptor */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.JavaIndex.findType:([C)Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
            astore 2 /* existingType */
        start local 2 // org.eclipse.jdt.internal.core.nd.java.NdTypeId existingType
         1: .line 163
            aload 2 /* existingType */
            ifnull 3
         2: .line 164
            aload 2 /* existingType */
            areturn
         3: .line 167
      StackMap locals: org.eclipse.jdt.internal.core.nd.java.NdTypeId
      StackMap stack:
            aload 1 /* fieldDescriptor */
            arraylength
            iconst_1
            if_icmple 7
         4: .line 168
            aload 1 /* fieldDescriptor */
            iconst_0
            caload
            bipush 76
            if_icmpne 7
         5: .line 169
            aload 1 /* fieldDescriptor */
            aload 1 /* fieldDescriptor */
            arraylength
            iconst_1
            isub
            caload
            bipush 59
            if_icmpeq 7
         6: .line 170
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            new java.lang.String
            dup
            aload 1 /* fieldDescriptor */
            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 " is not a valid field descriptor"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 175
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.internal.core.nd.java.NdTypeId
            dup
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 1 /* fieldDescriptor */
            invokespecial org.eclipse.jdt.internal.core.nd.java.NdTypeId.<init>:(Lorg/eclipse/jdt/internal/core/nd/Nd;[C)V
            astore 3 /* result */
        start local 3 // org.eclipse.jdt.internal.core.nd.java.NdTypeId result
         8: .line 176
            aload 3 /* result */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeId.getFieldDescriptor:()Lorg/eclipse/jdt/internal/core/nd/db/IString;
            invokeinterface org.eclipse.jdt.internal.core.nd.db.IString.getChars:()[C
            aload 1 /* fieldDescriptor */
            invokestatic org.eclipse.jdt.internal.core.nd.util.CharArrayUtils.equals:([C[C)Z
            ifne 10
         9: .line 177
            new java.lang.IllegalStateException
            dup
            ldc "Field descriptor didn't match"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 179
      StackMap locals: org.eclipse.jdt.internal.core.nd.java.NdTypeId
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // org.eclipse.jdt.internal.core.nd.java.NdTypeId result
        end local 2 // org.eclipse.jdt.internal.core.nd.java.NdTypeId existingType
        end local 1 // char[] fieldDescriptor
        end local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            0   11     1  fieldDescriptor  [C
            1   11     2     existingType  Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
            8   11     3           result  Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
    MethodParameters:
                 Name  Flags
      fieldDescriptor  

  public org.eclipse.jdt.internal.core.nd.Nd getNd();
    descriptor: ()Lorg/eclipse/jdt/internal/core/nd/Nd;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
         0: .line 183
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.java.JavaIndex.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            areturn
        end local 0 // org.eclipse.jdt.internal.core.nd.java.JavaIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;

  public static org.eclipse.core.runtime.IPath getLocationForPath(org.eclipse.core.runtime.IPath);
    descriptor: (Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/core/runtime/IPath;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.eclipse.core.runtime.IPath path
         0: .line 194
            invokestatic org.eclipse.core.resources.ResourcesPlugin.getWorkspace:()Lorg/eclipse/core/resources/IWorkspace;
            invokeinterface org.eclipse.core.resources.IWorkspace.getRoot:()Lorg/eclipse/core/resources/IWorkspaceRoot;
            astore 1 /* root */
        start local 1 // org.eclipse.core.resources.IWorkspaceRoot root
         1: .line 196
            aload 1 /* root */
            aload 0 /* path */
            invokeinterface org.eclipse.core.resources.IWorkspaceRoot.findMember:(Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/core/resources/IResource;
            astore 2 /* resource */
        start local 2 // org.eclipse.core.resources.IResource resource
         2: .line 198
            aload 2 /* resource */
            ifnull 4
         3: .line 199
            aload 2 /* resource */
            invokeinterface org.eclipse.core.resources.IResource.getLocation:()Lorg/eclipse/core/runtime/IPath;
            areturn
         4: .line 202
      StackMap locals: org.eclipse.core.resources.IWorkspaceRoot org.eclipse.core.resources.IResource
      StackMap stack:
            aload 0 /* path */
            areturn
        end local 2 // org.eclipse.core.resources.IResource resource
        end local 1 // org.eclipse.core.resources.IWorkspaceRoot root
        end local 0 // org.eclipse.core.runtime.IPath path
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      path  Lorg/eclipse/core/runtime/IPath;
            1    5     1      root  Lorg/eclipse/core/resources/IWorkspaceRoot;
            2    5     2  resource  Lorg/eclipse/core/resources/IResource;
    MethodParameters:
      Name  Flags
      path  

  public static org.eclipse.core.runtime.IPath getLocationForElement(org.eclipse.jdt.core.IJavaElement);
    descriptor: (Lorg/eclipse/jdt/core/IJavaElement;)Lorg/eclipse/core/runtime/IPath;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.core.IJavaElement next
         0: .line 212
            aload 0 /* next */
            invokeinterface org.eclipse.jdt.core.IJavaElement.getResource:()Lorg/eclipse/core/resources/IResource;
            astore 1 /* resource */
        start local 1 // org.eclipse.core.resources.IResource resource
         1: .line 214
            aload 1 /* resource */
            ifnull 5
         2: .line 215
            aload 1 /* resource */
            invokeinterface org.eclipse.core.resources.IResource.getLocation:()Lorg/eclipse/core/runtime/IPath;
            ifnonnull 3
            getstatic org.eclipse.core.runtime.Path.EMPTY:Lorg/eclipse/core/runtime/Path;
            goto 4
      StackMap locals: org.eclipse.core.resources.IResource
      StackMap stack:
         3: aload 1 /* resource */
            invokeinterface org.eclipse.core.resources.IResource.getLocation:()Lorg/eclipse/core/runtime/IPath;
      StackMap locals:
      StackMap stack: org.eclipse.core.runtime.IPath
         4: areturn
         5: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* next */
            invokeinterface org.eclipse.jdt.core.IJavaElement.getPath:()Lorg/eclipse/core/runtime/IPath;
            areturn
        end local 1 // org.eclipse.core.resources.IResource resource
        end local 0 // org.eclipse.jdt.core.IJavaElement next
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      next  Lorg/eclipse/jdt/core/IJavaElement;
            1    6     1  resource  Lorg/eclipse/core/resources/IResource;
    MethodParameters:
      Name  Flags
      next  

  public static boolean isEnabled();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 225
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.eclipse.jdt.internal.core.nd.Nd createNd(java.io.File, org.eclipse.jdt.internal.core.nd.db.ChunkCache);
    descriptor: (Ljava/io/File;Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;)Lorg/eclipse/jdt/internal/core/nd/Nd;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // java.io.File databaseFile
        start local 1 // org.eclipse.jdt.internal.core.nd.db.ChunkCache chunkCache
         0: .line 229
            new org.eclipse.jdt.internal.core.nd.Nd
            dup
            aload 0 /* databaseFile */
            aload 1 /* chunkCache */
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.createTypeRegistry:()Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;
         1: .line 230
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.MIN_SUPPORTED_VERSION:I
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.MAX_SUPPORTED_VERSION:I
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.CURRENT_VERSION:I
         2: .line 229
            invokespecial org.eclipse.jdt.internal.core.nd.Nd.<init>:(Ljava/io/File;Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;III)V
            areturn
        end local 1 // org.eclipse.jdt.internal.core.nd.db.ChunkCache chunkCache
        end local 0 // java.io.File databaseFile
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0  databaseFile  Ljava/io/File;
            0    3     1    chunkCache  Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;
    MethodParameters:
              Name  Flags
      databaseFile  
      chunkCache    

  public static org.eclipse.jdt.internal.core.nd.Nd getGlobalNd();
    descriptor: ()Lorg/eclipse/jdt/internal/core/nd/Nd;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 235
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.ndMutex:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 236
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.globalNd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            astore 0 /* localNd */
        start local 0 // org.eclipse.jdt.internal.core.nd.Nd localNd
         2: .line 235
            aload 1
            monitorexit
         3: goto 6
        end local 0 // org.eclipse.jdt.internal.core.nd.Nd localNd
      StackMap locals: top java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
        start local 0 // org.eclipse.jdt.internal.core.nd.Nd localNd
         6: .line 239
      StackMap locals: org.eclipse.jdt.internal.core.nd.Nd
      StackMap stack:
            aload 0 /* localNd */
            ifnull 8
         7: .line 240
            aload 0 /* localNd */
            areturn
         8: .line 243
      StackMap locals:
      StackMap stack:
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getDBFile:()Ljava/io/File;
            invokestatic org.eclipse.jdt.internal.core.nd.db.ChunkCache.getSharedInstance:()Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.createNd:(Ljava/io/File;Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;)Lorg/eclipse/jdt/internal/core/nd/Nd;
            astore 0 /* localNd */
         9: .line 245
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.ndMutex:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
        10: .line 246
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.globalNd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            ifnonnull 12
        11: .line 247
            aload 0 /* localNd */
            putstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.globalNd:Lorg/eclipse/jdt/internal/core/nd/Nd;
        12: .line 249
      StackMap locals: java.lang.Object
      StackMap stack:
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.globalNd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 1
            monitorexit
        13: areturn
        14: .line 245
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        15: athrow
        end local 0 // org.eclipse.jdt.internal.core.nd.Nd localNd
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            2    4     0  localNd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            6   16     0  localNd  Lorg/eclipse/jdt/internal/core/nd/Nd;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
          10    13      14  any
          14    15      14  any

  public static org.eclipse.jdt.internal.core.nd.java.JavaIndex getIndex(org.eclipse.jdt.internal.core.nd.Nd);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;)Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.nd.Nd nd
         0: .line 254
            new org.eclipse.jdt.internal.core.nd.java.JavaIndex
            dup
            aload 0 /* nd */
            getstatic org.eclipse.jdt.internal.core.nd.db.Database.DATA_AREA_OFFSET:I
            i2l
            invokespecial org.eclipse.jdt.internal.core.nd.java.JavaIndex.<init>:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
            areturn
        end local 0 // org.eclipse.jdt.internal.core.nd.Nd nd
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
    MethodParameters:
      Name  Flags
      nd    

  public static org.eclipse.jdt.internal.core.nd.java.JavaIndex getIndex();
    descriptor: ()Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 258
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getGlobalNd:()Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getIndex:(Lorg/eclipse/jdt/internal/core/nd/Nd;)Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static int getCurrentVersion();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 262
            getstatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.CURRENT_VERSION:I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static java.io.File getDBFile();
    descriptor: ()Ljava/io/File;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 266
            invokestatic org.eclipse.jdt.core.JavaCore.getPlugin:()Lorg/eclipse/core/runtime/Plugin;
            invokevirtual org.eclipse.core.runtime.Plugin.getStateLocation:()Lorg/eclipse/core/runtime/IPath;
            astore 0 /* stateLocation */
        start local 0 // org.eclipse.core.runtime.IPath stateLocation
         1: .line 267
            aload 0 /* stateLocation */
            ldc "index.db"
            invokeinterface org.eclipse.core.runtime.IPath.append:(Ljava/lang/String;)Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.toFile:()Ljava/io/File;
            areturn
        end local 0 // org.eclipse.core.runtime.IPath stateLocation
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            1    2     0  stateLocation  Lorg/eclipse/core/runtime/IPath;

  static org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry<org.eclipse.jdt.internal.core.nd.NdNode> createTypeRegistry();
    descriptor: ()Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 271
            new org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry
            dup
            invokespecial org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.<init>:()V
            astore 0 /* registry */
        start local 0 // org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry registry
         1: .line 273
            aload 0 /* registry */
            bipush 40
            getstatic org.eclipse.jdt.internal.core.nd.java.NdBinding.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
         2: .line 274
            aload 0 /* registry */
            bipush 48
            getstatic org.eclipse.jdt.internal.core.nd.java.NdComplexTypeSignature.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
         3: .line 275
            aload 0 /* registry */
            bipush 56
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstant.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
         4: .line 276
            aload 0 /* registry */
            bipush 64
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstantAnnotation.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
         5: .line 277
            aload 0 /* registry */
            bipush 80
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstantArray.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
         6: .line 278
            aload 0 /* registry */
            bipush 96
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstantBoolean.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
         7: .line 279
            aload 0 /* registry */
            bipush 112
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstantByte.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
         8: .line 280
            aload 0 /* registry */
            sipush 128
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstantChar.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
         9: .line 281
            aload 0 /* registry */
            sipush 144
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstantClass.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        10: .line 282
            aload 0 /* registry */
            sipush 160
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstantDouble.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        11: .line 283
            aload 0 /* registry */
            sipush 176
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstantEnum.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        12: .line 284
            aload 0 /* registry */
            sipush 192
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstantFloat.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        13: .line 285
            aload 0 /* registry */
            sipush 208
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstantInt.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        14: .line 286
            aload 0 /* registry */
            sipush 224
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstantLong.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        15: .line 287
            aload 0 /* registry */
            sipush 240
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstantShort.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        16: .line 288
            aload 0 /* registry */
            sipush 256
            getstatic org.eclipse.jdt.internal.core.nd.java.NdConstantString.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        17: .line 289
            aload 0 /* registry */
            sipush 272
            getstatic org.eclipse.jdt.internal.core.nd.java.NdMethod.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        18: .line 290
            aload 0 /* registry */
            sipush 280
            getstatic org.eclipse.jdt.internal.core.nd.java.NdMethodAnnotationData.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        19: .line 291
            aload 0 /* registry */
            sipush 336
            getstatic org.eclipse.jdt.internal.core.nd.java.NdResourceFile.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        20: .line 292
            aload 0 /* registry */
            sipush 368
            getstatic org.eclipse.jdt.internal.core.nd.java.NdType.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        21: .line 293
            aload 0 /* registry */
            sipush 400
            getstatic org.eclipse.jdt.internal.core.nd.java.NdTypeArgument.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        22: .line 294
            aload 0 /* registry */
            sipush 416
            getstatic org.eclipse.jdt.internal.core.nd.java.NdTypeInterface.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        23: .line 295
            aload 0 /* registry */
            sipush 448
            getstatic org.eclipse.jdt.internal.core.nd.java.NdTypeSignature.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        24: .line 296
            aload 0 /* registry */
            sipush 464
            getstatic org.eclipse.jdt.internal.core.nd.java.NdTypeId.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        25: .line 297
            aload 0 /* registry */
            sipush 480
            getstatic org.eclipse.jdt.internal.core.nd.java.NdTypeInterface.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        26: .line 298
            aload 0 /* registry */
            sipush 496
            getstatic org.eclipse.jdt.internal.core.nd.java.NdVariable.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        27: .line 299
            aload 0 /* registry */
            sipush 512
            getstatic org.eclipse.jdt.internal.core.nd.java.NdWorkspaceLocation.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.register:(ILorg/eclipse/jdt/internal/core/nd/ITypeFactory;)V
        28: .line 300
            aload 0 /* registry */
            areturn
        end local 0 // org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry registry
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1   29     0  registry  Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry<Lorg/eclipse/jdt/internal/core/nd/NdNode;>;
    Signature: ()Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry<Lorg/eclipse/jdt/internal/core/nd/NdNode;>;
}
SourceFile: "JavaIndex.java"
NestMembers:
  org.eclipse.jdt.internal.core.nd.java.JavaIndex$1  org.eclipse.jdt.internal.core.nd.java.JavaIndex$BestResourceFile
InnerClasses:
  public abstract IResultRank = org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$IResultRank of org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex
  public final SearchCriteria = org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$SearchCriteria of org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex
  public abstract Visitor = org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex$Visitor of org.eclipse.jdt.internal.core.nd.field.FieldSearchIndex
  public FingerprintTestResult = org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult of org.eclipse.jdt.internal.core.nd.java.FileFingerprint
  org.eclipse.jdt.internal.core.nd.java.JavaIndex$1
  private final BestResourceFile = org.eclipse.jdt.internal.core.nd.java.JavaIndex$BestResourceFile of org.eclipse.jdt.internal.core.nd.java.JavaIndex