Package org.eclipse.birt.report.model.api.metadata

# Class DimensionValue

java.lang.Object
org.eclipse.birt.report.model.api.metadata.DimensionValue

public class DimensionValue extends Object
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:
  - `DimensionUtil`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final Pattern`
`commaSeparatorPattern`
Compiled pattern for CSS absolute pattern: "000.000,000.000"
`static final String`
`DEFAULT_UNIT`
Default unit for the dimension.
`static final Pattern`
`dotSeparatorPattern`
Compiled pattern for CSS absolute pattern: "000,000.000,000"
`protected final double`
`measure`
The numeric measure part of the dimension.
`protected final String`
`units`
The units part of the dimension.

## Constructor Summary

Constructors
Constructor
Description
`DimensionValue(double theMeasure, String theUnits)`
Constructs a DimensionValue given its measure and unit.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`equals(Object obj)`
Compares this dimension value to the given object.
`double`
`getMeasure()`
Returns the measure portion of the dimension.
`String`
`getUnits()`
Returns the units portion of the dimension.
`int`
`hashCode()`
Returns a hash code for this `DimensionValue` object.
`static int`
`indexOfUnitLetter(String value)`
Finds index of the first unit character( pt, %, pc...
`static DimensionValue`
`parse(String value)`
Deprecated.
replaced by `StringUtil.parse(String)`
`static DimensionValue`
`parseInput(String value)`
Deprecated.
replaced by `StringUtil.parseInput(String, com.ibm.icu.util.ULocale)`
`String`
`toDisplayString()`
Returns the dimension value in localized format.
`String`
`toString()`
Converts the dimension value to a locale-independent string.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Field Details

### measure

protected final double measure
The numeric measure part of the dimension.

### units

protected final String units
The units part of the dimension.

### DEFAULT_UNIT

public static final String DEFAULT_UNIT
Default unit for the dimension.

See Also:
  - Constant Field Values

### dotSeparatorPattern

public static final Pattern dotSeparatorPattern
Compiled pattern for CSS absolute pattern: "000,000.000,000"

### commaSeparatorPattern

public static final Pattern commaSeparatorPattern
Compiled pattern for CSS absolute pattern: "000.000,000.000"

## Constructor Details

### DimensionValue

public DimensionValue(double theMeasure, String theUnits)
Constructs a DimensionValue given its measure and unit.

Parameters:
  `theMeasure` - numeric measure
  `theUnits` - 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

public String getUnits()
Returns the units portion of the dimension.

Returns:
  the units.

### parse

@Deprecated public static DimensionValue parse(String value) throws PropertyValueException
Deprecated.
replaced by `StringUtil.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 public static DimensionValue parseInput(String value) throws PropertyValueException
Deprecated.
replaced by `StringUtil.parseInput(String, com.ibm.icu.util.ULocale)`
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

public String 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"

Overrides:
  `toString` in class `Object`
Returns:
  The string presentation of this dimension value.

### toDisplayString

public String toDisplayString()
Returns the dimension value in localized format.

Returns:
  localized format for this instance.

### indexOfUnitLetter

public static int indexOfUnitLetter(String value)
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

public boolean equals(Object obj)
Compares this dimension value to the given object. The result is `true` if 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

Overrides:
  `equals` in class `Object`
Parameters:
  `obj` - the object to compare this dimension value against.
Returns:
  `true` if this dimension value is equal to the given one; `false` otherwise.

### hashCode

public int hashCode()
Returns a hash code for this `DimensionValue` object. The result is computed with the exclusive OR of the two halves of the `long` integer 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 primitive `double` value represented by the measure of this `DimensionValue` object. That is, the hash code is the value of the expression:

>      int result = 17 + 37 * (int) (m ˆ (m >>> 32));
>      result = 37 * result + getUnits().toLowerCase().hashCode();

where `m` is defined by:

>      long m = Double.doubleToLongBits(this.getMeasure());

Overrides:
  `hashCode` in class `Object`
Returns:
  the hash code value for this object.