public class TLcdAltitudeFormat extends Format implements Serializable, ILcdFormatter, ILcdParser
Parses and formats altitudes. More specifically:
- it parses a string containing altitudes 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 'display' unit
Example for display unit 'TLcdAltitudeUnit.METRE
' and program unit 'TLcdAltitudeUnit.KM
'
- 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 altitude can be parsed too. For instance, this string contains four altitudes:
" 200m 1000 1500ft300some 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". An altitude format configured with meter as its program unit and ft as its display unit will parse the following altitudes, all in meter: 200, 304.8, 457.2, and 91.44. A subsequent parse will return
null
, because "some text" cannot be parsed.Modifier and Type | Class and Description |
---|---|
static class |
TLcdAltitudeFormat.Alignment
Describes the alignment of the unit with respect to the altitude value.
|
Format.Field
Modifier and Type | Field and Description |
---|---|
static int |
NUMBER_FIELD
Indicates the field containing the number of the altitude.
|
static int |
UNIT_FIELD
Indicates the field containing the unit short name.
|
Constructor and Description |
---|
TLcdAltitudeFormat()
Create an altitude format with
display unit: TLcdAltitudeUnit.METRE program unit: TLcdAltitudeUnit.METRE |
TLcdAltitudeFormat(TLcdAltitudeUnit aDisplayUnit)
Create an altitude format with
program unit: TLcdAltitudeUnit.METRE |
TLcdAltitudeFormat(TLcdAltitudeUnit aProgramUnit,
TLcdAltitudeUnit aDisplayUnit)
Create an altitude format.
|
Modifier and Type | Method and Description |
---|---|
Object |
clone() |
StringBuffer |
format(Object aObject,
StringBuffer aStringBufferToAppendTo,
FieldPosition aFieldPosition) |
String |
formatAltitude(double aAltitude)
Format the altitude as a String given the altitude as a double (in program unit).
|
StringBuffer |
formatAltitude(double aAltitude,
StringBuffer aToAppendToSFCT)
Format the altitude (in program unit) as a String and append to the given
StringBuffer.
|
StringBuffer |
formatAltitude(double aAltitude,
StringBuffer aToAppendToSFCT,
FieldPosition aFieldPosition)
Formats the given altitude and appends that to the given string buffer.
|
TLcdAltitudeUnit |
getDisplayUnit()
Returns the display unit.
|
int |
getFractionDigits()
Returns the number of fraction digits used to format the measurement.
|
String |
getNaNString()
Returns the string used for NaN values.
|
TLcdAltitudeUnit |
getProgramUnit()
Returns the program unit.
|
TLcdAltitudeFormat.Alignment |
getUnitAlignment()
Returns how the unit short name is aligned.
|
boolean |
isAddUnitShortName()
Returns
true if format will add the unit short name, false otherwise. |
Object |
parse(String aString)
Parses a given
String and creates a new Object
with the corresponding type/properties. |
double |
parseAltitude(String aAltitudeString)
Returns the altitude (in program unit) given a altitude as a string (in display unit).
|
double |
parseAltitude(String aAltitudeString,
ParsePosition aParsePosition)
Returns the altitude (in program unit) given a altitude as a string (in display unit).
|
Object |
parseObject(String aString,
ParsePosition aParsePosition) |
void |
setAddUnitShortName(boolean aAddUnitShortName)
Sets if format should add the unit short name.
|
void |
setDisplayUnit(TLcdAltitudeUnit aDisplayUnit)
Sets the display unit.
|
void |
setFractionDigits(int aFractionDigitCount)
Sets the number of fraction digits that should be used when formatting the measurement.
|
void |
setNaNString(String aNaNString)
Sets the string that should be used for NaN values.
|
void |
setProgramUnit(TLcdAltitudeUnit aProgramUnit)
Sets the program unit.
|
void |
setUnitAlignment(TLcdAltitudeFormat.Alignment aUnitAlignment)
Sets how the unit short name is aligned in the formatted altitude.
|
String |
toString() |
format, formatToCharacterIterator, parseObject
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
format
public static final int NUMBER_FIELD
public static final int UNIT_FIELD
public TLcdAltitudeFormat()
TLcdAltitudeUnit.METRE
TLcdAltitudeUnit.METRE
public TLcdAltitudeFormat(TLcdAltitudeUnit aDisplayUnit)
TLcdAltitudeUnit.METRE
public TLcdAltitudeFormat(TLcdAltitudeUnit aProgramUnit, TLcdAltitudeUnit aDisplayUnit)
public TLcdAltitudeUnit getProgramUnit()
setProgramUnit(com.luciad.util.TLcdAltitudeUnit)
public void setProgramUnit(TLcdAltitudeUnit aProgramUnit)
aProgramUnit
- The program unit.getProgramUnit()
public TLcdAltitudeUnit getDisplayUnit()
setDisplayUnit(com.luciad.util.TLcdAltitudeUnit)
public void setDisplayUnit(TLcdAltitudeUnit aDisplayUnit)
Format.format(Object)
will convert the given measurement to this unit.
parse(String)
will detect and parse the display 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 display unit.aDisplayUnit
- The display unit.
Changing the display unit will reset the following properties to a default that is appropriate for the unit:
getDisplayUnit()
public boolean isAddUnitShortName()
true
if format will add the unit short name, false
otherwise.true
if format will add the unit short name, false
otherwise.setAddUnitShortName(boolean)
public void setAddUnitShortName(boolean aAddUnitShortName)
aAddUnitShortName
- true
if unit short name should be added, false
otherwise.isAddUnitShortName()
public TLcdAltitudeFormat.Alignment getUnitAlignment()
public void setUnitAlignment(TLcdAltitudeFormat.Alignment aUnitAlignment)
aUnitAlignment
- one of TLcdAltitudeFormat.Alignment.LEFT
or TLcdAltitudeFormat.Alignment.RIGHT
getUnitAlignment()
public int getFractionDigits()
getMinimumFractionDigits
returns.setFractionDigits(int)
public void setFractionDigits(int aFractionDigitCount)
aFractionDigitCount
- The number of fraction digits.getFractionDigits(com.luciad.util.TLcdAltitudeUnit)
public String getNaNString()
setNaNString(String)
public void setNaNString(String aNaNString)
aNaNString
- the string to use.getNaNString()
public String formatAltitude(double aAltitude)
aAltitude
- the altitude as a double (in program unit).public StringBuffer formatAltitude(double aAltitude, StringBuffer aToAppendToSFCT)
aAltitude
- the altitude as a double (in program unit).aToAppendToSFCT
- The string buffer to append to.public StringBuffer formatAltitude(double aAltitude, StringBuffer aToAppendToSFCT, FieldPosition aFieldPosition)
aAltitude
- Must be instance of Number.aToAppendToSFCT
- The string buffer where the formatted altitude will be appended to.aFieldPosition
- NUMBER_FIELD or USER_FIELD. Can be used to retrieve the indices of the unit
or of the number.public double parseAltitude(String aAltitudeString) throws ParseException
aAltitudeString
- The string to parse, assumed to be in the display unit.ParseException
- If the given string cannot be parsed.public double parseAltitude(String aAltitudeString, ParsePosition aParsePosition) throws ParseException
aAltitudeString
- The string to parse, assumed to be in the display unit.aParsePosition
- The position to start the parsing at.ParseException
- If the given string cannot be parsed.public StringBuffer format(Object aObject, StringBuffer aStringBufferToAppendTo, FieldPosition aFieldPosition)
public Object parse(String aString) throws IllegalArgumentException
ILcdParser
String
and creates a new Object
with the corresponding type/properties.parse
in interface ILcdParser
aString
- the String
to be parsed.Object
.IllegalArgumentException
- if the String
can't be parsed.public Object parseObject(String aString, ParsePosition aParsePosition)
parseObject
in class Format