class org.joda.time.format.PeriodFormatterBuilder$RegExAffix extends org.joda.time.format.PeriodFormatterBuilder$IgnorableAffix
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.joda.time.format.PeriodFormatterBuilder$RegExAffix
  super_class: org.joda.time.format.PeriodFormatterBuilder$IgnorableAffix
{
  private static final java.util.Comparator<java.lang.String> LENGTH_DESC_COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Comparator<Ljava/lang/String;>;

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

  private final java.util.regex.Pattern[] iPatterns;
    descriptor: [Ljava/util/regex/Pattern;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 1183
            new org.joda.time.format.PeriodFormatterBuilder$RegExAffix$1
            dup
            invokespecial org.joda.time.format.PeriodFormatterBuilder$RegExAffix$1.<init>:()V
            putstatic org.joda.time.format.PeriodFormatterBuilder$RegExAffix.LENGTH_DESC_COMPARATOR:Ljava/util/Comparator;
         1: .line 1187
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.String[], java.lang.String[]);
    descriptor: ([Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
        start local 1 // java.lang.String[] regExes
        start local 2 // java.lang.String[] texts
         0: .line 1196
            aload 0 /* this */
            invokespecial org.joda.time.format.PeriodFormatterBuilder$IgnorableAffix.<init>:()V
         1: .line 1197
            aload 0 /* this */
            aload 2 /* texts */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            putfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iSuffixes:[Ljava/lang/String;
         2: .line 1198
            aload 0 /* this */
            aload 1 /* regExes */
            arraylength
            anewarray java.util.regex.Pattern
            putfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iPatterns:[Ljava/util/regex/Pattern;
         3: .line 1199
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 11
         5: .line 1200
      StackMap locals: org.joda.time.format.PeriodFormatterBuilder$RegExAffix java.lang.String[] java.lang.String[] int
      StackMap stack:
            getstatic org.joda.time.format.PeriodFormatterBuilder.PATTERNS:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* regExes */
            iload 3 /* i */
            aaload
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.regex.Pattern
            astore 4 /* pattern */
        start local 4 // java.util.regex.Pattern pattern
         6: .line 1201
            aload 4 /* pattern */
            ifnonnull 9
         7: .line 1202
            aload 1 /* regExes */
            iload 3 /* i */
            aaload
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            astore 4 /* pattern */
         8: .line 1203
            getstatic org.joda.time.format.PeriodFormatterBuilder.PATTERNS:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* regExes */
            iload 3 /* i */
            aaload
            aload 4 /* pattern */
            invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 1205
      StackMap locals: java.util.regex.Pattern
      StackMap stack:
            aload 0 /* this */
            getfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iPatterns:[Ljava/util/regex/Pattern;
            iload 3 /* i */
            aload 4 /* pattern */
            aastore
        end local 4 // java.util.regex.Pattern pattern
        10: .line 1199
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            aload 1 /* regExes */
            arraylength
            if_icmplt 5
        end local 3 // int i
        12: .line 1207
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iSuffixes:[Ljava/lang/String;
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            putfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iSuffixesSortedDescByLength:[Ljava/lang/String;
        13: .line 1208
            aload 0 /* this */
            getfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iSuffixesSortedDescByLength:[Ljava/lang/String;
            getstatic org.joda.time.format.PeriodFormatterBuilder$RegExAffix.LENGTH_DESC_COMPARATOR:Ljava/util/Comparator;
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
        14: .line 1209
            return
        end local 2 // java.lang.String[] texts
        end local 1 // java.lang.String[] regExes
        end local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lorg/joda/time/format/PeriodFormatterBuilder$RegExAffix;
            0   15     1  regExes  [Ljava/lang/String;
            0   15     2    texts  [Ljava/lang/String;
            4   12     3        i  I
            6   10     4  pattern  Ljava/util/regex/Pattern;
    MethodParameters:
         Name  Flags
      regExes  
      texts    

  private int selectSuffixIndex(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
        start local 1 // int value
         0: .line 1212
            iload 1 /* value */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            astore 2 /* valueString */
        start local 2 // java.lang.String valueString
         1: .line 1213
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 6
         3: .line 1214
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iPatterns:[Ljava/util/regex/Pattern;
            iload 3 /* i */
            aaload
            aload 2 /* valueString */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 5
         4: .line 1215
            iload 3 /* i */
            ireturn
         5: .line 1213
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 0 /* this */
            getfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iPatterns:[Ljava/util/regex/Pattern;
            arraylength
            if_icmplt 3
        end local 3 // int i
         7: .line 1218
            aload 0 /* this */
            getfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iPatterns:[Ljava/util/regex/Pattern;
            arraylength
            iconst_1
            isub
            ireturn
        end local 2 // java.lang.String valueString
        end local 1 // int value
        end local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/joda/time/format/PeriodFormatterBuilder$RegExAffix;
            0    8     1        value  I
            1    8     2  valueString  Ljava/lang/String;
            2    7     3            i  I
    MethodParameters:
       Name  Flags
      value  

  public int calculatePrintedLength(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
        start local 1 // int value
         0: .line 1222
            aload 0 /* this */
            getfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iSuffixes:[Ljava/lang/String;
            aload 0 /* this */
            iload 1 /* value */
            invokevirtual org.joda.time.format.PeriodFormatterBuilder$RegExAffix.selectSuffixIndex:(I)I
            aaload
            invokevirtual java.lang.String.length:()I
            ireturn
        end local 1 // int value
        end local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/joda/time/format/PeriodFormatterBuilder$RegExAffix;
            0    1     1  value  I
    MethodParameters:
       Name  Flags
      value  

  public void printTo(java.lang.StringBuffer, int);
    descriptor: (Ljava/lang/StringBuffer;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
        start local 1 // java.lang.StringBuffer buf
        start local 2 // int value
         0: .line 1226
            aload 1 /* buf */
            aload 0 /* this */
            getfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iSuffixes:[Ljava/lang/String;
            aload 0 /* this */
            iload 2 /* value */
            invokevirtual org.joda.time.format.PeriodFormatterBuilder$RegExAffix.selectSuffixIndex:(I)I
            aaload
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         1: .line 1227
            return
        end local 2 // int value
        end local 1 // java.lang.StringBuffer buf
        end local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/joda/time/format/PeriodFormatterBuilder$RegExAffix;
            0    2     1    buf  Ljava/lang/StringBuffer;
            0    2     2  value  I
    MethodParameters:
       Name  Flags
      buf    
      value  

  public void printTo(java.io.Writer, int);
    descriptor: (Ljava/io/Writer;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
        start local 1 // java.io.Writer out
        start local 2 // int value
         0: .line 1230
            aload 1 /* out */
            aload 0 /* this */
            getfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iSuffixes:[Ljava/lang/String;
            aload 0 /* this */
            iload 2 /* value */
            invokevirtual org.joda.time.format.PeriodFormatterBuilder$RegExAffix.selectSuffixIndex:(I)I
            aaload
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
         1: .line 1231
            return
        end local 2 // int value
        end local 1 // java.io.Writer out
        end local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/joda/time/format/PeriodFormatterBuilder$RegExAffix;
            0    2     1    out  Ljava/io/Writer;
            0    2     2  value  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      out    
      value  

  public int parse(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
        start local 1 // java.lang.String periodStr
        start local 2 // int position
         0: .line 1234
            aload 0 /* this */
            getfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iSuffixesSortedDescByLength:[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: org.joda.time.format.PeriodFormatterBuilder$RegExAffix java.lang.String int top int int java.lang.String[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* text */
        start local 3 // java.lang.String text
         2: .line 1235
            aload 1 /* periodStr */
            iconst_1
            iload 2 /* position */
            aload 3 /* text */
            iconst_0
            aload 3 /* text */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.regionMatches:(ZILjava/lang/String;II)Z
            ifeq 5
         3: .line 1236
            aload 0 /* this */
            aload 3 /* text */
            invokevirtual java.lang.String.length:()I
            aload 1 /* periodStr */
            iload 2 /* position */
            invokevirtual org.joda.time.format.PeriodFormatterBuilder$RegExAffix.matchesOtherAffix:(ILjava/lang/String;I)Z
            ifne 5
         4: .line 1237
            iload 2 /* position */
            aload 3 /* text */
            invokevirtual java.lang.String.length:()I
            iadd
            ireturn
        end local 3 // java.lang.String text
         5: .line 1234
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 1
         7: .line 1241
            iload 2 /* position */
            iconst_m1
            ixor
            ireturn
        end local 2 // int position
        end local 1 // java.lang.String periodStr
        end local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/joda/time/format/PeriodFormatterBuilder$RegExAffix;
            0    8     1  periodStr  Ljava/lang/String;
            0    8     2   position  I
            2    5     3       text  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      periodStr  
      position   

  public int scan(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
        start local 1 // java.lang.String periodStr
        start local 2 // int position
         0: .line 1245
            aload 1 /* periodStr */
            invokevirtual java.lang.String.length:()I
            istore 3 /* sourceLength */
        start local 3 // int sourceLength
         1: .line 1246
            iload 2 /* position */
            istore 4 /* pos */
        start local 4 // int pos
         2: goto 11
         3: .line 1247
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iSuffixesSortedDescByLength:[Ljava/lang/String;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 9
      StackMap locals: org.joda.time.format.PeriodFormatterBuilder$RegExAffix java.lang.String int int int top int int java.lang.String[]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* text */
        start local 5 // java.lang.String text
         5: .line 1248
            aload 1 /* periodStr */
            iconst_1
            iload 4 /* pos */
            aload 5 /* text */
            iconst_0
            aload 5 /* text */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.regionMatches:(ZILjava/lang/String;II)Z
            ifeq 8
         6: .line 1249
            aload 0 /* this */
            aload 5 /* text */
            invokevirtual java.lang.String.length:()I
            aload 1 /* periodStr */
            iload 4 /* pos */
            invokevirtual org.joda.time.format.PeriodFormatterBuilder$RegExAffix.matchesOtherAffix:(ILjava/lang/String;I)Z
            ifne 8
         7: .line 1250
            iload 4 /* pos */
            ireturn
        end local 5 // java.lang.String text
         8: .line 1247
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         9: iload 6
            iload 7
            if_icmplt 4
        10: .line 1246
            iinc 4 /* pos */ 1
      StackMap locals: org.joda.time.format.PeriodFormatterBuilder$RegExAffix java.lang.String int int int
      StackMap stack:
        11: iload 4 /* pos */
            iload 3 /* sourceLength */
            if_icmplt 3
        end local 4 // int pos
        12: .line 1255
            iload 2 /* position */
            iconst_m1
            ixor
            ireturn
        end local 3 // int sourceLength
        end local 2 // int position
        end local 1 // java.lang.String periodStr
        end local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/joda/time/format/PeriodFormatterBuilder$RegExAffix;
            0   13     1     periodStr  Ljava/lang/String;
            0   13     2      position  I
            1   13     3  sourceLength  I
            2   12     4           pos  I
            5    8     5          text  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      periodStr  
      position   final

  public java.lang.String[] getAffixes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
         0: .line 1259
            aload 0 /* this */
            getfield org.joda.time.format.PeriodFormatterBuilder$RegExAffix.iSuffixes:[Ljava/lang/String;
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 0 // org.joda.time.format.PeriodFormatterBuilder$RegExAffix this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joda/time/format/PeriodFormatterBuilder$RegExAffix;
}
SourceFile: "PeriodFormatterBuilder.java"
NestHost: org.joda.time.format.PeriodFormatterBuilder
InnerClasses:
  abstract IgnorableAffix = org.joda.time.format.PeriodFormatterBuilder$IgnorableAffix of org.joda.time.format.PeriodFormatterBuilder
  RegExAffix = org.joda.time.format.PeriodFormatterBuilder$RegExAffix of org.joda.time.format.PeriodFormatterBuilder
  org.joda.time.format.PeriodFormatterBuilder$RegExAffix$1