ElementListUtils (Apache FOP Core 2.11 API)
Date: 2025-04-24

org.apache.fop.layoutmgr

## Class ElementListUtils

- java.lang.Object
- - org.apache.fop.layoutmgr.ElementListUtils

-     public final class ElementListUtils
      extends Object

  Utilities for Knuth element lists.

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static int` | `calcContentLength(List elems)` Calculates the content length of the given element list.
    `static int` | `calcContentLength(List<ListElement> elems, int start, int end)` Calculates the content length of the given element list.
    `static int` | `determinePreviousBreak(List<ListElement> elems, int startIndex)` Determines the position of the previous break before the start index on an element list.
    `static boolean` | `endsWithForcedBreak(List<ListElement> elems)` Indicates whether the given element list ends with a forced break.
    `static boolean` | `endsWithNonInfinitePenalty(List<ListElement> elems)` Indicates whether the given element list ends with a penalty with a non-infinite penalty value.
    `static boolean` | `isEmptyBox(List elements)`
    `static boolean` | `removeLegalBreaks(List<ListElement> elements, MinOptMax constraint)` Removes legal breaks in an element list.
    `static boolean` | `removeLegalBreaks(List elements, int constraint)` Removes legal breaks in an element list.
    `static boolean` | `removeLegalBreaksFromEnd(List elements, int constraint)` Removes legal breaks in an element list.
    `static boolean` | `startsWithForcedBreak(List<ListElement> elems)` Indicates whether the given element list starts with a forced break.

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

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

- - ### Method Detail

    - #### removeLegalBreaks

          public static boolean removeLegalBreaks(List<ListElement> elements,
                                                  MinOptMax constraint)

      Removes legal breaks in an element list. A constraint can be specified to limit the range in which the breaks are removed. Legal breaks occuring before at least constraint.opt space is filled will be removed.
      Parameters:
        `elements` - the element list
        `constraint` - min/opt/max value to restrict the range in which the breaks are removed.
      Returns:
        true if the opt constraint is bigger than the list contents

    - #### removeLegalBreaks

          public static boolean removeLegalBreaks(List elements,
                                                  int constraint)

      Removes legal breaks in an element list. A constraint can be specified to limit the range in which the breaks are removed. Legal breaks occuring before at least constraint space is filled will be removed.
      Parameters:
        `elements` - the element list
        `constraint` - value to restrict the range in which the breaks are removed.
      Returns:
        true if the constraint is bigger than the list contents

    - #### removeLegalBreaksFromEnd

          public static boolean removeLegalBreaksFromEnd(List elements,
                                                         int constraint)

      Removes legal breaks in an element list. A constraint can be specified to limit the range in which the breaks are removed. Legal breaks within the space specified through the constraint (starting from the end of the element list) will be removed.
      Parameters:
        `elements` - the element list
        `constraint` - value to restrict the range in which the breaks are removed.
      Returns:
        true if the constraint is bigger than the list contents

    - #### calcContentLength

          public static int calcContentLength(List<ListElement> elems,
                                              int start,
                                              int end)

      Calculates the content length of the given element list. Warning: It doesn't take any stretch and shrink possibilities into account.
      Parameters:
        `elems` - the element list
        `start` - element at which to start
        `end` - element at which to stop
      Returns:
        the content length

    - #### calcContentLength

          public static int calcContentLength(List elems)

      Calculates the content length of the given element list. Warning: It doesn't take any stretch and shrink possibilities into account.
      Parameters:
        `elems` - the element list
      Returns:
        the content length

    - #### endsWithForcedBreak

          public static boolean endsWithForcedBreak(List<ListElement> elems)

      Indicates whether the given element list ends with a forced break.
      Parameters:
        `elems` - the element list
      Returns:
        true if the list ends with a forced break

    - #### startsWithForcedBreak

          public static boolean startsWithForcedBreak(List<ListElement> elems)

      Indicates whether the given element list starts with a forced break.
      Parameters:
        `elems` - the element list
      Returns:
        true if the list starts with a forced break

    - #### endsWithNonInfinitePenalty

          public static boolean endsWithNonInfinitePenalty(List<ListElement> elems)

      Indicates whether the given element list ends with a penalty with a non-infinite penalty value.
      Parameters:
        `elems` - the element list
      Returns:
        true if the list ends with a non-infinite penalty

    - #### determinePreviousBreak

          public static int determinePreviousBreak(List<ListElement> elems,
                                                   int startIndex)

      Determines the position of the previous break before the start index on an element list.
      Parameters:
        `elems` - the element list
        `startIndex` - the start index
      Returns:
        the position of the previous break, or -1 if there was no previous break

    - #### isEmptyBox

          public static boolean isEmptyBox(List elements)

Copyright © 2025 Apache Software Foundation. All rights reserved.