Package org.apache.fop.layoutmgr
Class SpaceResolver
- java.lang.Object
-
- org.apache.fop.layoutmgr.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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SpaceResolver.SpaceHandlingBreakPosition
Position class for break possibilities.static class
SpaceResolver.SpaceHandlingPosition
Position class for no-break situations.
-
Field Summary
Fields Modifier and Type Field Description private BreakElement
breakPoss
private UnresolvedListElementWithLength[]
firstPart
private MinOptMax[]
firstPartLengths
private boolean
isFirst
private boolean
isLast
private static org.apache.commons.logging.Log
LOG
Logger instanceprivate UnresolvedListElementWithLength[]
noBreak
private MinOptMax[]
noBreakLengths
private UnresolvedListElementWithLength[]
secondPart
private MinOptMax[]
secondPartLengths
-
Constructor Summary
Constructors Modifier Constructor Description private
SpaceResolver(java.util.List first, BreakElement breakPoss, java.util.List second, boolean isFirst, boolean isLast)
Main constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
generate(java.util.ListIterator iter)
private boolean
hasFirstPart()
private boolean
hasSecondPart()
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.private void
performSpaceResolutionRule1(UnresolvedListElement[] elems, MinOptMax[] lengths, boolean reverse)
private void
performSpaceResolutionRules2to3(UnresolvedListElement[] elems, MinOptMax[] lengths)
private void
performSpaceResolutionRules2to3(UnresolvedListElement[] elems, MinOptMax[] lengths, int start, int end)
private void
removeConditionalBorderAndPadding(UnresolvedListElement[] elems, MinOptMax[] lengths, boolean reverse)
private void
resolve()
static void
resolveElementList(java.util.List elems)
Resolves unresolved elements applying the space resolution rules defined in 4.3.1.private MinOptMax
sum(MinOptMax[] lengths)
private java.lang.String
toString(java.lang.Object[] arr1, java.lang.Object[] arr2)
-
-
-
Field Detail
-
LOG
private static final org.apache.commons.logging.Log LOG
Logger instance
-
firstPart
private UnresolvedListElementWithLength[] firstPart
-
breakPoss
private BreakElement breakPoss
-
secondPart
private UnresolvedListElementWithLength[] secondPart
-
noBreak
private UnresolvedListElementWithLength[] noBreak
-
firstPartLengths
private MinOptMax[] firstPartLengths
-
secondPartLengths
private MinOptMax[] secondPartLengths
-
noBreakLengths
private MinOptMax[] noBreakLengths
-
isFirst
private boolean isFirst
-
isLast
private boolean isLast
-
-
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 listisLast
- 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)
-
performSpaceResolutionRule1
private void performSpaceResolutionRule1(UnresolvedListElement[] elems, MinOptMax[] lengths, boolean reverse)
-
performSpaceResolutionRules2to3
private void performSpaceResolutionRules2to3(UnresolvedListElement[] elems, MinOptMax[] lengths, int start, int end)
-
performSpaceResolutionRules2to3
private void performSpaceResolutionRules2to3(UnresolvedListElement[] elems, MinOptMax[] lengths)
-
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 liststartElementIndex
- index of the first element in the part to be processedendElementIndex
- index of the last element in the part to be processedprevBreak
- index of the the break possibility just before this part (used to identify a break condition, lastBreak <= 0 represents a no-break condition)
-
-