Class SpaceResolver


  • public final class SpaceResolver
    extends java.lang.Object
    This class resolves spaces and conditional borders and paddings by replacing the UnresolvedListElements descendants by the right combination of KnuthElements on an element list.
    • Constructor Detail

      • SpaceResolver

        private SpaceResolver​(java.util.List first,
                              BreakElement breakPoss,
                              java.util.List second,
                              boolean isFirst,
                              boolean isLast)
        Main constructor.
        Parameters:
        first - Element list before a break (optional)
        breakPoss - Break possibility (optional)
        second - Element list after a break (or if no break possibility in vicinity)
        isFirst - Resolution at the beginning of a (full) element list
        isLast - Resolution at the end of a (full) element list
    • Method Detail

      • toString

        private java.lang.String toString​(java.lang.Object[] arr1,
                                          java.lang.Object[] arr2)
      • removeConditionalBorderAndPadding

        private void removeConditionalBorderAndPadding​(UnresolvedListElement[] elems,
                                                       MinOptMax[] lengths,
                                                       boolean reverse)
      • performSpaceResolutionRules2to3

        private void performSpaceResolutionRules2to3​(UnresolvedListElement[] elems,
                                                     MinOptMax[] lengths,
                                                     int start,
                                                     int end)
      • hasFirstPart

        private boolean hasFirstPart()
      • hasSecondPart

        private boolean hasSecondPart()
      • resolve

        private void resolve()
      • generate

        private void generate​(java.util.ListIterator iter)
      • resolveElementList

        public static void resolveElementList​(java.util.List elems)
        Resolves unresolved elements applying the space resolution rules defined in 4.3.1.
        Parameters:
        elems - the element list
      • performConditionalsNotification

        public static void performConditionalsNotification​(java.util.List effectiveList,
                                                           int startElementIndex,
                                                           int endElementIndex,
                                                           int prevBreak)
        Inspects an effective element list and notifies all layout managers about the state of the spaces and conditional lengths.
        Parameters:
        effectiveList - the effective element list
        startElementIndex - index of the first element in the part to be processed
        endElementIndex - index of the last element in the part to be processed
        prevBreak - index of the the break possibility just before this part (used to identify a break condition, lastBreak <= 0 represents a no-break condition)