Package com.luciad.text
Class TLcdDistanceFormat
java.lang.Object
java.text.Format
com.luciad.text.TLcdDistanceFormat
- All Implemented Interfaces:
ILcdFormatter
,ILcdParser
,Serializable
,Cloneable
Parses and formats distances. More specifically:
- it parses a string containing distances in any unit (or without any unit) into doubles of the chosen 'program' unit
- it formats a double of the given 'program' unit into a String containing the chosen 'user' unit
Example for user unit 'TLcdDistanceUnit.METRE_UNIT
' and program unit 'TLcdDistanceUnit.KM_UNIT
'
- Parsing '1000 m' will result in 1 (km)
- Formatting '20' (km) will result in '20000 m'
By using the ParsePosition, a string containing more than one distance can be parsed too. For instance, this string contains four distances:" 12km 13 1mi3some text"It can be parsed by calling parse four times with the same parse position instance. The parse position will be just before "some text". A distance format configured with km as its program unit and mi as its user unit will parse the following speeds, all in km: 12, 20.92..., 1.60..., and 4.82... A subsequent parse will return
null
, because "some text" cannot be parsed.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.text.Format
Format.Field
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Indicates the field containing the number of the distance.static final int
Indicates the field containing the unit short name. -
Constructor Summary
ConstructorDescriptionCreate a distance format with
user unit:TLcdDistanceUnit.METRE_UNIT
program unit:TLcdDistanceUnit.METRE_UNIT
TLcdDistanceFormat
(TLcdDistanceUnit aUserUnit) Create a distance format with
program unit:TLcdDistanceUnit.METRE_UNIT
TLcdDistanceFormat
(TLcdDistanceUnit aProgramUnit, TLcdDistanceUnit aUserUnit) Create a distance format. -
Method Summary
Modifier and TypeMethodDescriptionclone()
format
(Object aObject, StringBuffer aStringBufferToAppendTo, FieldPosition aFieldPosition) formatDistance
(double aDistance) Format the distance as a String given the distance as a double (in program unit).formatDistance
(double aDistance, StringBuffer aToAppendToSFCT) Format the distance (in program unit) as a String and append to the given StringBuffer.formatDistance
(double aDistance, StringBuffer aToAppendToSFCT, FieldPosition aFieldPosition) Formats the given distance and appends that to the given string buffer.int
Returns the number of fraction digits used to format the measurement.int
Returns the maximum number of digits allowed in the fraction portion of a distance.int
Returns the minimum number of digits allowed in the fraction portion of a distance.Returns the string used for NaN values.Returns the program unit.Returns the user unit.boolean
Returnstrue
if format will add the unit short name,false
otherwise.Parses a givenString
and creates a newObject
with the corresponding type/properties.double
parseDistance
(String aDistanceString) Returns the distance (in program unit) given a distance as a string (in user unit).double
parseDistance
(String aDistanceString, ParsePosition aParsePosition) Returns the distance (in program unit) given a distance as a string (in user unit).parseObject
(String aString, ParsePosition aParsePosition) void
setAddUnitShortName
(boolean aAddUnitShortName) Sets if format should add the unit short name.void
setFractionDigits
(int aFractionDigitCount) Sets the number of fraction digits that should be used when formatting the measurement.void
setMaximumFractionDigits
(int aMaximumFractionDigits) Sets the maximum number of digits allowed in the fraction portion of a distance.void
setMinimumFractionDigits
(int aMinimumFractionDigits) Sets the minimum number of digits allowed in the fraction portion of a distance.void
setNaNString
(String aNaNString) Sets the string that should be used for NaN values.void
setProgramUnit
(TLcdDistanceUnit aProgramUnit) Sets the program unit.void
setUserUnit
(TLcdDistanceUnit aUserUnit) Sets the user unit.toString()
Methods inherited from class java.text.Format
format, formatToCharacterIterator, parseObject
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.luciad.util.ILcdFormatter
format
-
Field Details
-
NUMBER_FIELD
public static final int NUMBER_FIELDIndicates the field containing the number of the distance. It is, the distance without the unit short name. Use format with a FieldPosition with field NUMBER_FIELD to know the start and end index of the number.- See Also:
-
UNIT_FIELD
public static final int UNIT_FIELDIndicates the field containing the unit short name. Use format with a FieldPosition with field UNIT_FIELD to know the start and end index of the unit short name.- See Also:
-
-
Constructor Details
-
TLcdDistanceFormat
public TLcdDistanceFormat()Create a distance format with
user unit:TLcdDistanceUnit.METRE_UNIT
program unit:TLcdDistanceUnit.METRE_UNIT
-
TLcdDistanceFormat
Create a distance format with
program unit:TLcdDistanceUnit.METRE_UNIT
-
TLcdDistanceFormat
Create a distance format.
-
-
Method Details
-
getProgramUnit
Returns the program unit.- Returns:
- the program unit.
- See Also:
-
setProgramUnit
Sets the program unit. Format will assume the given distance is in this unit. Parse will convert the parsed number to this unit.- Parameters:
aProgramUnit
- The program unit.- See Also:
-
getUserUnit
Returns the user unit.- Returns:
- the user unit.
- See Also:
-
setUserUnit
Sets the user unit.Format.format(Object)
will convert the given measurement to this unit.Format.parseObject(String)
will detect and parse the user unit as well as other units of the same measure type. When no unit name is provided the format assumes the value is in the user unit.- Parameters:
aUserUnit
- The user unit.- See Also:
-
isAddUnitShortName
public boolean isAddUnitShortName()Returnstrue
if format will add the unit short name,false
otherwise.- Returns:
true
if format will add the unit short name,false
otherwise.- See Also:
-
setAddUnitShortName
public void setAddUnitShortName(boolean aAddUnitShortName) Sets if format should add the unit short name. Note that parsing ignores this setting.- Parameters:
aAddUnitShortName
-true
if unit short name should be added, false otherwise.- See Also:
-
getFractionDigits
public int getFractionDigits()Returns the number of fraction digits used to format the measurement. This is the same value as thegetMinimumFractionDigits
returns.- Returns:
- the number of fraction digits used to format the measurement.
- See Also:
-
setFractionDigits
public void setFractionDigits(int aFractionDigitCount) Sets the number of fraction digits that should be used when formatting the measurement. This sets both the minimum and the maximum fraction digits.- Parameters:
aFractionDigitCount
- The number of fraction digits.- See Also:
-
setMinimumFractionDigits
public void setMinimumFractionDigits(int aMinimumFractionDigits) Sets the minimum number of digits allowed in the fraction portion of a distance.- Parameters:
aMinimumFractionDigits
- the minimum number of fraction digits to be shown; if less than zero, then zero is used.- See Also:
-
getMinimumFractionDigits
public int getMinimumFractionDigits()Returns the minimum number of digits allowed in the fraction portion of a distance.- Returns:
- the minimum number of digits allowed in the fraction portion of a distance
- See Also:
-
setMaximumFractionDigits
public void setMaximumFractionDigits(int aMaximumFractionDigits) Sets the maximum number of digits allowed in the fraction portion of a distance.- Parameters:
aMaximumFractionDigits
- the maximum number of fraction digits to be shown; if less than zero, then zero is used.- See Also:
-
getMaximumFractionDigits
public int getMaximumFractionDigits()Returns the maximum number of digits allowed in the fraction portion of a distance.- Returns:
- the maximum number of digits allowed in the fraction portion of a distance.
- See Also:
-
getNaNString
Returns the string used for NaN values.- Returns:
- the string used for NaN values.
- See Also:
-
setNaNString
Sets the string that should be used for NaN values.- Parameters:
aNaNString
- the string to use.- See Also:
-
format
public StringBuffer format(Object aObject, StringBuffer aStringBufferToAppendTo, FieldPosition aFieldPosition) -
parse
Description copied from interface:ILcdParser
Parses a givenString
and creates a newObject
with the corresponding type/properties.- Specified by:
parse
in interfaceILcdParser
- Parameters:
aString
- theString
to be parsed.- Returns:
- the resulting new
Object
. - Throws:
IllegalArgumentException
- if theString
can't be parsed.
-
parseObject
- Specified by:
parseObject
in classFormat
-
formatDistance
Format the distance as a String given the distance as a double (in program unit).- Parameters:
aDistance
- the distance as a double (in program unit).- Returns:
- the String representation of the distance.
-
formatDistance
Format the distance (in program unit) as a String and append to the given StringBuffer.- Parameters:
aDistance
- the distance as a double (in program unit).aToAppendToSFCT
- The string buffer to append to.- Returns:
- The given StringBuffer: aToAppendToSFCT
-
formatDistance
public StringBuffer formatDistance(double aDistance, StringBuffer aToAppendToSFCT, FieldPosition aFieldPosition) Formats the given distance and appends that to the given string buffer. The distance (in program unit) will be converted to user unit.- Parameters:
aDistance
- Must be instance of Number.aToAppendToSFCT
- The string buffer where the formatted distance will be appended to.aFieldPosition
- NUMBER_FIELD or USER_FIELD. Can be used to retrieve the indices of the unit or of the number.- Returns:
- The given StringBuffer: aStringBufferToAppendTo
-
parseDistance
Returns the distance (in program unit) given a distance as a string (in user unit).- Parameters:
aDistanceString
- The string to parse, assumed to be in the user unit.- Returns:
- A Double with the distance converted to the program unit.
- Throws:
ParseException
- If the given string cannot be parsed.
-
parseDistance
public double parseDistance(String aDistanceString, ParsePosition aParsePosition) throws ParseException Returns the distance (in program unit) given a distance as a string (in user unit).- Parameters:
aDistanceString
- The string to parse, assumed to be in the user unit.aParsePosition
- The position to start the parsing at.- Returns:
- A Double with the distance converted to the program unit.
- Throws:
ParseException
- If the given string cannot be parsed.
-
toString
-
clone
-