org.apache.fop.layoutmgr

## Class BlockContainerLayoutManager

- java.lang.Object
- - org.apache.fop.layoutmgr.AbstractBaseLayoutManager
  - - org.apache.fop.layoutmgr.AbstractLayoutManager
    - - org.apache.fop.layoutmgr.BlockStackingLayoutManager
      - - org.apache.fop.layoutmgr.SpacedBorderedPaddedBlockLayoutManager
        - - org.apache.fop.layoutmgr.BlockContainerLayoutManager

- All Implemented Interfaces:
    PercentBaseContext, Constants, BlockLevelLayoutManager, BreakOpportunity, ConditionalElementListener, LayoutManager

      public class BlockContainerLayoutManager
      extends SpacedBorderedPaddedBlockLayoutManager
      implements BreakOpportunity

  LayoutManager for a block-container FO.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.fop.layoutmgr.BlockStackingLayoutManager

      `BlockStackingLayoutManager.MappingPosition`

  - ### Field Summary

    - ### Fields inherited from class org.apache.fop.layoutmgr.SpacedBorderedPaddedBlockLayoutManager

      `discardBorderAfter, discardBorderBefore, discardPaddingAfter, discardPaddingBefore, effSpaceAfter, effSpaceBefore`

    - ### Fields inherited from class org.apache.fop.layoutmgr.BlockStackingLayoutManager

      `adjustedSpaceAfter, adjustedSpaceBefore, bpUnit, breakBeforeServed, endIndent, firstVisibleMarkServed, foSpaceAfter, foSpaceBefore, parentArea, referenceIPD, startIndent, storedList`

    - ### Fields inherited from class org.apache.fop.layoutmgr.AbstractLayoutManager

      `childLMiter, childLMs, curChildLM, fobjIter, parentLayoutManager`

    - ### Fields inherited from class org.apache.fop.layoutmgr.AbstractBaseLayoutManager

      `fobj, generatesBlockArea, generatesReferenceArea`

    - ### Fields inherited from interface org.apache.fop.fo.Constants

      `COMPOUND_COUNT, COMPOUND_MASK, COMPOUND_SHIFT, CP_BLOCK_PROGRESSION_DIRECTION, CP_CONDITIONALITY, CP_INLINE_PROGRESSION_DIRECTION, CP_LENGTH, CP_MAXIMUM, CP_MINIMUM, CP_OPTIMUM, CP_PRECEDENCE, CP_WITHIN_COLUMN, CP_WITHIN_LINE, CP_WITHIN_PAGE, EN_100, EN_200, EN_300, EN_400, EN_500, EN_600, EN_700, EN_800, EN_900, EN_ABSOLUTE, EN_ABSOLUTE_COLORMETRIC, EN_AFTER, EN_AFTER_EDGE, EN_ALL, EN_ALPHABETIC, EN_ALTERNATE, EN_ALWAYS, EN_ANY, EN_AUTO, EN_AUTO_EVEN, EN_AUTO_ODD, EN_AVOID, EN_BACKSLANT, EN_BASELINE, EN_BEFORE, EN_BEFORE_EDGE, EN_BIDI_OVERRIDE, EN_BLANK, EN_BLINK, EN_BLOCK, EN_BOLDER, EN_BOTH, EN_BOTTOM, EN_BOUNDED_IN_ONE_DIMENSION, EN_BT, EN_CAPITALIZE, EN_CAPTION, EN_CENTER, EN_CENTRAL, EN_CHARACTER_BY_CHARACTER, EN_COLLAPSE, EN_COLLAPSE_WITH_PRECEDENCE, EN_COLUMN, EN_CONDENSED, EN_CONSIDER_SHIFTS, EN_DASHED, EN_DISCARD, EN_DISREGARD_SHIFTS, EN_DOCUMENT, EN_DOTS, EN_DOTTED, EN_DOUBLE, EN_EMBED, EN_END, EN_END_ON_EVEN, EN_END_ON_ODD, EN_ERROR_IF_OVERFLOW, EN_EVEN, EN_EVEN_PAGE, EN_EXPANDED, EN_EXTRA_CONDENSED, EN_EXTRA_EXPANDED, EN_FALSE, EN_FIC, EN_FIRST, EN_FIRST_INCLUDING_CARRYOVER, EN_FIRST_STARTING, EN_FIXED, EN_FONT_HEIGHT, EN_FORCE, EN_FSWP, EN_GROOVE, EN_HANGING, EN_HIDDEN, EN_HIDE, EN_ICON, EN_IDEOGRAPHIC, EN_IGNORE, EN_IGNORE_IF_AFTER_LINEFEED, EN_IGNORE_IF_BEFORE_LINEFEED, EN_IGNORE_IF_SURROUNDING_LINEFEED, EN_INDEFINITE, EN_INDENT, EN_INHERIT, EN_INSET, EN_INSIDE, EN_INTEGER_PIXELS, EN_ITALIC, EN_JUSTIFY, EN_LARGER, EN_LAST, EN_LAST_ENDING, EN_LAST_STARTING, EN_LEAVE_SEPARATE, EN_LEFT, EN_LEWP, EN_LIGHTER, EN_LINE, EN_LINE_HEIGHT, EN_LINE_THROUGH, EN_LINK, EN_LOWERCASE, EN_LR, EN_LR_TB, EN_LSWP, EN_LTR, EN_MATHEMATICAL, EN_MAX_HEIGHT, EN_MENU, EN_MERGE, EN_MESSAGE_BOX, EN_MIDDLE, EN_NARROWER, EN_NEW, EN_NO_BLINK, EN_NO_CHANGE, EN_NO_FORCE, EN_NO_LIMIT, EN_NO_LINE_THROUGH, EN_NO_LINK, EN_NO_OVERLINE, EN_NO_UNDERLINE, EN_NO_WRAP, EN_NON_UNIFORM, EN_NONE, EN_NOREPEAT, EN_NORMAL, EN_NOT_BLANK, EN_OBLIQUE, EN_ODD, EN_ODD_PAGE, EN_ONLY, EN_OUTSET, EN_OUTSIDE, EN_OVERLINE, EN_PAGE, EN_PAGE_SEQUENCE, EN_PAGINATE, EN_PERCEPTUAL, EN_PRE, EN_PRESERVE, EN_REFERENCE_AREA, EN_RELATIVE, EN_RELATIVE_COLOMETRIC, EN_REPEAT, EN_REPEATX, EN_REPEATY, EN_REPLACE, EN_RESAMPLE_ANY_METHOD, EN_RESET_SIZE, EN_REST, EN_RETAIN, EN_RIDGE, EN_RIGHT, EN_RL, EN_RL_TB, EN_RTL, EN_RULE, EN_SATURATION, EN_SCALE_DOWN_TO_FIT, EN_SCALE_TO_FIT, EN_SCALE_UP_TO_FIT, EN_SCROLL, EN_SELECT_FIRST_FITTING, EN_SEMI_CONDENSED, EN_SEMI_EXPANDED, EN_SEPARATE, EN_SHOW, EN_SMALL_CAPS, EN_SMALL_CAPTION, EN_SMALLER, EN_SOLID, EN_SPACE, EN_START, EN_STATIC, EN_STATUS_BAR, EN_SUB, EN_SUPER, EN_SUPPRESS, EN_TABLE, EN_TABLE_FRAGMENT, EN_TB, EN_TB_LR, EN_TB_RL, EN_TEXT_AFTER_EDGE, EN_TEXT_BEFORE_EDGE, EN_TEXT_BOTTOM, EN_TEXT_TOP, EN_TOP, EN_TRADITIONAL, EN_TREAT_AS_SPACE, EN_TREAT_AS_ZERO_WIDTH_SPACE, EN_TRUE, EN_ULTRA_CONDENSED, EN_ULTRA_EXPANDED, EN_UNBOUNDED, EN_UNDERLINE, EN_UNIFORM, EN_UPPERCASE, EN_USE_FONT_METRICS, EN_USE_SCRIPT, EN_USECONTENT, EN_VISIBLE, EN_WIDER, EN_WRAP, ENUM_COUNT, FO_BASIC_LINK, FO_BIDI_OVERRIDE, FO_BLOCK, FO_BLOCK_CONTAINER, FO_BOOKMARK, FO_BOOKMARK_TITLE, FO_BOOKMARK_TREE, FO_CHANGE_BAR_BEGIN, FO_CHANGE_BAR_END, FO_CHARACTER, FO_COLOR_PROFILE, FO_CONDITIONAL_PAGE_MASTER_REFERENCE, FO_DECLARATIONS, FO_EXTERNAL_GRAPHIC, FO_FLOAT, FO_FLOW, FO_FLOW_ASSIGNMENT, FO_FLOW_MAP, FO_FLOW_NAME_SPECIFIER, FO_FLOW_SOURCE_LIST, FO_FLOW_TARGET_LIST, FO_FOLIO_PREFIX, FO_FOLIO_SUFFIX, FO_FOOTNOTE, FO_FOOTNOTE_BODY, FO_INDEX_KEY_REFERENCE, FO_INDEX_PAGE_CITATION_LIST, FO_INDEX_PAGE_CITATION_LIST_SEPARATOR, FO_INDEX_PAGE_CITATION_RANGE_SEPARATOR, FO_INDEX_PAGE_NUMBER_PREFIX, FO_INDEX_PAGE_NUMBER_SUFFIX, FO_INDEX_RANGE_BEGIN, FO_INDEX_RANGE_END, FO_INITIAL_PROPERTY_SET, FO_INLINE, FO_INLINE_CONTAINER, FO_INSTREAM_FOREIGN_OBJECT, FO_LAYOUT_MASTER_SET, FO_LEADER, FO_LIST_BLOCK, FO_LIST_ITEM, FO_LIST_ITEM_BODY, FO_LIST_ITEM_LABEL, FO_MARKER, FO_MULTI_CASE, FO_MULTI_PROPERTIES, FO_MULTI_PROPERTY_SET, FO_MULTI_SWITCH, FO_MULTI_TOGGLE, FO_PAGE_NUMBER, FO_PAGE_NUMBER_CITATION, FO_PAGE_NUMBER_CITATION_LAST, FO_PAGE_SEQUENCE, FO_PAGE_SEQUENCE_MASTER, FO_PAGE_SEQUENCE_WRAPPER, FO_REGION_AFTER, FO_REGION_BEFORE, FO_REGION_BODY, FO_REGION_END, FO_REGION_NAME_SPECIFIER, FO_REGION_START, FO_REPEATABLE_PAGE_MASTER_ALTERNATIVES, FO_REPEATABLE_PAGE_MASTER_REFERENCE, FO_RETRIEVE_MARKER, FO_RETRIEVE_TABLE_MARKER, FO_ROOT, FO_SCALING_VALUE_CITATION, FO_SIMPLE_PAGE_MASTER, FO_SINGLE_PAGE_MASTER_REFERENCE, FO_STATIC_CONTENT, FO_TABLE, FO_TABLE_AND_CAPTION, FO_TABLE_BODY, FO_TABLE_CAPTION, FO_TABLE_CELL, FO_TABLE_COLUMN, FO_TABLE_FOOTER, FO_TABLE_HEADER, FO_TABLE_ROW, FO_TITLE, FO_UNKNOWN_NODE, FO_WRAPPER, FRM_OBJ_COUNT, NOT_SET, PR_ABSOLUTE_POSITION, PR_ACTIVE_STATE, PR_ALIGNMENT_ADJUST, PR_ALIGNMENT_BASELINE, PR_AUTO_RESTORE, PR_AZIMUTH, PR_BACKGROUND, PR_BACKGROUND_ATTACHMENT, PR_BACKGROUND_COLOR, PR_BACKGROUND_IMAGE, PR_BACKGROUND_POSITION, PR_BACKGROUND_POSITION_HORIZONTAL, PR_BACKGROUND_POSITION_VERTICAL, PR_BACKGROUND_REPEAT, PR_BASELINE_SHIFT, PR_BLANK_OR_NOT_BLANK, PR_BLOCK_PROGRESSION_DIMENSION, PR_BORDER, PR_BORDER_AFTER_COLOR, PR_BORDER_AFTER_PRECEDENCE, PR_BORDER_AFTER_STYLE, PR_BORDER_AFTER_WIDTH, PR_BORDER_BEFORE_COLOR, PR_BORDER_BEFORE_PRECEDENCE, PR_BORDER_BEFORE_STYLE, PR_BORDER_BEFORE_WIDTH, PR_BORDER_BOTTOM, PR_BORDER_BOTTOM_COLOR, PR_BORDER_BOTTOM_STYLE, PR_BORDER_BOTTOM_WIDTH, PR_BORDER_COLLAPSE, PR_BORDER_COLOR, PR_BORDER_END_COLOR, PR_BORDER_END_PRECEDENCE, PR_BORDER_END_STYLE, PR_BORDER_END_WIDTH, PR_BORDER_LEFT, PR_BORDER_LEFT_COLOR, PR_BORDER_LEFT_STYLE, PR_BORDER_LEFT_WIDTH, PR_BORDER_RIGHT, PR_BORDER_RIGHT_COLOR, PR_BORDER_RIGHT_STYLE, PR_BORDER_RIGHT_WIDTH, PR_BORDER_SEPARATION, PR_BORDER_SPACING, PR_BORDER_START_COLOR, PR_BORDER_START_PRECEDENCE, PR_BORDER_START_STYLE, PR_BORDER_START_WIDTH, PR_BORDER_STYLE, PR_BORDER_TOP, PR_BORDER_TOP_COLOR, PR_BORDER_TOP_STYLE, PR_BORDER_TOP_WIDTH, PR_BORDER_WIDTH, PR_BOTTOM, PR_BREAK_AFTER, PR_BREAK_BEFORE, PR_CAPTION_SIDE, PR_CASE_NAME, PR_CASE_TITLE, PR_CHANGE_BAR_CLASS, PR_CHANGE_BAR_COLOR, PR_CHANGE_BAR_OFFSET, PR_CHANGE_BAR_PLACEMENT, PR_CHANGE_BAR_STYLE, PR_CHANGE_BAR_WIDTH, PR_CHARACTER, PR_CLEAR, PR_CLIP, PR_COLOR, PR_COLOR_PROFILE_NAME, PR_COLUMN_COUNT, PR_COLUMN_GAP, PR_COLUMN_NUMBER, PR_COLUMN_WIDTH, PR_CONTENT_HEIGHT, PR_CONTENT_TYPE, PR_CONTENT_WIDTH, PR_COUNTRY, PR_CUE, PR_CUE_AFTER, PR_CUE_BEFORE, PR_DESTINATION_PLACEMENT_OFFSET, PR_DIRECTION, PR_DISPLAY_ALIGN, PR_DOMINANT_BASELINE, PR_ELEVATION, PR_EMPTY_CELLS, PR_END_INDENT, PR_ENDS_ROW, PR_EXTENT, PR_EXTERNAL_DESTINATION, PR_FLOAT, PR_FLOW_MAP_NAME, PR_FLOW_MAP_REFERENCE, PR_FLOW_NAME, PR_FLOW_NAME_REFERENCE, PR_FONT, PR_FONT_FAMILY, PR_FONT_SELECTION_STRATEGY, PR_FONT_SIZE, PR_FONT_SIZE_ADJUST, PR_FONT_STRETCH, PR_FONT_STYLE, PR_FONT_VARIANT, PR_FONT_WEIGHT, PR_FORCE_PAGE_COUNT, PR_FORMAT, PR_GLYPH_ORIENTATION_HORIZONTAL, PR_GLYPH_ORIENTATION_VERTICAL, PR_GROUPING_SEPARATOR, PR_GROUPING_SIZE, PR_HEIGHT, PR_HYPHENATE, PR_HYPHENATION_CHARACTER, PR_HYPHENATION_KEEP, PR_HYPHENATION_LADDER_COUNT, PR_HYPHENATION_PUSH_CHARACTER_COUNT, PR_HYPHENATION_REMAIN_CHARACTER_COUNT, PR_ID, PR_INDEX_CLASS, PR_INDEX_KEY, PR_INDICATE_DESTINATION, PR_INITIAL_PAGE_NUMBER, PR_INLINE_PROGRESSION_DIMENSION, PR_INTERNAL_DESTINATION, PR_INTRINSIC_SCALE_VALUE, PR_INTRUSION_DISPLACE, PR_KEEP_TOGETHER, PR_KEEP_WITH_NEXT, PR_KEEP_WITH_PREVIOUS, PR_LANGUAGE, PR_LAST_LINE_END_INDENT, PR_LEADER_ALIGNMENT, PR_LEADER_LENGTH, PR_LEADER_PATTERN, PR_LEADER_PATTERN_WIDTH, PR_LEFT, PR_LETTER_SPACING, PR_LETTER_VALUE, PR_LINE_HEIGHT, PR_LINE_HEIGHT_SHIFT_ADJUSTMENT, PR_LINE_STACKING_STRATEGY, PR_LINEFEED_TREATMENT, PR_MARGIN, PR_MARGIN_BOTTOM, PR_MARGIN_LEFT, PR_MARGIN_RIGHT, PR_MARGIN_TOP, PR_MARKER_CLASS_NAME, PR_MASTER_NAME, PR_MASTER_REFERENCE, PR_MAX_HEIGHT, PR_MAX_WIDTH, PR_MAXIMUM_REPEATS, PR_MEDIA_USAGE, PR_MERGE_PAGES_ACROSS_INDEX_KEY_REFERENCES, PR_MERGE_RANGES_ACROSS_INDEX_KEY_REFERENCES, PR_MERGE_SEQUENTIAL_PAGE_NUMBERS, PR_MIN_HEIGHT, PR_MIN_WIDTH, PR_NUMBER_COLUMNS_REPEATED, PR_NUMBER_COLUMNS_SPANNED, PR_NUMBER_ROWS_SPANNED, PR_ODD_OR_EVEN, PR_ORPHANS, PR_OVERFLOW, PR_PADDING, PR_PADDING_AFTER, PR_PADDING_BEFORE, PR_PADDING_BOTTOM, PR_PADDING_END, PR_PADDING_LEFT, PR_PADDING_RIGHT, PR_PADDING_START, PR_PADDING_TOP, PR_PAGE_BREAK_AFTER, PR_PAGE_BREAK_BEFORE, PR_PAGE_BREAK_INSIDE, PR_PAGE_CITATION_STRATEGY, PR_PAGE_HEIGHT, PR_PAGE_NUMBER_TREATMENT, PR_PAGE_POSITION, PR_PAGE_WIDTH, PR_PAUSE, PR_PAUSE_AFTER, PR_PAUSE_BEFORE, PR_PITCH, PR_PITCH_RANGE, PR_PLAY_DURING, PR_POSITION, PR_PRECEDENCE, PR_PROVISIONAL_DISTANCE_BETWEEN_STARTS, PR_PROVISIONAL_LABEL_SEPARATION, PR_REF_ID, PR_REF_INDEX_KEY, PR_REFERENCE_ORIENTATION, PR_REGION_NAME, PR_REGION_NAME_REFERENCE, PR_RELATIVE_ALIGN, PR_RELATIVE_POSITION, PR_RENDERING_INTENT, PR_RETRIEVE_BOUNDARY, PR_RETRIEVE_BOUNDARY_WITHIN_TABLE, PR_RETRIEVE_CLASS_NAME, PR_RETRIEVE_POSITION, PR_RETRIEVE_POSITION_WITHIN_TABLE, PR_RICHNESS, PR_RIGHT, PR_ROLE, PR_RULE_STYLE, PR_RULE_THICKNESS, PR_SCALING, PR_SCALING_METHOD, PR_SCORE_SPACES, PR_SCRIPT, PR_SHOW_DESTINATION, PR_SIZE, PR_SOURCE_DOCUMENT, PR_SPACE_AFTER, PR_SPACE_BEFORE, PR_SPACE_END, PR_SPACE_START, PR_SPAN, PR_SPEAK, PR_SPEAK_HEADER, PR_SPEAK_NUMERAL, PR_SPEAK_PUNCTUATION, PR_SPEECH_RATE, PR_SRC, PR_START_INDENT, PR_STARTING_STATE, PR_STARTS_ROW, PR_STRESS, PR_SUPPRESS_AT_LINE_BREAK, PR_SWITCH_TO, PR_TABLE_LAYOUT, PR_TABLE_OMIT_FOOTER_AT_BREAK, PR_TABLE_OMIT_HEADER_AT_BREAK, PR_TARGET_PRESENTATION_CONTEXT, PR_TARGET_PROCESSING_CONTEXT, PR_TARGET_STYLESHEET, PR_TEXT_ALIGN, PR_TEXT_ALIGN_LAST, PR_TEXT_ALTITUDE, PR_TEXT_DECORATION, PR_TEXT_DEPTH, PR_TEXT_INDENT, PR_TEXT_SHADOW, PR_TEXT_TRANSFORM, PR_TOP, PR_TREAT_AS_WORD_SPACE, PR_UNICODE_BIDI, PR_VERTICAL_ALIGN, PR_VISIBILITY, PR_VOICE_FAMILY, PR_VOLUME, PR_WHITE_SPACE, PR_WHITE_SPACE_COLLAPSE, PR_WHITE_SPACE_TREATMENT, PR_WIDOWS, PR_WIDTH, PR_WORD_SPACING, PR_WRAP_OPTION, PR_WRITING_MODE, PR_X_ABBREVIATION, PR_X_ALT_TEXT, PR_X_AUTO_TOGGLE, PR_X_BACKGROUND_IMAGE_HEIGHT, PR_X_BACKGROUND_IMAGE_WIDTH, PR_X_BORDER_AFTER_END_RADIUS, PR_X_BORDER_AFTER_RADIUS_END, PR_X_BORDER_AFTER_RADIUS_START, PR_X_BORDER_AFTER_START_RADIUS, PR_X_BORDER_BEFORE_END_RADIUS, PR_X_BORDER_BEFORE_RADIUS_END, PR_X_BORDER_BEFORE_RADIUS_START, PR_X_BORDER_BEFORE_START_RADIUS, PR_X_BORDER_END_RADIUS_AFTER, PR_X_BORDER_END_RADIUS_BEFORE, PR_X_BORDER_RADIUS, PR_X_BORDER_START_RADIUS_AFTER, PR_X_BORDER_START_RADIUS_BEFORE, PR_X_DISABLE_COLUMN_BALANCING, PR_X_HEADER_COLUMN, PR_X_LAYER, PR_X_NUMBER_CONVERSION_FEATURES, PR_X_ORPHAN_CONTENT_LIMIT, PR_X_WIDOW_CONTENT_LIMIT, PR_X_XML_BASE, PR_XML_LANG, PR_Z_INDEX, PROPERTY_COUNT, PROPERTY_MASK`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BlockContainerLayoutManager(BlockContainer node)` Create a new block container layout manager.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAreas(PositionIterator parentIter, LayoutContext layoutContext)` Tell the layout manager to add all the child areas implied by Position objects which will be returned by the Iterator.
    `void` | `addChildArea(Area childArea)` Add the child to the block container.
    `void` | `discardSpace(KnuthGlue spaceGlue)` Discard space.
    `protected void` | `flush()` Force current area to be added to parent area.
    `protected BlockContainer` | `getBlockContainerFO()`
    `protected CommonBorderPaddingBackground` | `getCommonBorderPaddingBackground()` Returns the `CommonBorderPaddingBackground` instance from the FO handled by this layout manager.
    `int` | `getContentAreaBPD()` Returns the BPD of the content area
    `boolean` | `getGeneratesBlockArea()` Returns an indication if the layout manager generates a block area.
    `boolean` | `getGeneratesReferenceArea()` Returns an indication if the layout manager generates a reference area.
    `KeepProperty` | `getKeepTogetherProperty()` Returns the keep-together property specified on the FObj.
    `KeepProperty` | `getKeepWithNextProperty()` Returns the keep-with-next property specified on the FObj.
    `KeepProperty` | `getKeepWithPreviousProperty()` Returns the keep-with-previous property specified on the FObj.
    `List<ListElement>` | `getNextKnuthElements(LayoutContext context, int alignment)` Get a sequence of KnuthElements representing the content of the node assigned to the LM.
    `List<ListElement>` | `getNextKnuthElements(LayoutContext context, int alignment, Stack lmStack, Position restartPosition, LayoutManager restartAtLM)` Returns an updated list of Knuth elements corresponding to this layout manager, after a change of IPD has been detected.
    `Area` | `getParentArea(Area childArea)` Get the parent area for children of this block container.
    `protected int` | `getRotatedIPD()`
    `boolean` | `handleOverflow(int milliPoints)` Whether this LM can handle horizontal overflow error messages (only a BlockContainerLayoutManager can).
    `void` | `initialize()` initialize the layout manager.
    `protected boolean` | `isAbsoluteOrFixed()`
    `boolean` | `isRestartable()` Returns `true` if this layout manager is able to re-generate its Knuth elements after an IPD change.
    `protected LayoutContext` | `makeChildLayoutContext(LayoutContext context)` Overridden to handle writing-mode, and different stack limit setup.
    `int` | `negotiateBPDAdjustment(int adj, KnuthElement lastElement)` Negotiate BPD adjustment.

    - ### Methods inherited from class org.apache.fop.layoutmgr.SpacedBorderedPaddedBlockLayoutManager

      `getBaselineOffset, notifyBorder, notifyPadding, notifySpace`

    - ### Methods inherited from class org.apache.fop.layoutmgr.BlockStackingLayoutManager

      `addBlockSpacing, addChildToArea, addFirstVisibleMarks, addInBetweenBreak, addKnuthElementsForBorderPaddingAfter, addKnuthElementsForBorderPaddingBefore, addKnuthElementsForBreakAfter, addKnuthElementsForBreakBefore, addKnuthElementsForSpaceAfter, addKnuthElementsForSpaceBefore, addLastVisibleMarks, addPendingMarks, breakBeforeServed, getAuxiliaryPosition, getBreakBefore, getChangedKnuthElements, getContentAreaIPD, getCurrentArea, getIPIndents, getKeepTogether, getKeepWithNext, getKeepWithPrevious, getNextChildElements, getParentKeepTogether, getSpaceAfterProperty, getSpaceBeforeProperty, isRestartAtLM, mustKeepTogether, mustKeepWithNext, mustKeepWithPrevious, neededUnits, reset, setContentAreaIPD, setCurrentArea, updateContentAreaIPDwithOverconstrainedAdjust, updateContentAreaIPDwithOverconstrainedAdjust, wrapPositionElement, wrapPositionElements, wrapPositionElements`

    - ### Methods inherited from class org.apache.fop.layoutmgr.AbstractLayoutManager

      `addChildLM, addChildLMs, addId, checkEndOfLayout, createChildLMs, createNextChildLMs, getChildLM, getChildLMs, getCurrentPage, getCurrentPV, getParent, getPSLM, handlingFloat, hasLineAreaDescendant, hasNextChildLM, isFinished, isFirst, isLast, newNoLineAreaDescendantException, notifyEndOfLayout, notifyPos, possiblyRegisterMarkersForTables, preserveChildrenAtEndOfLayout, recreateChildrenLMs, registerMarkers, setCurrentChildLM, setFinished, setParent, toString, transferExtensionAttachments, transferExtensions, transferForeignAttributes`

    - ### Methods inherited from class org.apache.fop.layoutmgr.AbstractBaseLayoutManager

      `getAncestorBlockAreaBPD, getAncestorBlockAreaIPD, getBaseLength, getChangeBarList, getFObj, getGeneratesLineArea, getParentAreaBPD, getParentAreaIPD, getReferenceAreaBPD, getReferenceAreaIPD, isFromFootnote, setFromFootnote, setGeneratesBlockArea, setGeneratesReferenceArea`

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

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

    - ### Methods inherited from interface org.apache.fop.layoutmgr.BreakOpportunity

      `getBreakBefore`

    - ### Methods inherited from interface org.apache.fop.layoutmgr.LayoutManager

      `addChildLM, addChildLMs, createNextChildLMs, getChildLMs, getFObj, getGeneratesLineArea, getParent, getPSLM, hasLineAreaDescendant, isFinished, isFromFootnote, notifyPos, setFinished, setFromFootnote, setParent`

    - ### Methods inherited from interface org.apache.fop.datatypes.PercentBaseContext

      `getBaseLength`

