org.apache.fop.layoutmgr

## Class BreakingAlgorithm.BestRecords

- java.lang.Object
- - org.apache.fop.layoutmgr.BreakingAlgorithm.BestRecords

Enclosing class:
  BreakingAlgorithm

    protected class BreakingAlgorithm.BestRecords
    extends Object

Class that stores, for each fitness class, the best active node that could start a line of the corresponding fitness ending at the current element.

### Constructor Summary

Constructors
Constructor and Description
`BestRecords()` default constructor

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addRecord(double demerits, BreakingAlgorithm.KnuthNode node, double adjust, int availableShrink, int availableStretch, int difference, int fitness)` Registers the new best active node for the given fitness class.
`double` `getAdjust(int fitness)`
`int` `getAvailableShrink(int fitness)`
`int` `getAvailableStretch(int fitness)`
`double` `getDemerits(int fitness)`
`int` `getDifference(int fitness)`
`double` `getMinDemerits()`
`BreakingAlgorithm.KnuthNode` `getNode(int fitness)`
`boolean` `hasRecords()`
`boolean` `notInfiniteDemerits(int fitness)`
`void` `reset()` Reset when a new breakpoint is being considered.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### BestRecords

    public BestRecords()

default constructor

### Method Detail

#### addRecord

    public void addRecord(double demerits,
                          BreakingAlgorithm.KnuthNode node,
                          double adjust,
                          int availableShrink,
                          int availableStretch,
                          int difference,
                          int fitness)

Registers the new best active node for the given fitness class.

Parameters:
  `demerits` - the total demerits of the new optimal set of breakpoints
  `node` - the node starting the line ending at the current element
  `adjust` - adjustment ratio of the current line
  `availableShrink` - how much the current line can be shrinked
  `availableStretch` - how much the current line can be stretched
  `difference` - difference between the width of the considered line and the width of the "real" line
  `fitness` - fitness class of the current line

#### hasRecords

    public boolean hasRecords()

Returns:
  true if has records (best index not -1)

#### notInfiniteDemerits

    public boolean notInfiniteDemerits(int fitness)

Parameters:
  `fitness` - fitness class (0, 1, 2 or 3, i.e. "tight" to "very loose")
Returns:
  true if there is a set of feasible breakpoints registered for the given fitness.

#### getDemerits

    public double getDemerits(int fitness)

Parameters:
  `fitness` - to use
Returns:
  best demerits

#### getNode

    public BreakingAlgorithm.KnuthNode getNode(int fitness)

Parameters:
  `fitness` - to use
Returns:
  best node

#### getAdjust

    public double getAdjust(int fitness)

Parameters:
  `fitness` - to use
Returns:
  adjustment

#### getAvailableShrink

    public int getAvailableShrink(int fitness)

Parameters:
  `fitness` - to use
Returns:
  available shrink

#### getAvailableStretch

    public int getAvailableStretch(int fitness)

Parameters:
  `fitness` - to use
Returns:
  available stretch

#### getDifference

    public int getDifference(int fitness)

Parameters:
  `fitness` - to use
Returns:
  difference

#### getMinDemerits

    public double getMinDemerits()

Returns:
  minimum demerits

#### reset

    public void reset()

Reset when a new breakpoint is being considered.