public class java.awt.BasicStroke implements java.awt.Stroke
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.awt.BasicStroke
  super_class: java.lang.Object
{
  public static final int JOIN_MITER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int JOIN_ROUND;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int JOIN_BEVEL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int CAP_BUTT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int CAP_ROUND;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int CAP_SQUARE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  float width;
    descriptor: F
    flags: (0x0000) 

  int join;
    descriptor: I
    flags: (0x0000) 

  int cap;
    descriptor: I
    flags: (0x0000) 

  float miterlimit;
    descriptor: F
    flags: (0x0000) 

  float[] dash;
    descriptor: [F
    flags: (0x0000) 

  float dash_phase;
    descriptor: F
    flags: (0x0000) 

  public void <init>(float, int, int, float, float[], float);
    descriptor: (FIIF[FF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=7
        start local 0 // java.awt.BasicStroke this
        start local 1 // float width
        start local 2 // int cap
        start local 3 // int join
        start local 4 // float miterlimit
        start local 5 // float[] dash
        start local 6 // float dash_phase
         0: .line 191
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 193
            fload 1 /* width */
            fconst_0
            fcmpg
            ifge 3
         2: .line 194
            new java.lang.IllegalArgumentException
            dup
            ldc "negative width"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 196
      StackMap locals: java.awt.BasicStroke float int int float float[] float
      StackMap stack:
            iload 2 /* cap */
            ifeq 5
            iload 2 /* cap */
            iconst_1
            if_icmpeq 5
            iload 2 /* cap */
            iconst_2
            if_icmpeq 5
         4: .line 197
            new java.lang.IllegalArgumentException
            dup
            ldc "illegal end cap value"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 199
      StackMap locals:
      StackMap stack:
            iload 3 /* join */
            ifne 8
         6: .line 200
            fload 4 /* miterlimit */
            fconst_1
            fcmpg
            ifge 10
         7: .line 201
            new java.lang.IllegalArgumentException
            dup
            ldc "miter limit < 1"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 203
      StackMap locals:
      StackMap stack:
            iload 3 /* join */
            iconst_1
            if_icmpeq 10
            iload 3 /* join */
            iconst_2
            if_icmpeq 10
         9: .line 204
            new java.lang.IllegalArgumentException
            dup
            ldc "illegal line join value"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 206
      StackMap locals:
      StackMap stack:
            aload 5 /* dash */
            ifnull 26
        11: .line 207
            fload 6 /* dash_phase */
            fconst_0
            fcmpg
            ifge 13
        12: .line 208
            new java.lang.IllegalArgumentException
            dup
            ldc "negative dash phase"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 210
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* allzero */
        start local 7 // boolean allzero
        14: .line 211
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        15: goto 23
        16: .line 212
      StackMap locals: int int
      StackMap stack:
            aload 5 /* dash */
            iload 8 /* i */
            faload
            fstore 9 /* d */
        start local 9 // float d
        17: .line 213
            fload 9 /* d */
            f2d
            dconst_0
            dcmpl
            ifle 20
        18: .line 214
            iconst_0
            istore 7 /* allzero */
        19: .line 215
            goto 22
      StackMap locals: float
      StackMap stack:
        20: fload 9 /* d */
            f2d
            dconst_0
            dcmpg
            ifge 22
        21: .line 216
            new java.lang.IllegalArgumentException
            dup
            ldc "negative dash length"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // float d
        22: .line 211
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 8 /* i */
            aload 5 /* dash */
            arraylength
            if_icmplt 16
        end local 8 // int i
        24: .line 219
            iload 7 /* allzero */
            ifeq 26
        25: .line 220
            new java.lang.IllegalArgumentException
            dup
            ldc "dash lengths all zero"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // boolean allzero
        26: .line 223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fload 1 /* width */
            putfield java.awt.BasicStroke.width:F
        27: .line 224
            aload 0 /* this */
            iload 2 /* cap */
            putfield java.awt.BasicStroke.cap:I
        28: .line 225
            aload 0 /* this */
            iload 3 /* join */
            putfield java.awt.BasicStroke.join:I
        29: .line 226
            aload 0 /* this */
            fload 4 /* miterlimit */
            putfield java.awt.BasicStroke.miterlimit:F
        30: .line 227
            aload 5 /* dash */
            ifnull 32
        31: .line 228
            aload 0 /* this */
            aload 5 /* dash */
            invokevirtual float[].clone:()Ljava/lang/Object;
            checkcast float[]
            putfield java.awt.BasicStroke.dash:[F
        32: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fload 6 /* dash_phase */
            putfield java.awt.BasicStroke.dash_phase:F
        33: .line 231
            return
        end local 6 // float dash_phase
        end local 5 // float[] dash
        end local 4 // float miterlimit
        end local 3 // int join
        end local 2 // int cap
        end local 1 // float width
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   34     0        this  Ljava/awt/BasicStroke;
            0   34     1       width  F
            0   34     2         cap  I
            0   34     3        join  I
            0   34     4  miterlimit  F
            0   34     5        dash  [F
            0   34     6  dash_phase  F
           14   26     7     allzero  Z
           15   24     8           i  I
           17   22     9           d  F
    RuntimeVisibleAnnotations: 
      java.beans.ConstructorProperties(value = {"lineWidth", "endCap", "lineJoin", "miterLimit", "dashArray", "dashPhase"})
    MethodParameters:
            Name  Flags
      width       
      cap         
      join        
      miterlimit  
      dash        
      dash_phase  

  public void <init>(float, int, int, float);
    descriptor: (FIIF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // java.awt.BasicStroke this
        start local 1 // float width
        start local 2 // int cap
        start local 3 // int join
        start local 4 // float miterlimit
         0: .line 249
            aload 0 /* this */
            fload 1 /* width */
            iload 2 /* cap */
            iload 3 /* join */
            fload 4 /* miterlimit */
            aconst_null
            fconst_0
            invokespecial java.awt.BasicStroke.<init>:(FIIF[FF)V
         1: .line 250
            return
        end local 4 // float miterlimit
        end local 3 // int join
        end local 2 // int cap
        end local 1 // float width
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljava/awt/BasicStroke;
            0    2     1       width  F
            0    2     2         cap  I
            0    2     3        join  I
            0    2     4  miterlimit  F
    MethodParameters:
            Name  Flags
      width       
      cap         
      join        
      miterlimit  

  public void <init>(float, int, int);
    descriptor: (FII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // java.awt.BasicStroke this
        start local 1 // float width
        start local 2 // int cap
        start local 3 // int join
         0: .line 267
            aload 0 /* this */
            fload 1 /* width */
            iload 2 /* cap */
            iload 3 /* join */
            ldc 10.0
            aconst_null
            fconst_0
            invokespecial java.awt.BasicStroke.<init>:(FIIF[FF)V
         1: .line 268
            return
        end local 3 // int join
        end local 2 // int cap
        end local 1 // float width
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/awt/BasicStroke;
            0    2     1  width  F
            0    2     2    cap  I
            0    2     3   join  I
    MethodParameters:
       Name  Flags
      width  
      cap    
      join   

  public void <init>(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // java.awt.BasicStroke this
        start local 1 // float width
         0: .line 278
            aload 0 /* this */
            fload 1 /* width */
            iconst_2
            iconst_0
            ldc 10.0
            aconst_null
            fconst_0
            invokespecial java.awt.BasicStroke.<init>:(FIIF[FF)V
         1: .line 279
            return
        end local 1 // float width
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/awt/BasicStroke;
            0    2     1  width  F
    MethodParameters:
       Name  Flags
      width  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // java.awt.BasicStroke this
         0: .line 288
            aload 0 /* this */
            fconst_1
            iconst_2
            iconst_0
            ldc 10.0
            aconst_null
            fconst_0
            invokespecial java.awt.BasicStroke.<init>:(FIIF[FF)V
         1: .line 289
            return
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/awt/BasicStroke;

  public java.awt.Shape createStrokedShape(java.awt.Shape);
    descriptor: (Ljava/awt/Shape;)Ljava/awt/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // java.awt.BasicStroke this
        start local 1 // java.awt.Shape s
         0: .line 300
            invokestatic sun.java2d.pipe.RenderingEngine.getInstance:()Lsun/java2d/pipe/RenderingEngine;
         1: .line 299
            astore 2 /* re */
        start local 2 // sun.java2d.pipe.RenderingEngine re
         2: .line 301
            aload 2 /* re */
            aload 1 /* s */
            aload 0 /* this */
            getfield java.awt.BasicStroke.width:F
            aload 0 /* this */
            getfield java.awt.BasicStroke.cap:I
            aload 0 /* this */
            getfield java.awt.BasicStroke.join:I
            aload 0 /* this */
            getfield java.awt.BasicStroke.miterlimit:F
         3: .line 302
            aload 0 /* this */
            getfield java.awt.BasicStroke.dash:[F
            aload 0 /* this */
            getfield java.awt.BasicStroke.dash_phase:F
         4: .line 301
            invokevirtual sun.java2d.pipe.RenderingEngine.createStrokedShape:(Ljava/awt/Shape;FIIF[FF)Ljava/awt/Shape;
            areturn
        end local 2 // sun.java2d.pipe.RenderingEngine re
        end local 1 // java.awt.Shape s
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/awt/BasicStroke;
            0    5     1     s  Ljava/awt/Shape;
            2    5     2    re  Lsun/java2d/pipe/RenderingEngine;
    MethodParameters:
      Name  Flags
      s     

  public float getLineWidth();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.BasicStroke this
         0: .line 314
            aload 0 /* this */
            getfield java.awt.BasicStroke.width:F
            freturn
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/BasicStroke;

  public int getEndCap();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.BasicStroke this
         0: .line 324
            aload 0 /* this */
            getfield java.awt.BasicStroke.cap:I
            ireturn
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/BasicStroke;

  public int getLineJoin();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.BasicStroke this
         0: .line 334
            aload 0 /* this */
            getfield java.awt.BasicStroke.join:I
            ireturn
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/BasicStroke;

  public float getMiterLimit();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.BasicStroke this
         0: .line 342
            aload 0 /* this */
            getfield java.awt.BasicStroke.miterlimit:F
            freturn
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/BasicStroke;

  public float[] getDashArray();
    descriptor: ()[F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.BasicStroke this
         0: .line 358
            aload 0 /* this */
            getfield java.awt.BasicStroke.dash:[F
            ifnonnull 2
         1: .line 359
            aconst_null
            areturn
         2: .line 362
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.BasicStroke.dash:[F
            invokevirtual float[].clone:()Ljava/lang/Object;
            checkcast float[]
            areturn
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/awt/BasicStroke;

  public float getDashPhase();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.BasicStroke this
         0: .line 374
            aload 0 /* this */
            getfield java.awt.BasicStroke.dash_phase:F
            freturn
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/BasicStroke;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.awt.BasicStroke this
         0: .line 382
            aload 0 /* this */
            getfield java.awt.BasicStroke.width:F
            invokestatic java.lang.Float.floatToIntBits:(F)I
            istore 1 /* hash */
        start local 1 // int hash
         1: .line 383
            iload 1 /* hash */
            bipush 31
            imul
            aload 0 /* this */
            getfield java.awt.BasicStroke.join:I
            iadd
            istore 1 /* hash */
         2: .line 384
            iload 1 /* hash */
            bipush 31
            imul
            aload 0 /* this */
            getfield java.awt.BasicStroke.cap:I
            iadd
            istore 1 /* hash */
         3: .line 385
            iload 1 /* hash */
            bipush 31
            imul
            aload 0 /* this */
            getfield java.awt.BasicStroke.miterlimit:F
            invokestatic java.lang.Float.floatToIntBits:(F)I
            iadd
            istore 1 /* hash */
         4: .line 386
            aload 0 /* this */
            getfield java.awt.BasicStroke.dash:[F
            ifnull 11
         5: .line 387
            iload 1 /* hash */
            bipush 31
            imul
            aload 0 /* this */
            getfield java.awt.BasicStroke.dash_phase:F
            invokestatic java.lang.Float.floatToIntBits:(F)I
            iadd
            istore 1 /* hash */
         6: .line 388
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         7: goto 10
         8: .line 389
      StackMap locals: int int
      StackMap stack:
            iload 1 /* hash */
            bipush 31
            imul
            aload 0 /* this */
            getfield java.awt.BasicStroke.dash:[F
            iload 2 /* i */
            faload
            invokestatic java.lang.Float.floatToIntBits:(F)I
            iadd
            istore 1 /* hash */
         9: .line 388
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            aload 0 /* this */
            getfield java.awt.BasicStroke.dash:[F
            arraylength
            if_icmplt 8
        end local 2 // int i
        11: .line 392
      StackMap locals:
      StackMap stack:
            iload 1 /* hash */
            ireturn
        end local 1 // int hash
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljava/awt/BasicStroke;
            1   12     1  hash  I
            7   11     2     i  I

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.awt.BasicStroke this
        start local 1 // java.lang.Object obj
         0: .line 411
            aload 1 /* obj */
            instanceof java.awt.BasicStroke
            ifne 2
         1: .line 412
            iconst_0
            ireturn
         2: .line 415
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast java.awt.BasicStroke
            astore 2 /* bs */
        start local 2 // java.awt.BasicStroke bs
         3: .line 416
            aload 0 /* this */
            getfield java.awt.BasicStroke.width:F
            aload 2 /* bs */
            getfield java.awt.BasicStroke.width:F
            fcmpl
            ifeq 5
         4: .line 417
            iconst_0
            ireturn
         5: .line 420
      StackMap locals: java.awt.BasicStroke
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.BasicStroke.join:I
            aload 2 /* bs */
            getfield java.awt.BasicStroke.join:I
            if_icmpeq 7
         6: .line 421
            iconst_0
            ireturn
         7: .line 424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.BasicStroke.cap:I
            aload 2 /* bs */
            getfield java.awt.BasicStroke.cap:I
            if_icmpeq 9
         8: .line 425
            iconst_0
            ireturn
         9: .line 428
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.BasicStroke.miterlimit:F
            aload 2 /* bs */
            getfield java.awt.BasicStroke.miterlimit:F
            fcmpl
            ifeq 11
        10: .line 429
            iconst_0
            ireturn
        11: .line 432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.BasicStroke.dash:[F
            ifnull 16
        12: .line 433
            aload 0 /* this */
            getfield java.awt.BasicStroke.dash_phase:F
            aload 2 /* bs */
            getfield java.awt.BasicStroke.dash_phase:F
            fcmpl
            ifeq 14
        13: .line 434
            iconst_0
            ireturn
        14: .line 437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.BasicStroke.dash:[F
            aload 2 /* bs */
            getfield java.awt.BasicStroke.dash:[F
            invokestatic java.util.Arrays.equals:([F[F)Z
            ifne 18
        15: .line 438
            iconst_0
            ireturn
        16: .line 441
      StackMap locals:
      StackMap stack:
            aload 2 /* bs */
            getfield java.awt.BasicStroke.dash:[F
            ifnull 18
        17: .line 442
            iconst_0
            ireturn
        18: .line 445
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // java.awt.BasicStroke bs
        end local 1 // java.lang.Object obj
        end local 0 // java.awt.BasicStroke this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Ljava/awt/BasicStroke;
            0   19     1   obj  Ljava/lang/Object;
            3   19     2    bs  Ljava/awt/BasicStroke;
    MethodParameters:
      Name  Flags
      obj   
}
SourceFile: "BasicStroke.java"