- - ### Constructor Detail

    - #### BlockContainerLayoutManager

          public BlockContainerLayoutManager(BlockContainer node)

      Create a new block container layout manager.
      Parameters:
        `node` - block-container node to create the layout manager for.

  - ### Method Detail

    - #### initialize

          public void initialize()

      initialize the layout manager. Allows each layout manager to calculate often used values.
      Specified by:
        `initialize` in interface `LayoutManager`
      Overrides:
        `initialize` in class `AbstractLayoutManager`

    - #### getCommonBorderPaddingBackground

          protected CommonBorderPaddingBackground getCommonBorderPaddingBackground()

      Description copied from class: `SpacedBorderedPaddedBlockLayoutManager`
      Returns the `CommonBorderPaddingBackground` instance from the FO handled by this layout manager.
      Specified by:
        `getCommonBorderPaddingBackground` in class `SpacedBorderedPaddedBlockLayoutManager`

    - #### getRotatedIPD

          protected int getRotatedIPD()

      Returns:
        the content IPD

    - #### isAbsoluteOrFixed

          protected boolean isAbsoluteOrFixed()

    - #### getContentAreaBPD

          public int getContentAreaBPD()

      Returns the BPD of the content area
      Specified by:
        `getContentAreaBPD` in interface `LayoutManager`
      Overrides:
        `getContentAreaBPD` in class `BlockStackingLayoutManager`
      Returns:
        the BPD of the content area

    - #### getNextKnuthElements

          public List<ListElement> getNextKnuthElements(LayoutContext context,
                                                        int alignment)

      Get a sequence of KnuthElements representing the content of the node assigned to the LM.
      Specified by:
        `getNextKnuthElements` in interface `LayoutManager`
      Overrides:
        `getNextKnuthElements` in class `BlockStackingLayoutManager`
      Parameters:
        `context` - the LayoutContext used to store layout information
        `alignment` - the desired text alignment
      Returns:
        the list of KnuthElements

    - #### makeChildLayoutContext

          protected LayoutContext makeChildLayoutContext(LayoutContext context)

      Overridden to handle writing-mode, and different stack limit setup. Creates and initializes a `LayoutContext` to pass to the child LM
      Overrides:
        `makeChildLayoutContext` in class `BlockStackingLayoutManager`
      Parameters:
        `context` - the parent `LayoutContext`
      Returns:
        a new child layout context

    - #### getNextKnuthElements

          public List<ListElement> getNextKnuthElements(LayoutContext context,
                                                        int alignment,
                                                        Stack lmStack,
                                                        Position restartPosition,
                                                        LayoutManager restartAtLM)

      Returns an updated list of Knuth elements corresponding to this layout manager, after a change of IPD has been detected.
      Specified by:
        `getNextKnuthElements` in interface `LayoutManager`
      Overrides:
        `getNextKnuthElements` in class `BlockStackingLayoutManager`
      Parameters:
        `context` - the layout context
        `alignment` - the alignment
        `lmStack` - the stack of LMs that are active at the IPD change
        `restartPosition` - the position corresponding to the element finishing the page before the IPD change
        `restartAtLM` - if not null, the layout manager from which to restart. That is, the IPD change occurs between two block elements and not inside a paragraph
      Returns:
        an updated list of elements, taking the new IPD into account

    - #### isRestartable

          public boolean isRestartable()

      Returns `true` if this layout manager is able to re-generate its Knuth elements after an IPD change.
      Specified by:
        `isRestartable` in interface `LayoutManager`
      Overrides:
        `isRestartable` in class `AbstractBaseLayoutManager`
      Returns:
        `true` if this layout manager can be restarted after an IPD change

    - #### addAreas

          public void addAreas(PositionIterator parentIter,
                               LayoutContext layoutContext)

      Tell the layout manager to add all the child areas implied by Position objects which will be returned by the Iterator.
      Specified by:
        `addAreas` in interface `LayoutManager`
      Overrides:
        `addAreas` in class `AbstractLayoutManager`
      Parameters:
        `parentIter` - the position iterator
        `layoutContext` - the context

    - #### getParentArea

          public Area getParentArea(Area childArea)

      Get the parent area for children of this block container. This returns the current block container area and creates it if required. Return an Area which can contain the passed childArea. The childArea may not yet have any content, but it has essential traits set. In general, if the LayoutManager already has an Area it simply returns it. Otherwise, it makes a new Area of the appropriate class. It gets a parent area for its area by calling its parent LM. Finally, based on the dimensions of the parent area, it initializes its own area. This includes setting the content IPD and the maximum BPD.
      Specified by:
        `getParentArea` in interface `LayoutManager`
      Overrides:
        `getParentArea` in class `AbstractLayoutManager`
      Parameters:
        `childArea` - the child area for which the parent area is wanted
      Returns:
        the parent area for the given child

    - #### addChildArea

          public void addChildArea(Area childArea)

      Add the child to the block container. Add the childArea to the current area. Called by child LayoutManager when it has filled one of its areas. The LM should already have an Area in which to put the child. See if the area will fit in the current area. If so, add it. Otherwise initiate breaking.
      Specified by:
        `addChildArea` in interface `LayoutManager`
      Overrides:
        `addChildArea` in class `BlockStackingLayoutManager`
      Parameters:
        `childArea` - the area to add: will be some block-stacked Area.

    - #### flush

          protected void flush()

      Force current area to be added to parent area. Force current area to be added to parent area.
      Overrides:
        `flush` in class `BlockStackingLayoutManager`

    - #### negotiateBPDAdjustment

          public int negotiateBPDAdjustment(int adj,
                                            KnuthElement lastElement)

      Negotiate BPD adjustment.
      Specified by:
        `negotiateBPDAdjustment` in interface `BlockLevelLayoutManager`
      Overrides:
        `negotiateBPDAdjustment` in class `BlockStackingLayoutManager`
      Parameters:
        `adj` - amount to adjust
        `lastElement` - the last knuth element
      Returns:
        the resulting adjusted BPD

    - #### discardSpace

          public void discardSpace(KnuthGlue spaceGlue)

      Discard space.
      Specified by:
        `discardSpace` in interface `BlockLevelLayoutManager`
      Overrides:
        `discardSpace` in class `BlockStackingLayoutManager`
      Parameters:
        `spaceGlue` - the space

    - #### getKeepTogetherProperty

          public KeepProperty getKeepTogetherProperty()

      Returns the keep-together property specified on the FObj. Default implementation throws a `IllegalStateException`. Must be implemented by the subclass, if applicable.
      Specified by:
        `getKeepTogetherProperty` in interface `BlockLevelLayoutManager`
      Overrides:
        `getKeepTogetherProperty` in class `BlockStackingLayoutManager`
      Returns:
        the keep-together property

    - #### getKeepWithPreviousProperty

          public KeepProperty getKeepWithPreviousProperty()

      Returns the keep-with-previous property specified on the FObj. Default implementation throws a `IllegalStateException`. Must be implemented by the subclass, if applicable.
      Specified by:
        `getKeepWithPreviousProperty` in interface `BlockLevelLayoutManager`
      Overrides:
        `getKeepWithPreviousProperty` in class `BlockStackingLayoutManager`
      Returns:
        the keep-together property

    - #### getKeepWithNextProperty

          public KeepProperty getKeepWithNextProperty()

      Returns the keep-with-next property specified on the FObj. Default implementation throws a `IllegalStateException`. Must be implemented by the subclass, if applicable.
      Specified by:
        `getKeepWithNextProperty` in interface `BlockLevelLayoutManager`
      Overrides:
        `getKeepWithNextProperty` in class `BlockStackingLayoutManager`
      Returns:
        the keep-together property

    - #### getBlockContainerFO

          protected BlockContainer getBlockContainerFO()

      Returns:
        the BlockContainer node

    - #### getGeneratesReferenceArea

          public boolean getGeneratesReferenceArea()

      Returns an indication if the layout manager generates a reference area.
      Specified by:
        `getGeneratesReferenceArea` in interface `LayoutManager`
      Overrides:
        `getGeneratesReferenceArea` in class `AbstractBaseLayoutManager`
      Returns:
        True if the layout manager generates a reference area

    - #### getGeneratesBlockArea

          public boolean getGeneratesBlockArea()

      Returns an indication if the layout manager generates a block area.
      Specified by:
        `getGeneratesBlockArea` in interface `LayoutManager`
      Overrides:
        `getGeneratesBlockArea` in class `AbstractBaseLayoutManager`
      Returns:
        True if the layout manager generates a block area

    - #### handleOverflow

          public boolean handleOverflow(int milliPoints)

      Whether this LM can handle horizontal overflow error messages (only a BlockContainerLayoutManager can).
      Overrides:
        `handleOverflow` in class `BlockStackingLayoutManager`
      Parameters:
        `milliPoints` - horizontal overflow
      Returns:
        true if handled by a BlockContainerLayoutManager

Copyright © 2025 Apache Software Foundation. All rights reserved.