Package org.apache.fop.layoutmgr
Class KnuthPenalty
java.lang.Object
org.apache.fop.layoutmgr.ListElement
org.apache.fop.layoutmgr.KnuthElement
org.apache.fop.layoutmgr.KnuthPenalty
- Direct Known Subclasses:
WhitespaceManagementPenalty
An instance of this class represents information about a feasible
breaking point; it does not represent any piece of content.
A KnuthPenalty is a feasible breaking point unless its value is infinity;
a KnuthPenalty whose value is -infinity represents a forced break.
A KnuthPenalty is suppressed, and its width is ignored, if it is not a
chosen breaking point; for example, a KnuthPenalty representing a
hyphenation point has a width (the "-" width), which must be ignored if
that point is not chosen as a breaking point.
Besides the inherited methods and attributes, this class has two more
attributes and the methods used to get them: the penalty value, which is
a kind of "aesthetic cost" (the higher the value, the more unsightly the
breaking point), and a boolean that marks KnuthPenalties which should not
be chosen as breaking points for consecutive lines.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final KnuthPenalty
Dummy, zero-width penaltystatic final int
Used for flagged penalties.Fields inherited from class org.apache.fop.layoutmgr.KnuthElement
INFINITE
-
Constructor Summary
ConstructorDescriptionKnuthPenalty
(int width, int penalty, boolean penaltyFlagged, int breakClass, Position pos, boolean isAuxiliary) Create a new KnuthPenalty.KnuthPenalty
(int width, int penalty, boolean penaltyFlagged, Position pos, boolean auxiliary) Create a new KnuthPenalty. -
Method Summary
Modifier and TypeMethodDescriptionint
int
boolean
boolean
boolean
void
setPenalty
(int penalty) Sets a new penalty value.toString()
protected static String
valueOf
(int penaltyValue) Get the penalty's value as aString
.Methods inherited from class org.apache.fop.layoutmgr.KnuthElement
getShrink, getStretch, getWidth, isAuxiliary, isUnresolvedElement
Methods inherited from class org.apache.fop.layoutmgr.ListElement
getLayoutManager, getPosition, isBox, isGlue, setPosition
-
Field Details
-
FLAGGED_PENALTY
public static final int FLAGGED_PENALTYUsed for flagged penalties. See Knuth algorithm.- See Also:
-
DUMMY_ZERO_PENALTY
Dummy, zero-width penalty
-
-
Constructor Details
-
KnuthPenalty
public KnuthPenalty(int width, int penalty, boolean penaltyFlagged, Position pos, boolean auxiliary) Create a new KnuthPenalty.- Parameters:
width
- the width of this penaltypenalty
- the penalty value of this penaltypenaltyFlagged
- is this penalty flagged?pos
- the Position stored in this penaltyauxiliary
- is this penalty auxiliary?
-
KnuthPenalty
public KnuthPenalty(int width, int penalty, boolean penaltyFlagged, int breakClass, Position pos, boolean isAuxiliary) Create a new KnuthPenalty.- Parameters:
width
- the width of this penaltypenalty
- the penalty value of this penaltypenaltyFlagged
- is this penalty flagged?breakClass
- the break class of this penalty (one ofConstants.EN_AUTO
,Constants.EN_COLUMN
,Constants.EN_PAGE
,Constants.EN_EVEN_PAGE
,Constants.EN_ODD_PAGE
).pos
- the Position stored in this penaltyisAuxiliary
- is this penalty auxiliary?
-
-
Method Details
-
valueOf
Get the penalty's value as aString
. (Mainly used intoString()
methods, to improve readability of the trace logs.) TODO: shouldn't be penalty a class of its own?- Parameters:
penaltyValue
- the penalty value- Returns:
- the penalty value as a
String
-
isPenalty
public boolean isPenalty()- Overrides:
isPenalty
in classListElement
- Returns:
- true if this element is a KnuthPenalty.
-
getPenalty
public int getPenalty()- Overrides:
getPenalty
in classKnuthElement
- Returns:
- the penalty value of this penalty.
-
setPenalty
public void setPenalty(int penalty) Sets a new penalty value.- Parameters:
penalty
- the new penalty value
-
isPenaltyFlagged
public boolean isPenaltyFlagged()- Returns:
- true is this penalty is a flagged one.
-
isForcedBreak
public boolean isForcedBreak()- Overrides:
isForcedBreak
in classListElement
- Returns:
- true if the element is a penalty and represents a forced break.
-
getBreakClass
public int getBreakClass()- Returns:
- the break class of this penalty (EN_AUTO, EN_COLUMN, EN_PAGE, EN_EVEN_PAGE, EN_ODD_PAGE)
-
toString
-