public class org.jruby.util.RubyTimeOutputFormatter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.util.RubyTimeOutputFormatter
  super_class: java.lang.Object
{
  final java.lang.String flags;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  final int width;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  public static final org.jruby.util.RubyTimeOutputFormatter DEFAULT_FORMATTER;
    descriptor: Lorg/jruby/util/RubyTimeOutputFormatter;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final int SMALLBUF;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 38
            new org.jruby.util.RubyTimeOutputFormatter
            dup
            ldc ""
            iconst_0
            invokespecial org.jruby.util.RubyTimeOutputFormatter.<init>:(Ljava/lang/String;I)V
            putstatic org.jruby.util.RubyTimeOutputFormatter.DEFAULT_FORMATTER:Lorg/jruby/util/RubyTimeOutputFormatter;
         1: .line 124
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jruby.util.RubyTimeOutputFormatter this
        start local 1 // java.lang.String flags
        start local 2 // int width
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 41
            aload 0 /* this */
            aload 1 /* flags */
            putfield org.jruby.util.RubyTimeOutputFormatter.flags:Ljava/lang/String;
         2: .line 42
            aload 0 /* this */
            iload 2 /* width */
            putfield org.jruby.util.RubyTimeOutputFormatter.width:I
         3: .line 43
            return
        end local 2 // int width
        end local 1 // java.lang.String flags
        end local 0 // org.jruby.util.RubyTimeOutputFormatter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/jruby/util/RubyTimeOutputFormatter;
            0    4     1  flags  Ljava/lang/String;
            0    4     2  width  I
    MethodParameters:
       Name  Flags
      flags  
      width  

  public int getWidth(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.RubyTimeOutputFormatter this
        start local 1 // int defaultWidth
         0: .line 46
            aload 0 /* this */
            getfield org.jruby.util.RubyTimeOutputFormatter.flags:Ljava/lang/String;
            bipush 45
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 2
         1: .line 47
            iconst_0
            ireturn
         2: .line 49
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.RubyTimeOutputFormatter.width:I
            ifeq 3
            aload 0 /* this */
            getfield org.jruby.util.RubyTimeOutputFormatter.width:I
            goto 4
      StackMap locals:
      StackMap stack:
         3: iload 1 /* defaultWidth */
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 1 // int defaultWidth
        end local 0 // org.jruby.util.RubyTimeOutputFormatter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/jruby/util/RubyTimeOutputFormatter;
            0    5     1  defaultWidth  I
    MethodParameters:
              Name  Flags
      defaultWidth  

  public char getPadder(char);
    descriptor: (C)C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.jruby.util.RubyTimeOutputFormatter this
        start local 1 // char defaultPadder
         0: .line 53
            iload 1 /* defaultPadder */
            istore 2 /* padder */
        start local 2 // char padder
         1: .line 54
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 10
         3: .line 55
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.RubyTimeOutputFormatter.flags:Ljava/lang/String;
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            lookupswitch { // 3
                   45: 8
                   48: 6
                   95: 4
              default: 9
          }
         4: .line 57
      StackMap locals:
      StackMap stack:
            bipush 32
            istore 2 /* padder */
         5: .line 58
            goto 9
         6: .line 60
      StackMap locals:
      StackMap stack:
            bipush 48
            istore 2 /* padder */
         7: .line 61
            goto 9
         8: .line 63
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* padder */
         9: .line 54
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            aload 0 /* this */
            getfield org.jruby.util.RubyTimeOutputFormatter.flags:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmplt 3
        end local 3 // int i
        11: .line 67
            iload 2 /* padder */
            ireturn
        end local 2 // char padder
        end local 1 // char defaultPadder
        end local 0 // org.jruby.util.RubyTimeOutputFormatter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lorg/jruby/util/RubyTimeOutputFormatter;
            0   12     1  defaultPadder  C
            1   12     2         padder  C
            2   11     3              i  I
    MethodParameters:
               Name  Flags
      defaultPadder  

  public java.lang.String format(java.lang.CharSequence, long, org.jruby.util.RubyDateFormatter$FieldType);
    descriptor: (Ljava/lang/CharSequence;JLorg/jruby/util/RubyDateFormatter$FieldType;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // org.jruby.util.RubyTimeOutputFormatter this
        start local 1 // java.lang.CharSequence sequence
        start local 2 // long value
        start local 4 // org.jruby.util.RubyDateFormatter$FieldType type
         0: .line 71
            aload 0 /* this */
            aload 4 /* type */
            getfield org.jruby.util.RubyDateFormatter$FieldType.defaultWidth:I
            invokevirtual org.jruby.util.RubyTimeOutputFormatter.getWidth:(I)I
            istore 5 /* width */
        start local 5 // int width
         1: .line 72
            aload 0 /* this */
            aload 4 /* type */
            getfield org.jruby.util.RubyDateFormatter$FieldType.defaultPadder:C
            invokevirtual org.jruby.util.RubyTimeOutputFormatter.getPadder:(C)C
            istore 6 /* padder */
        start local 6 // char padder
         2: .line 74
            aload 1 /* sequence */
            ifnonnull 5
         3: .line 75
            lload 2 /* value */
            iload 5 /* width */
            iload 6 /* padder */
            invokestatic org.jruby.util.RubyTimeOutputFormatter.formatNumber:(JIC)Ljava/lang/CharSequence;
            astore 1 /* sequence */
         4: .line 76
            goto 6
         5: .line 77
      StackMap locals: int int
      StackMap stack:
            aload 1 /* sequence */
            iload 5 /* width */
            iload 6 /* padder */
            invokestatic org.jruby.util.RubyTimeOutputFormatter.padding:(Ljava/lang/CharSequence;IC)Ljava/lang/CharSequence;
            astore 1 /* sequence */
         6: .line 80
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 17
         8: .line 81
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.RubyTimeOutputFormatter.flags:Ljava/lang/String;
            iload 7 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            lookupswitch { // 2
                   35: 11
                   94: 9
              default: 16
          }
         9: .line 83
      StackMap locals:
      StackMap stack:
            aload 1 /* sequence */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            astore 1 /* sequence */
        10: .line 84
            goto 16
        11: .line 86
      StackMap locals:
      StackMap stack:
            aload 1 /* sequence */
            aload 1 /* sequence */
            invokeinterface java.lang.CharSequence.length:()I
            iconst_1
            isub
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 8 /* last */
        start local 8 // char last
        12: .line 87
            iload 8 /* last */
            invokestatic java.lang.Character.isLowerCase:(C)Z
            ifeq 15
        13: .line 88
            aload 1 /* sequence */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            astore 1 /* sequence */
        14: .line 89
            goto 16
        15: .line 90
      StackMap locals: int
      StackMap stack:
            aload 1 /* sequence */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 1 /* sequence */
        end local 8 // char last
        16: .line 80
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 7 /* i */
            aload 0 /* this */
            getfield org.jruby.util.RubyTimeOutputFormatter.flags:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmplt 8
        end local 7 // int i
        18: .line 96
            aload 1 /* sequence */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            areturn
        end local 6 // char padder
        end local 5 // int width
        end local 4 // org.jruby.util.RubyDateFormatter$FieldType type
        end local 2 // long value
        end local 1 // java.lang.CharSequence sequence
        end local 0 // org.jruby.util.RubyTimeOutputFormatter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Lorg/jruby/util/RubyTimeOutputFormatter;
            0   19     1  sequence  Ljava/lang/CharSequence;
            0   19     2     value  J
            0   19     4      type  Lorg/jruby/util/RubyDateFormatter$FieldType;
            1   19     5     width  I
            2   19     6    padder  C
            7   18     7         i  I
           12   16     8      last  C
    MethodParameters:
          Name  Flags
      sequence  
      value     
      type      

  static java.lang.CharSequence formatNumber(long, int, char);
    descriptor: (JIC)Ljava/lang/CharSequence;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // long value
        start local 2 // int width
        start local 3 // char padder
         0: .line 100
            lload 0 /* value */
            lconst_0
            lcmp
            ifge 1
            iload 3 /* padder */
            bipush 48
            if_icmpeq 2
         1: .line 101
      StackMap locals:
      StackMap stack:
            lload 0 /* value */
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            iload 2 /* width */
            iload 3 /* padder */
            invokestatic org.jruby.util.RubyTimeOutputFormatter.padding:(Ljava/lang/CharSequence;IC)Ljava/lang/CharSequence;
            areturn
         2: .line 103
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            lload 0 /* value */
            lneg
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            iload 2 /* width */
            iconst_1
            isub
            iload 3 /* padder */
            invokestatic org.jruby.util.RubyTimeOutputFormatter.padding:(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;IC)Ljava/lang/StringBuilder;
            areturn
        end local 3 // char padder
        end local 2 // int width
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0   value  J
            0    3     2   width  I
            0    3     3  padder  C
    MethodParameters:
        Name  Flags
      value   
      width   
      padder  

  static java.lang.StringBuilder formatSignedNumber(long, int, char);
    descriptor: (JIC)Ljava/lang/StringBuilder;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // long value
        start local 2 // int width
        start local 3 // char padder
         0: .line 107
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* out */
        start local 4 // java.lang.StringBuilder out
         1: .line 108
            iload 3 /* padder */
            bipush 48
            if_icmpne 5
         2: .line 109
            lload 0 /* value */
            lconst_0
            lcmp
            iflt 4
         3: .line 110
            aload 4 /* out */
            bipush 43
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            lload 0 /* value */
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            iload 2 /* width */
            iconst_1
            isub
            iload 3 /* padder */
            invokestatic org.jruby.util.RubyTimeOutputFormatter.padding:(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;IC)Ljava/lang/StringBuilder;
            areturn
         4: .line 112
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 4 /* out */
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            lload 0 /* value */
            lneg
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            iload 2 /* width */
            iconst_1
            isub
            iload 3 /* padder */
            invokestatic org.jruby.util.RubyTimeOutputFormatter.padding:(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;IC)Ljava/lang/StringBuilder;
            areturn
         5: .line 115
      StackMap locals:
      StackMap stack:
            lload 0 /* value */
            lconst_0
            lcmp
            iflt 8
         6: .line 116
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            bipush 43
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            lload 0 /* value */
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            astore 5 /* str */
        start local 5 // java.lang.StringBuilder str
         7: .line 117
            aload 4 /* out */
            aload 5 /* str */
            iload 2 /* width */
            iload 3 /* padder */
            invokestatic org.jruby.util.RubyTimeOutputFormatter.padding:(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;IC)Ljava/lang/StringBuilder;
            areturn
        end local 5 // java.lang.StringBuilder str
         8: .line 119
      StackMap locals:
      StackMap stack:
            aload 4 /* out */
            lload 0 /* value */
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            iload 2 /* width */
            iload 3 /* padder */
            invokestatic org.jruby.util.RubyTimeOutputFormatter.padding:(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;IC)Ljava/lang/StringBuilder;
            areturn
        end local 4 // java.lang.StringBuilder out
        end local 3 // char padder
        end local 2 // int width
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0   value  J
            0    9     2   width  I
            0    9     3  padder  C
            1    9     4     out  Ljava/lang/StringBuilder;
            7    8     5     str  Ljava/lang/StringBuilder;
    MethodParameters:
        Name  Flags
      value   
      width   
      padder  

  private static java.lang.CharSequence padding(java.lang.CharSequence, int, char);
    descriptor: (Ljava/lang/CharSequence;IC)Ljava/lang/CharSequence;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.lang.CharSequence sequence
        start local 1 // int width
        start local 2 // char padder
         0: .line 127
            aload 0 /* sequence */
            invokeinterface java.lang.CharSequence.length:()I
            istore 3 /* len */
        start local 3 // int len
         1: .line 128
            iload 3 /* len */
            iload 1 /* width */
            if_icmplt 2
            aload 0 /* sequence */
            areturn
         2: .line 130
      StackMap locals: int
      StackMap stack:
            iload 1 /* width */
            bipush 100
            if_icmple 3
            new java.lang.IndexOutOfBoundsException
            dup
            new java.lang.StringBuilder
            dup
            ldc "padding width "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* width */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " too large"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 132
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            iload 1 /* width */
            iload 3 /* len */
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 4 /* out */
        start local 4 // java.lang.StringBuilder out
         4: .line 133
            iload 3 /* len */
            istore 5 /* i */
        start local 5 // int i
         5: goto 7
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
         6: aload 4 /* out */
            iload 2 /* padder */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            iload 1 /* width */
            if_icmplt 6
        end local 5 // int i
         8: .line 134
            aload 4 /* out */
            aload 0 /* sequence */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            pop
         9: .line 135
            aload 4 /* out */
            areturn
        end local 4 // java.lang.StringBuilder out
        end local 3 // int len
        end local 2 // char padder
        end local 1 // int width
        end local 0 // java.lang.CharSequence sequence
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0  sequence  Ljava/lang/CharSequence;
            0   10     1     width  I
            0   10     2    padder  C
            1   10     3       len  I
            4   10     4       out  Ljava/lang/StringBuilder;
            5    8     5         i  I
    MethodParameters:
          Name  Flags
      sequence  
      width     
      padder    

  private static java.lang.StringBuilder padding(java.lang.StringBuilder, java.lang.CharSequence, int, char);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/CharSequence;IC)Ljava/lang/StringBuilder;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // java.lang.StringBuilder out
        start local 1 // java.lang.CharSequence sequence
        start local 2 // int width
        start local 3 // char padder
         0: .line 140
            aload 1 /* sequence */
            invokeinterface java.lang.CharSequence.length:()I
            istore 4 /* len */
        start local 4 // int len
         1: .line 141
            iload 4 /* len */
            iload 2 /* width */
            if_icmplt 2
            aload 0 /* out */
            aload 1 /* sequence */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            areturn
         2: .line 143
      StackMap locals: int
      StackMap stack:
            iload 2 /* width */
            bipush 100
            if_icmple 3
            new java.lang.IndexOutOfBoundsException
            dup
            new java.lang.StringBuilder
            dup
            ldc "padding width "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* width */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " too large"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* out */
            iload 2 /* width */
            iload 4 /* len */
            iadd
            invokevirtual java.lang.StringBuilder.ensureCapacity:(I)V
         4: .line 146
            iload 4 /* len */
            istore 5 /* i */
        start local 5 // int i
         5: goto 7
      StackMap locals: int
      StackMap stack:
         6: aload 0 /* out */
            iload 3 /* padder */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            iload 2 /* width */
            if_icmplt 6
        end local 5 // int i
         8: .line 147
            aload 0 /* out */
            aload 1 /* sequence */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            areturn
        end local 4 // int len
        end local 3 // char padder
        end local 2 // int width
        end local 1 // java.lang.CharSequence sequence
        end local 0 // java.lang.StringBuilder out
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0       out  Ljava/lang/StringBuilder;
            0    9     1  sequence  Ljava/lang/CharSequence;
            0    9     2     width  I
            0    9     3    padder  C
            1    9     4       len  I
            5    8     5         i  I
    MethodParameters:
          Name  Flags
      out       final
      sequence  
      width     final
      padder    final
}
SourceFile: "RubyTimeOutputFormatter.java"
InnerClasses:
  final FieldType = org.jruby.util.RubyDateFormatter$FieldType of org.jruby.util.RubyDateFormatter