Class BreakingAlgorithm.BestRecords

java.lang.Object
org.apache.fop.layoutmgr.BreakingAlgorithm.BestRecords
Direct Known Subclasses:
PageBreakingAlgorithm.BestPageRecords
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.
  • Field Details

    • INFINITE_DEMERITS

      private static final double INFINITE_DEMERITS
      See Also:
    • bestDemerits

      private final double[] bestDemerits
    • bestNode

      private final BreakingAlgorithm.KnuthNode[] bestNode
    • bestAdjust

      private final double[] bestAdjust
    • bestDifference

      private final int[] bestDifference
    • bestAvailableShrink

      private final int[] bestAvailableShrink
    • bestAvailableStretch

      private final int[] bestAvailableStretch
    • bestIndex

      private int bestIndex
      Points to the fitness class which currently leads to the best demerits.
  • Constructor Details

    • BestRecords

      public BestRecords()
      default constructor
  • Method Details

    • 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.