public class org.eclipse.jdt.internal.core.search.matching.ModulePattern extends org.eclipse.jdt.internal.core.search.matching.JavaSearchPattern
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.search.matching.ModulePattern
  super_class: org.eclipse.jdt.internal.core.search.matching.JavaSearchPattern
{
  boolean findDeclarations;
    descriptor: Z
    flags: (0x0000) 

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

  char[] name;
    descriptor: [C
    flags: (0x0000) 

  protected static char[][] REF_CATEGORIES;
    descriptor: [[C
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  protected static char[][] REF_AND_DECL_CATEGORIES;
    descriptor: [[C
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  protected static char[][] DECL_CATEGORIES;
    descriptor: [[C
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  private static char[] regexPrefix;
    descriptor: [C
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 30
            iconst_1
            anewarray char[]
            dup
            iconst_0
            getstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.MODULE_REF:[C
            aastore
            putstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.REF_CATEGORIES:[[C
         1: .line 31
            iconst_2
            anewarray char[]
            dup
            iconst_0
            getstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.MODULE_REF:[C
            aastore
            dup
            iconst_1
            getstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.MODULE_DECL:[C
            aastore
            putstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.REF_AND_DECL_CATEGORIES:[[C
         2: .line 32
            iconst_1
            anewarray char[]
            dup
            iconst_0
            getstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.MODULE_DECL:[C
            aastore
            putstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.DECL_CATEGORIES:[[C
         3: .line 33
            iconst_3
            newarray 5
            dup
            iconst_0
            bipush 47
            castore
            dup
            iconst_1
            bipush 114
            castore
            dup
            iconst_2
            bipush 32
            castore
            putstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.regexPrefix:[C
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static char[] createIndexKey(char[]);
    descriptor: ([C)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // char[] name
         0: .line 36
            aload 0 /* name */
            areturn
        end local 0 // char[] name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  [C
    MethodParameters:
      Name  Flags
      name  

  protected void <init>(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
        start local 1 // int matchRule
         0: .line 39
            aload 0 /* this */
            sipush 8192
            iload 1 /* matchRule */
            invokespecial org.eclipse.jdt.internal.core.search.matching.JavaSearchPattern.<init>:(II)V
         1: .line 26
            aload 0 /* this */
            iconst_1
            putfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.findDeclarations:Z
         2: .line 27
            aload 0 /* this */
            iconst_1
            putfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.findReferences:Z
         3: .line 40
            return
        end local 1 // int matchRule
        end local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/eclipse/jdt/internal/core/search/matching/ModulePattern;
            0    4     1  matchRule  I
    MethodParameters:
           Name  Flags
      matchRule  

  public void <init>(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
        start local 1 // char[] name
        start local 2 // int limitTo
        start local 3 // int matchRule
         0: .line 42
            aload 0 /* this */
            aload 1 /* name */
            iload 3 /* matchRule */
            invokestatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.trapDoorRegexMatchRule:([CI)I
            invokespecial org.eclipse.jdt.internal.core.search.matching.ModulePattern.<init>:(I)V
         1: .line 43
            aload 0 /* this */
            aload 1 /* name */
            invokestatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.trapDoorRegexExtractModuleName:([C)[C
            putfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.name:[C
         2: .line 44
            iload 2 /* limitTo */
            bipush 15
            iand
            tableswitch { // 0 - 3
                    0: 3
                    1: 9
                    2: 5
                    3: 7
              default: 9
          }
         3: .line 46
      StackMap locals: org.eclipse.jdt.internal.core.search.matching.ModulePattern char[] int int
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.findReferences:Z
         4: .line 47
            goto 9
         5: .line 49
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.findDeclarations:Z
         6: .line 50
            goto 9
         7: .line 52
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.search.matching.ModulePattern.getMatchRule:()I
            iconst_4
            iand
            ifeq 9
         8: .line 53
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.findReferences:Z
         9: .line 56
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.search.matching.ModulePattern.mustResolve:()Z
            putfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.mustResolve:Z
        10: .line 57
            return
        end local 3 // int matchRule
        end local 2 // int limitTo
        end local 1 // char[] name
        end local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/eclipse/jdt/internal/core/search/matching/ModulePattern;
            0   11     1       name  [C
            0   11     2    limitTo  I
            0   11     3  matchRule  I
    MethodParameters:
           Name  Flags
      name       
      limitTo    
      matchRule  

  private static char[] trapDoorRegexExtractModuleName(char[]);
    descriptor: ([C)[C
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // char[] name2
         0: .line 65
            getstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.regexPrefix:[C
            aload 0 /* name2 */
            iconst_0
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.indexOf:([C[CZ)I
            istore 1 /* index */
        start local 1 // int index
         1: .line 66
            iload 1 /* index */
            iflt 2
            aload 0 /* name2 */
            iload 1 /* index */
            getstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.regexPrefix:[C
            arraylength
            iadd
            aload 0 /* name2 */
            arraylength
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.subarray:([CII)[C
            goto 3
      StackMap locals: int
      StackMap stack:
         2: aload 0 /* name2 */
      StackMap locals:
      StackMap stack: char[]
         3: areturn
        end local 1 // int index
        end local 0 // char[] name2
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  name2  [C
            1    4     1  index  I
    MethodParameters:
       Name  Flags
      name2  

  private static int trapDoorRegexMatchRule(char[], int);
    descriptor: ([CI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // char[] name2
        start local 1 // int matchRule
         0: .line 72
            getstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.regexPrefix:[C
            aload 0 /* name2 */
            iconst_0
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.indexOf:([C[CZ)I
            ifne 2
         1: .line 73
            iconst_4
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 1 /* matchRule */
         3: .line 72
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 1 // int matchRule
        end local 0 // char[] name2
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0      name2  [C
            0    4     1  matchRule  I
    MethodParameters:
           Name  Flags
      name2      
      matchRule  

  public void decodeIndexKey(char[]);
    descriptor: ([C)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
        start local 1 // char[] key
         0: .line 77
            aload 0 /* this */
            aload 1 /* key */
            putfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.name:[C
         1: .line 78
            return
        end local 1 // char[] key
        end local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/core/search/matching/ModulePattern;
            0    2     1   key  [C
    MethodParameters:
      Name  Flags
      key   

  public org.eclipse.jdt.core.search.SearchPattern getBlankPattern();
    descriptor: ()Lorg/eclipse/jdt/core/search/SearchPattern;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
         0: .line 81
            new org.eclipse.jdt.internal.core.search.matching.ModulePattern
            dup
            iconst_0
            invokespecial org.eclipse.jdt.internal.core.search.matching.ModulePattern.<init>:(I)V
            areturn
        end local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/search/matching/ModulePattern;

  public char[][] getIndexCategories();
    descriptor: ()[[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
         0: .line 85
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.findReferences:Z
            ifeq 4
         1: .line 86
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.findDeclarations:Z
            ifeq 2
            getstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.REF_AND_DECL_CATEGORIES:[[C
            goto 3
      StackMap locals:
      StackMap stack:
         2: getstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.REF_CATEGORIES:[[C
      StackMap locals:
      StackMap stack: char[][]
         3: areturn
         4: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.findDeclarations:Z
            ifeq 6
         5: .line 88
            getstatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.DECL_CATEGORIES:[[C
            areturn
         6: .line 89
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jdt.core.compiler.CharOperation.NO_CHAR_CHAR:[[C
            areturn
        end local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/eclipse/jdt/internal/core/search/matching/ModulePattern;

  public boolean matchesDecodedKey(org.eclipse.jdt.core.search.SearchPattern);
    descriptor: (Lorg/eclipse/jdt/core/search/SearchPattern;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
        start local 1 // org.eclipse.jdt.core.search.SearchPattern decodedPattern
         0: .line 93
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.name:[C
            aload 1 /* decodedPattern */
            checkcast org.eclipse.jdt.internal.core.search.matching.ModulePattern
            getfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.name:[C
            invokevirtual org.eclipse.jdt.internal.core.search.matching.ModulePattern.matchesName:([C[C)Z
            ireturn
        end local 1 // org.eclipse.jdt.core.search.SearchPattern decodedPattern
        end local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/eclipse/jdt/internal/core/search/matching/ModulePattern;
            0    1     1  decodedPattern  Lorg/eclipse/jdt/core/search/SearchPattern;
    MethodParameters:
                Name  Flags
      decodedPattern  

  public org.eclipse.jdt.internal.core.index.EntryResult[] queryIn(org.eclipse.jdt.internal.core.index.Index);
    descriptor: (Lorg/eclipse/jdt/internal/core/index/Index;)[Lorg/eclipse/jdt/internal/core/index/EntryResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
        start local 1 // org.eclipse.jdt.internal.core.index.Index index
         0: .line 97
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.name:[C
            astore 2 /* key */
        start local 2 // char[] key
         1: .line 98
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.search.matching.ModulePattern.getMatchRule:()I
            istore 3 /* matchRule */
        start local 3 // int matchRule
         2: .line 100
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.search.matching.ModulePattern.getMatchMode:()I
            lookupswitch { // 6
                    0: 3
                    1: 9
                    2: 10
                    4: 13
                  128: 14
                  256: 14
              default: 14
          }
         3: .line 102
      StackMap locals: char[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.name:[C
            ifnull 6
         4: .line 103
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.name:[C
            invokestatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.createIndexKey:([C)[C
            astore 2 /* key */
         5: .line 104
            goto 14
         6: .line 105
      StackMap locals:
      StackMap stack:
            iload 3 /* matchRule */
            iconst_m1
            iand
            istore 3 /* matchRule */
         7: .line 106
            iload 3 /* matchRule */
            iconst_1
            ior
            istore 3 /* matchRule */
         8: .line 108
            goto 14
         9: .line 111
      StackMap locals:
      StackMap stack:
            goto 14
        10: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.name:[C
            ifnull 14
        11: .line 114
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.name:[C
            invokestatic org.eclipse.jdt.internal.core.search.matching.ModulePattern.createIndexKey:([C)[C
            astore 2 /* key */
        12: .line 117
            goto 14
        13: .line 120
      StackMap locals:
      StackMap stack:
            goto 14
        14: .line 127
      StackMap locals:
      StackMap stack:
            aload 1 /* index */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.search.matching.ModulePattern.getIndexCategories:()[[C
            aload 2 /* key */
            iload 3 /* matchRule */
            invokevirtual org.eclipse.jdt.internal.core.index.Index.query:([[C[CI)[Lorg/eclipse/jdt/internal/core/index/EntryResult;
            areturn
        end local 3 // int matchRule
        end local 2 // char[] key
        end local 1 // org.eclipse.jdt.internal.core.index.Index index
        end local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lorg/eclipse/jdt/internal/core/search/matching/ModulePattern;
            0   15     1      index  Lorg/eclipse/jdt/internal/core/index/Index;
            1   15     2        key  [C
            2   15     3  matchRule  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      index  

  protected boolean mustResolve();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
         0: .line 131
            iconst_1
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/search/matching/ModulePattern;

  protected java.lang.StringBuffer print(java.lang.StringBuffer);
    descriptor: (Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
        start local 1 // java.lang.StringBuffer output
         0: .line 135
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.findDeclarations:Z
            ifeq 6
         1: .line 136
            aload 1 /* output */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.findReferences:Z
            ifeq 3
         2: .line 137
            ldc "ModuleCombinedPattern: "
            goto 4
         3: .line 138
      StackMap locals:
      StackMap stack: java.lang.StringBuffer
            ldc "ModuleDeclarationPattern: "
         4: .line 136
      StackMap locals: org.eclipse.jdt.internal.core.search.matching.ModulePattern java.lang.StringBuffer
      StackMap stack: java.lang.StringBuffer java.lang.String
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         5: .line 139
            goto 7
         6: .line 140
      StackMap locals:
      StackMap stack:
            aload 1 /* output */
            ldc "ModuleReferencePattern: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         7: .line 142
      StackMap locals:
      StackMap stack:
            aload 1 /* output */
            ldc "module "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         8: .line 143
            aload 1 /* output */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.ModulePattern.name:[C
            invokevirtual java.lang.StringBuffer.append:([C)Ljava/lang/StringBuffer;
            pop
         9: .line 144
            aload 0 /* this */
            aload 1 /* output */
            invokespecial org.eclipse.jdt.internal.core.search.matching.JavaSearchPattern.print:(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
            areturn
        end local 1 // java.lang.StringBuffer output
        end local 0 // org.eclipse.jdt.internal.core.search.matching.ModulePattern this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/eclipse/jdt/internal/core/search/matching/ModulePattern;
            0   10     1  output  Ljava/lang/StringBuffer;
    MethodParameters:
        Name  Flags
      output  
}
SourceFile: "ModulePattern.java"