Package org.apache.fop.traits
Class MinOptMax
java.lang.Object
org.apache.fop.traits.MinOptMax
- All Implemented Interfaces:
Serializable
This class holds the resolved (as mpoints) form of a
LengthRange or
Space type property value.
Instances of this class are immutable. All arithmetic methods like
plus, minus or mult return a different instance. So it is possible to pass around instances without
copying.
MinOptMax values are used during layout calculations.
- See Also:
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionbooleanextendMinimum(int newMin) Extends the minimum length to the given length if necessary, and adjusts opt and max accordingly.static MinOptMaxgetInstance(int value) Returns an instance ofMinOptMaxwith one fixed value for all three properties (min, opt, max).static MinOptMaxgetInstance(int min, int opt, int max) Returns an instance ofMinOptMaxwith the given values.intgetMax()Returns the maximum value of thisMinOptMax.intgetMin()Returns the minimum value of thisMinOptMax.intgetOpt()Returns the optimum value of thisMinOptMax.intReturns the shrinkability of thisMinOptMaxwhich is the absolute difference betweenminandopt.intReturns the stretchability of thisMinOptMaxwhich is the absolute difference betweenoptandmax.inthashCode()booleanDetermines whether thisMinOptMaxallows for shrinking or stretching, which means that at least one of the min or max values isn't equal to the opt value.booleanDetermines whether thisMinOptMaxrepresents a non-zero dimension, which means that not all values (min, opt, max) are zero.booleanisStiff()Determines whether thisMinOptMaxdoesn't allow for shrinking or stretching, which means that all values (min, opt, max) are the same.minus(int value) Subtracts the given value from all three components of this instance and returns the result.Returns the difference of thisMinOptMaxand the givenMinOptMax.minusMax(int maxOperand) Do not use, backwards compatibility only.minusMin(int minOperand) Do not use, backwards compatibility only.mult(int factor) Returns the product of thisMinOptMaxand the given factor.plus(int value) Adds the given value to all three components of this instance and returns the result.Returns the sum of thisMinOptMaxand the givenMinOptMax.plusMax(int maxOperand) Do not use, backwards compatibility only.plusMin(int minOperand) Do not use, backwards compatibility only.toString()
-
Field Details
-
ZERO
The zeroMinOptMaxinstance withmin == opt == max == 0.
-
-
Method Details
-
getInstance
Returns an instance ofMinOptMaxwith the given values.- Parameters:
min- the minimum valueopt- the optimum valuemax- the maximum value- Returns:
- the corresponding instance
- Throws:
IllegalArgumentException- ifmin > opt || max < opt.
-
getInstance
Returns an instance ofMinOptMaxwith one fixed value for all three properties (min, opt, max).- Parameters:
value- the value for min, opt and max- Returns:
- the corresponding instance
- See Also:
-
getMin
public int getMin()Returns the minimum value of thisMinOptMax.- Returns:
- the minimum value of this
MinOptMax.
-
getOpt
public int getOpt()Returns the optimum value of thisMinOptMax.- Returns:
- the optimum value of this
MinOptMax.
-
getMax
public int getMax()Returns the maximum value of thisMinOptMax.- Returns:
- the maximum value of this
MinOptMax.
-
getShrink
public int getShrink()Returns the shrinkability of thisMinOptMaxwhich is the absolute difference betweenminandopt.- Returns:
- the shrinkability of this
MinOptMaxwhich is always non-negative.
-
getStretch
public int getStretch()Returns the stretchability of thisMinOptMaxwhich is the absolute difference betweenoptandmax.- Returns:
- the stretchability of this
MinOptMaxwhich is always non-negative.
-
plus
Returns the sum of thisMinOptMaxand the givenMinOptMax.- Parameters:
operand- the second operand of the sum (the first is this instance itself),- Returns:
- the sum of this
MinOptMaxand the givenMinOptMax.
-
plus
Adds the given value to all three components of this instance and returns the result.- Parameters:
value- value to add to the min, opt, max components- Returns:
- the result of the addition
-
minus
Returns the difference of thisMinOptMaxand the givenMinOptMax. This instance must be a compound of the operand and anotherMinOptMax, that is, there must exist aMinOptMaxm such thatthis.equals(m.plus(operand)). In other words, the operand must have less shrink and stretch than this instance.- Parameters:
operand- the value to be subtracted- Returns:
- the difference of this
MinOptMaxand the givenMinOptMax. - Throws:
ArithmeticException- if this instance has strictly less shrink or stretch than the operand
-
minus
Subtracts the given value from all three components of this instance and returns the result.- Parameters:
value- value to subtract from the min, opt, max components- Returns:
- the result of the subtraction
-
plusMin
Do not use, backwards compatibility only. Returns an instance with the given value added to the minimal value.- Parameters:
minOperand- the minimal value to be added.- Returns:
- an instance with the given value added to the minimal value.
- Throws:
IllegalArgumentException- ifmin + minOperand > opt || max < opt.
-
minusMin
Do not use, backwards compatibility only. Returns an instance with the given value subtracted to the minimal value.- Parameters:
minOperand- the minimal value to be subtracted.- Returns:
- an instance with the given value subtracted to the minimal value.
- Throws:
IllegalArgumentException- ifmin - minOperand > opt || max < opt.
-
plusMax
Do not use, backwards compatibility only. Returns an instance with the given value added to the maximal value.- Parameters:
maxOperand- the maximal value to be added.- Returns:
- an instance with the given value added to the maximal value.
- Throws:
IllegalArgumentException- ifmin > opt || max < opt + maxOperand.
-
minusMax
Do not use, backwards compatibility only. Returns an instance with the given value subtracted to the maximal value.- Parameters:
maxOperand- the maximal value to be subtracted.- Returns:
- an instance with the given value subtracted to the maximal value.
- Throws:
IllegalArgumentException- ifmin > opt || max < opt - maxOperand.
-
mult
Returns the product of thisMinOptMaxand the given factor.- Parameters:
factor- the factor- Returns:
- the product of this
MinOptMaxand the given factor - Throws:
IllegalArgumentException- if the factor is negative
-
isNonZero
public boolean isNonZero()Determines whether thisMinOptMaxrepresents a non-zero dimension, which means that not all values (min, opt, max) are zero.- Returns:
trueif thisMinOptMaxrepresents a non-zero dimension;falseotherwise.
-
isStiff
public boolean isStiff()Determines whether thisMinOptMaxdoesn't allow for shrinking or stretching, which means that all values (min, opt, max) are the same.- Returns:
trueif whether thisMinOptMaxdoesn't allow for shrinking or stretching;falseotherwise.- See Also:
-
isElastic
public boolean isElastic()Determines whether thisMinOptMaxallows for shrinking or stretching, which means that at least one of the min or max values isn't equal to the opt value.- Returns:
trueif thisMinOptMaxallows for shrinking or stretching;falseotherwise.- See Also:
-
extendMinimum
Extends the minimum length to the given length if necessary, and adjusts opt and max accordingly.- Parameters:
newMin- the new minimum length- Returns:
- a
MinOptMaxinstance with the minimum length extended
-
equals
-
hashCode
public int hashCode() -
toString
-