public class org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords
  super_class: java.lang.Object
{
  private static final double INFINITE_DEMERITS;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: Infinity

  private final double[] bestDemerits;
    descriptor: [D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.fop.layoutmgr.BreakingAlgorithm$KnuthNode[] bestNode;
    descriptor: [Lorg/apache/fop/layoutmgr/BreakingAlgorithm$KnuthNode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final double[] bestAdjust;
    descriptor: [D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] bestDifference;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] bestAvailableShrink;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] bestAvailableStretch;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int bestIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  final org.apache.fop.layoutmgr.BreakingAlgorithm this$0;
    descriptor: Lorg/apache/fop/layoutmgr/BreakingAlgorithm;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(org.apache.fop.layoutmgr.BreakingAlgorithm);
    descriptor: (Lorg/apache/fop/layoutmgr/BreakingAlgorithm;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
         0: .line 332
            aload 0 /* this */
            aload 1
            putfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.this$0:Lorg/apache/fop/layoutmgr/BreakingAlgorithm;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 322
            aload 0 /* this */
            iconst_4
            newarray 7
            putfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestDemerits:[D
         2: .line 323
            aload 0 /* this */
            iconst_4
            anewarray org.apache.fop.layoutmgr.BreakingAlgorithm$KnuthNode
            putfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestNode:[Lorg/apache/fop/layoutmgr/BreakingAlgorithm$KnuthNode;
         3: .line 324
            aload 0 /* this */
            iconst_4
            newarray 7
            putfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestAdjust:[D
         4: .line 325
            aload 0 /* this */
            iconst_4
            newarray 10
            putfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestDifference:[I
         5: .line 326
            aload 0 /* this */
            iconst_4
            newarray 10
            putfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestAvailableShrink:[I
         6: .line 327
            aload 0 /* this */
            iconst_4
            newarray 10
            putfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestAvailableStretch:[I
         7: .line 329
            aload 0 /* this */
            iconst_m1
            putfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestIndex:I
         8: .line 333
            aload 0 /* this */
            invokevirtual org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.reset:()V
         9: .line 334
            return
        end local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/apache/fop/layoutmgr/BreakingAlgorithm$BestRecords;
    MethodParameters:
        Name  Flags
      this$0  final

  public void addRecord(double, org.apache.fop.layoutmgr.BreakingAlgorithm$KnuthNode, double, int, int, int, int);
    descriptor: (DLorg/apache/fop/layoutmgr/BreakingAlgorithm$KnuthNode;DIIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=8
        start local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
        start local 1 // double demerits
        start local 3 // org.apache.fop.layoutmgr.BreakingAlgorithm$KnuthNode node
        start local 4 // double adjust
        start local 6 // int availableShrink
        start local 7 // int availableStretch
        start local 8 // int difference
        start local 9 // int fitness
         0: .line 349
            dload 1 /* demerits */
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestDemerits:[D
            iload 9 /* fitness */
            daload
            dcmpl
            ifle 2
         1: .line 350
            getstatic org.apache.fop.layoutmgr.BreakingAlgorithm.log:Lorg/apache/commons/logging/Log;
            ldc "New demerits value greater than the old one"
            invokeinterface org.apache.commons.logging.Log.error:(Ljava/lang/Object;)V
         2: .line 352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestDemerits:[D
            iload 9 /* fitness */
            dload 1 /* demerits */
            dastore
         3: .line 353
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestNode:[Lorg/apache/fop/layoutmgr/BreakingAlgorithm$KnuthNode;
            iload 9 /* fitness */
            aload 3 /* node */
            aastore
         4: .line 354
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestAdjust:[D
            iload 9 /* fitness */
            dload 4 /* adjust */
            dastore
         5: .line 355
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestAvailableShrink:[I
            iload 9 /* fitness */
            iload 6 /* availableShrink */
            iastore
         6: .line 356
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestAvailableStretch:[I
            iload 9 /* fitness */
            iload 7 /* availableStretch */
            iastore
         7: .line 357
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestDifference:[I
            iload 9 /* fitness */
            iload 8 /* difference */
            iastore
         8: .line 358
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestIndex:I
            iconst_m1
            if_icmpeq 9
            dload 1 /* demerits */
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestDemerits:[D
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestIndex:I
            daload
            dcmpg
            ifge 10
         9: .line 359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 9 /* fitness */
            putfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestIndex:I
        10: .line 361
      StackMap locals:
      StackMap stack:
            return
        end local 9 // int fitness
        end local 8 // int difference
        end local 7 // int availableStretch
        end local 6 // int availableShrink
        end local 4 // double adjust
        end local 3 // org.apache.fop.layoutmgr.BreakingAlgorithm$KnuthNode node
        end local 1 // double demerits
        end local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Lorg/apache/fop/layoutmgr/BreakingAlgorithm$BestRecords;
            0   11     1          demerits  D
            0   11     3              node  Lorg/apache/fop/layoutmgr/BreakingAlgorithm$KnuthNode;
            0   11     4            adjust  D
            0   11     6   availableShrink  I
            0   11     7  availableStretch  I
            0   11     8        difference  I
            0   11     9           fitness  I
    MethodParameters:
                  Name  Flags
      demerits          
      node              
      adjust            
      availableShrink   
      availableStretch  
      difference        
      fitness           

  public boolean hasRecords();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
         0: .line 365
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestIndex:I
            iconst_m1
            if_icmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/fop/layoutmgr/BreakingAlgorithm$BestRecords;

  public boolean notInfiniteDemerits(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
        start local 1 // int fitness
         0: .line 374
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestDemerits:[D
            iload 1 /* fitness */
            daload
            ldc Infinity
            dcmpl
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int fitness
        end local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/apache/fop/layoutmgr/BreakingAlgorithm$BestRecords;
            0    2     1  fitness  I
    MethodParameters:
         Name  Flags
      fitness  

  public double getDemerits(int);
    descriptor: (I)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
        start local 1 // int fitness
         0: .line 382
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestDemerits:[D
            iload 1 /* fitness */
            daload
            dreturn
        end local 1 // int fitness
        end local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/fop/layoutmgr/BreakingAlgorithm$BestRecords;
            0    1     1  fitness  I
    MethodParameters:
         Name  Flags
      fitness  

  public org.apache.fop.layoutmgr.BreakingAlgorithm$KnuthNode getNode(int);
    descriptor: (I)Lorg/apache/fop/layoutmgr/BreakingAlgorithm$KnuthNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
        start local 1 // int fitness
         0: .line 390
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestNode:[Lorg/apache/fop/layoutmgr/BreakingAlgorithm$KnuthNode;
            iload 1 /* fitness */
            aaload
            areturn
        end local 1 // int fitness
        end local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/fop/layoutmgr/BreakingAlgorithm$BestRecords;
            0    1     1  fitness  I
    MethodParameters:
         Name  Flags
      fitness  

  public double getAdjust(int);
    descriptor: (I)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
        start local 1 // int fitness
         0: .line 398
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestAdjust:[D
            iload 1 /* fitness */
            daload
            dreturn
        end local 1 // int fitness
        end local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/fop/layoutmgr/BreakingAlgorithm$BestRecords;
            0    1     1  fitness  I
    MethodParameters:
         Name  Flags
      fitness  

  public int getAvailableShrink(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
        start local 1 // int fitness
         0: .line 406
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestAvailableShrink:[I
            iload 1 /* fitness */
            iaload
            ireturn
        end local 1 // int fitness
        end local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/fop/layoutmgr/BreakingAlgorithm$BestRecords;
            0    1     1  fitness  I
    MethodParameters:
         Name  Flags
      fitness  

  public int getAvailableStretch(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
        start local 1 // int fitness
         0: .line 414
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestAvailableStretch:[I
            iload 1 /* fitness */
            iaload
            ireturn
        end local 1 // int fitness
        end local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/fop/layoutmgr/BreakingAlgorithm$BestRecords;
            0    1     1  fitness  I
    MethodParameters:
         Name  Flags
      fitness  

  public int getDifference(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
        start local 1 // int fitness
         0: .line 422
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestDifference:[I
            iload 1 /* fitness */
            iaload
            ireturn
        end local 1 // int fitness
        end local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/fop/layoutmgr/BreakingAlgorithm$BestRecords;
            0    1     1  fitness  I
    MethodParameters:
         Name  Flags
      fitness  

  public double getMinDemerits();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
         0: .line 427
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestIndex:I
            iconst_m1
            if_icmpeq 2
         1: .line 428
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestIndex:I
            invokevirtual org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.getDemerits:(I)D
            dreturn
         2: .line 431
      StackMap locals:
      StackMap stack:
            ldc Infinity
            dreturn
        end local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/fop/layoutmgr/BreakingAlgorithm$BestRecords;

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
         0: .line 437
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 4
         2: .line 438
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestDemerits:[D
            iload 1 /* i */
            ldc Infinity
            dastore
         3: .line 437
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 1 /* i */
            iconst_4
            if_icmplt 2
        end local 1 // int i
         5: .line 441
            aload 0 /* this */
            iconst_m1
            putfield org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords.bestIndex:I
         6: .line 442
            return
        end local 0 // org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/fop/layoutmgr/BreakingAlgorithm$BestRecords;
            1    5     1     i  I
}
SourceFile: "BreakingAlgorithm.java"
NestHost: org.apache.fop.layoutmgr.BreakingAlgorithm
InnerClasses:
  protected BestRecords = org.apache.fop.layoutmgr.BreakingAlgorithm$BestRecords of org.apache.fop.layoutmgr.BreakingAlgorithm
  public KnuthNode = org.apache.fop.layoutmgr.BreakingAlgorithm$KnuthNode of org.apache.fop.layoutmgr.BreakingAlgorithm