Class DimensionValue
java.lang.Object
org.eclipse.birt.report.model.api.metadata.DimensionValue
Representation of a dimension property value. A dimension has two parts: the
measure and the optional units. If the units are
DEFAULT_UNIT,
then the units are assumed to be those set on the design as a whole.
The following units are supported:
- in (inch)
- cm (centimeter)
- mm (millimeter)
- pt (point)
- pc (pica)
- px (pixel)
- em (the height of the element's font)
- ex (x-height)
- % (percentage)
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final PatternCompiled pattern for CSS absolute pattern: "000.000,000.000"static final StringDefault unit for the dimension.static final PatternCompiled pattern for CSS absolute pattern: "000,000.000,000"protected final doubleThe numeric measure part of the dimension.protected final StringThe units part of the dimension. -
Constructor Summary
ConstructorsConstructorDescriptionDimensionValue(double theMeasure, String theUnits) Constructs a DimensionValue given its measure and unit. -
Method Summary
Modifier and TypeMethodDescriptionbooleanCompares this dimension value to the given object.doubleReturns the measure portion of the dimension.getUnits()Returns the units portion of the dimension.inthashCode()Returns a hash code for thisDimensionValueobject.static intindexOfUnitLetter(String value) Finds index of the first unit character( pt, %, pc...static DimensionValueDeprecated.static DimensionValueparseInput(String value) Deprecated.Returns the dimension value in localized format.toString()Converts the dimension value to a locale-independent string.
-
Field Details
-
measure
protected final double measureThe numeric measure part of the dimension. -
units
The units part of the dimension. -
DEFAULT_UNIT
Default unit for the dimension.- See Also:
-
dotSeparatorPattern
Compiled pattern for CSS absolute pattern: "000,000.000,000" -
commaSeparatorPattern
Compiled pattern for CSS absolute pattern: "000.000,000.000"
-
-
Constructor Details
-
DimensionValue
Constructs a DimensionValue given its measure and unit.- Parameters:
theMeasure- numeric measuretheUnits- units part for the dimension.- Throws:
IllegalArgumentException- if the unit is not supported.
-
-
Method Details
-
getMeasure
public double getMeasure()Returns the measure portion of the dimension.- Returns:
- the measure
-
getUnits
Returns the units portion of the dimension.- Returns:
- the units.
-
parse
Deprecated.replaced byStringUtil.parse(String)Parses a dimension string in locale-independent way. The input string must match the following:- null
- [1-9][0-9]*[.[0-9]*[ ]*[in|cm|mm|pt|pc|em|ex|px|%]]
- Parameters:
value- the dimension string to parse- Returns:
- a dimension object representing the dimension string.
- Throws:
PropertyValueException- if the string is not valid
-
parseInput
Deprecated.Parses a dimension string in locale-dependent way. The input can be in localized value. The measure part use the decimal separator from the locale. e,g. "123,456.78" for English ; "123.456,78" for German.The string must match the following:
- null
- [1-9][0-9]*[.[0-9]*[ ]*[u]], u is the one of the allowed units
- Parameters:
value- the string to parse- Returns:
- a dimension object
- Throws:
PropertyValueException- if the string is not valid
-
toString
Converts the dimension value to a locale-independent string. The string will be converted into a format like "#.###", there is no group separator and remains at most 3 digits after the decimal separator. e.g: "12,000,000.12345cm" will be converted into "12000000.123" -
toDisplayString
Returns the dimension value in localized format.- Returns:
- localized format for this instance.
-
indexOfUnitLetter
Finds index of the first unit character( pt, %, pc... ) in the String.- Parameters:
value- an input string- Returns:
- index of the first letter. Return -1 if no letter found in the String value.
-
equals
Compares this dimension value to the given object. The result istrueif and only if the argument is not null and is a dimension value object with the same measure and the same type of unit. The two dimension values with different units are not equal, although they can be converted to same measure -
hashCode
public int hashCode()Returns a hash code for thisDimensionValueobject. The result is computed with the exclusive OR of the two halves of thelonginteger bit representation of the measure, and the hash code of unit string. The measure bit representation is exactly produced by the method Double.doubleToLongBits(double), of the primitivedoublevalue represented by the measure of thisDimensionValueobject. That is, the hash code is the value of the expression:
whereint result = 17 + 37 * (int) (m ˆ (m >>> 32)); result = 37 * result + getUnits().toLowerCase().hashCode();
mis defined by:long m = Double.doubleToLongBits(this.getMeasure());
-
StringUtil.parse(String)