public class org.codehaus.plexus.util.MatchPattern
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.codehaus.plexus.util.MatchPattern
  super_class: java.lang.Object
{
  private final java.lang.String source;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String regexPattern;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String separator;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String[] tokenized;
    descriptor: [Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final char[][] tokenizedChar;
    descriptor: [[C
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private void <init>(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.codehaus.plexus.util.MatchPattern this
        start local 1 // java.lang.String source
        start local 2 // java.lang.String separator
         0: .line 43
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 45
            aload 0 /* this */
            aload 1 /* source */
            invokestatic org.codehaus.plexus.util.SelectorUtils.isRegexPrefixedPattern:(Ljava/lang/String;)Z
            ifeq 6
         2: .line 46
            aload 1 /* source */
            ldc "%regex["
            invokevirtual java.lang.String.length:()I
         3: .line 47
            aload 1 /* source */
            invokevirtual java.lang.String.length:()I
            ldc "]"
            invokevirtual java.lang.String.length:()I
            isub
         4: .line 46
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
         5: .line 47
            goto 7
         6: .line 48
      StackMap locals: org.codehaus.plexus.util.MatchPattern java.lang.String java.lang.String
      StackMap stack: org.codehaus.plexus.util.MatchPattern
            aconst_null
         7: .line 45
      StackMap locals: org.codehaus.plexus.util.MatchPattern java.lang.String java.lang.String
      StackMap stack: org.codehaus.plexus.util.MatchPattern java.lang.String
            putfield org.codehaus.plexus.util.MatchPattern.regexPattern:Ljava/lang/String;
         8: .line 49
            aload 0 /* this */
            aload 1 /* source */
            invokestatic org.codehaus.plexus.util.SelectorUtils.isAntPrefixedPattern:(Ljava/lang/String;)Z
            ifeq 13
         9: .line 50
            aload 1 /* source */
            ldc "%ant["
            invokevirtual java.lang.String.length:()I
        10: .line 51
            aload 1 /* source */
            invokevirtual java.lang.String.length:()I
            ldc "]"
            invokevirtual java.lang.String.length:()I
            isub
        11: .line 50
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
        12: .line 51
            goto 14
        13: .line 52
      StackMap locals:
      StackMap stack: org.codehaus.plexus.util.MatchPattern
            aload 1 /* source */
        14: .line 49
      StackMap locals: org.codehaus.plexus.util.MatchPattern java.lang.String java.lang.String
      StackMap stack: org.codehaus.plexus.util.MatchPattern java.lang.String
            putfield org.codehaus.plexus.util.MatchPattern.source:Ljava/lang/String;
        15: .line 53
            aload 0 /* this */
            aload 2 /* separator */
            putfield org.codehaus.plexus.util.MatchPattern.separator:Ljava/lang/String;
        16: .line 54
            aload 0 /* this */
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.source:Ljava/lang/String;
            aload 2 /* separator */
            invokestatic org.codehaus.plexus.util.MatchPattern.tokenizePathToString:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
            putfield org.codehaus.plexus.util.MatchPattern.tokenized:[Ljava/lang/String;
        17: .line 55
            aload 0 /* this */
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.tokenized:[Ljava/lang/String;
            arraylength
            anewarray char[]
            putfield org.codehaus.plexus.util.MatchPattern.tokenizedChar:[[C
        18: .line 56
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        19: goto 22
        20: .line 58
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.tokenizedChar:[[C
            iload 3 /* i */
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.tokenized:[Ljava/lang/String;
            iload 3 /* i */
            aaload
            invokevirtual java.lang.String.toCharArray:()[C
            aastore
        21: .line 56
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 3 /* i */
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.tokenized:[Ljava/lang/String;
            arraylength
            if_icmplt 20
        end local 3 // int i
        23: .line 61
            return
        end local 2 // java.lang.String separator
        end local 1 // java.lang.String source
        end local 0 // org.codehaus.plexus.util.MatchPattern this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Lorg/codehaus/plexus/util/MatchPattern;
            0   24     1     source  Ljava/lang/String;
            0   24     2  separator  Ljava/lang/String;
           19   23     3          i  I
    MethodParameters:
           Name  Flags
      source     
      separator  

  public boolean matchPath(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.codehaus.plexus.util.MatchPattern this
        start local 1 // java.lang.String str
        start local 2 // boolean isCaseSensitive
         0: .line 65
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.regexPattern:Ljava/lang/String;
            ifnull 2
         1: .line 67
            aload 1 /* str */
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.regexPattern:Ljava/lang/String;
            invokevirtual java.lang.String.matches:(Ljava/lang/String;)Z
            ireturn
         2: .line 71
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* str */
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.separator:Ljava/lang/String;
            iload 2 /* isCaseSensitive */
            invokestatic org.codehaus.plexus.util.SelectorUtils.matchAntPathPattern:(Lorg/codehaus/plexus/util/MatchPattern;Ljava/lang/String;Ljava/lang/String;Z)Z
            ireturn
        end local 2 // boolean isCaseSensitive
        end local 1 // java.lang.String str
        end local 0 // org.codehaus.plexus.util.MatchPattern this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/codehaus/plexus/util/MatchPattern;
            0    3     1              str  Ljava/lang/String;
            0    3     2  isCaseSensitive  Z
    MethodParameters:
                 Name  Flags
      str              
      isCaseSensitive  

  boolean matchPath(java.lang.String, char[][], boolean);
    descriptor: (Ljava/lang/String;[[CZ)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.codehaus.plexus.util.MatchPattern this
        start local 1 // java.lang.String str
        start local 2 // char[][] strDirs
        start local 3 // boolean isCaseSensitive
         0: .line 77
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.regexPattern:Ljava/lang/String;
            ifnull 2
         1: .line 79
            aload 1 /* str */
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.regexPattern:Ljava/lang/String;
            invokevirtual java.lang.String.matches:(Ljava/lang/String;)Z
            ireturn
         2: .line 83
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.codehaus.plexus.util.MatchPattern.getTokenizedPathChars:()[[C
            aload 2 /* strDirs */
            iload 3 /* isCaseSensitive */
            invokestatic org.codehaus.plexus.util.SelectorUtils.matchAntPathPattern:([[C[[CZ)Z
            ireturn
        end local 3 // boolean isCaseSensitive
        end local 2 // char[][] strDirs
        end local 1 // java.lang.String str
        end local 0 // org.codehaus.plexus.util.MatchPattern this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/codehaus/plexus/util/MatchPattern;
            0    3     1              str  Ljava/lang/String;
            0    3     2          strDirs  [[C
            0    3     3  isCaseSensitive  Z
    MethodParameters:
                 Name  Flags
      str              
      strDirs          
      isCaseSensitive  

  public boolean matchPatternStart(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.codehaus.plexus.util.MatchPattern this
        start local 1 // java.lang.String str
        start local 2 // boolean isCaseSensitive
         0: .line 89
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.regexPattern:Ljava/lang/String;
            ifnull 2
         1: .line 93
            iconst_1
            ireturn
         2: .line 97
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            bipush 92
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 3 /* altStr */
        start local 3 // java.lang.String altStr
         3: .line 99
            aload 0 /* this */
            aload 1 /* str */
            getstatic java.io.File.separator:Ljava/lang/String;
            iload 2 /* isCaseSensitive */
            invokestatic org.codehaus.plexus.util.SelectorUtils.matchAntPathPatternStart:(Lorg/codehaus/plexus/util/MatchPattern;Ljava/lang/String;Ljava/lang/String;Z)Z
            ifne 6
         4: .line 100
            aload 0 /* this */
            aload 3 /* altStr */
            ldc "/"
            iload 2 /* isCaseSensitive */
            invokestatic org.codehaus.plexus.util.SelectorUtils.matchAntPathPatternStart:(Lorg/codehaus/plexus/util/MatchPattern;Ljava/lang/String;Ljava/lang/String;Z)Z
            ifne 6
         5: .line 99
            iconst_0
            ireturn
      StackMap locals: java.lang.String
      StackMap stack:
         6: iconst_1
            ireturn
        end local 3 // java.lang.String altStr
        end local 2 // boolean isCaseSensitive
        end local 1 // java.lang.String str
        end local 0 // org.codehaus.plexus.util.MatchPattern this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/codehaus/plexus/util/MatchPattern;
            0    7     1              str  Ljava/lang/String;
            0    7     2  isCaseSensitive  Z
            3    7     3           altStr  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      str              
      isCaseSensitive  

  public java.lang.String[] getTokenizedPathString();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.codehaus.plexus.util.MatchPattern this
         0: .line 106
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.tokenized:[Ljava/lang/String;
            areturn
        end local 0 // org.codehaus.plexus.util.MatchPattern this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/codehaus/plexus/util/MatchPattern;

  public char[][] getTokenizedPathChars();
    descriptor: ()[[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.codehaus.plexus.util.MatchPattern this
         0: .line 111
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.tokenizedChar:[[C
            areturn
        end local 0 // org.codehaus.plexus.util.MatchPattern this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/codehaus/plexus/util/MatchPattern;

  public boolean startsWith(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.util.MatchPattern this
        start local 1 // java.lang.String string
         0: .line 116
            aload 0 /* this */
            getfield org.codehaus.plexus.util.MatchPattern.source:Ljava/lang/String;
            aload 1 /* string */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ireturn
        end local 1 // java.lang.String string
        end local 0 // org.codehaus.plexus.util.MatchPattern this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/codehaus/plexus/util/MatchPattern;
            0    1     1  string  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      string  

  static java.lang.String[] tokenizePathToString(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.lang.String path
        start local 1 // java.lang.String separator
         0: .line 121
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* ret */
        start local 2 // java.util.List ret
         1: .line 122
            new java.util.StringTokenizer
            dup
            aload 0 /* path */
            aload 1 /* separator */
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* st */
        start local 3 // java.util.StringTokenizer st
         2: .line 123
            goto 4
         3: .line 125
      StackMap locals: java.util.List java.util.StringTokenizer
      StackMap stack:
            aload 2 /* ret */
            aload 3 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 123
      StackMap locals:
      StackMap stack:
            aload 3 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 3
         5: .line 127
            aload 2 /* ret */
            aload 2 /* ret */
            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[]
            areturn
        end local 3 // java.util.StringTokenizer st
        end local 2 // java.util.List ret
        end local 1 // java.lang.String separator
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       path  Ljava/lang/String;
            0    6     1  separator  Ljava/lang/String;
            1    6     2        ret  Ljava/util/List<Ljava/lang/String;>;
            2    6     3         st  Ljava/util/StringTokenizer;
    MethodParameters:
           Name  Flags
      path       
      separator  

  public static org.codehaus.plexus.util.MatchPattern fromString(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/codehaus/plexus/util/MatchPattern;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String source
         0: .line 132
            new org.codehaus.plexus.util.MatchPattern
            dup
            aload 0 /* source */
            getstatic java.io.File.separator:Ljava/lang/String;
            invokespecial org.codehaus.plexus.util.MatchPattern.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 0 // java.lang.String source
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  source  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      source  
}
SourceFile: "MatchPattern.java"