Package org.apache.fop.layoutmgr
Class SpaceResolver
- java.lang.Object
-
- org.apache.fop.layoutmgr.SpaceResolver
-
public final class SpaceResolver extends java.lang.ObjectThis 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 classSpaceResolver.SpaceHandlingBreakPositionPosition class for break possibilities.static classSpaceResolver.SpaceHandlingPositionPosition class for no-break situations.
-
Field Summary
Fields Modifier and Type Field Description private BreakElementbreakPossprivate UnresolvedListElementWithLength[]firstPartprivate MinOptMax[]firstPartLengthsprivate booleanisFirstprivate booleanisLastprivate static org.apache.commons.logging.LogLOGLogger instanceprivate UnresolvedListElementWithLength[]noBreakprivate MinOptMax[]noBreakLengthsprivate UnresolvedListElementWithLength[]secondPartprivate MinOptMax[]secondPartLengths
-
Constructor Summary
Constructors Modifier Constructor Description privateSpaceResolver(java.util.List first, BreakElement breakPoss, java.util.List<ListElement> second, boolean isFirst, boolean isLast)Main constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidgenerate(java.util.ListIterator iter)private booleanhasFirstPart()private booleanhasSecondPart()static voidperformConditionalsNotification(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 voidperformSpaceResolutionRule1(UnresolvedListElement[] elems, MinOptMax[] lengths, boolean reverse)private voidperformSpaceResolutionRules2to3(UnresolvedListElement[] elems, MinOptMax[] lengths)private voidperformSpaceResolutionRules2to3(UnresolvedListElement[] elems, MinOptMax[] lengths, int start, int end)private voidremoveConditionalBorderAndPadding(UnresolvedListElement[] elems, MinOptMax[] lengths, boolean reverse)private voidresolve()static voidresolveElementList(java.util.List elems)Resolves unresolved elements applying the space resolution rules defined in 4.3.1.private MinOptMaxsum(MinOptMax[] lengths)private java.lang.StringtoString(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<ListElement> 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)
-
-