|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
ObjectFormat
AngleFormat
public class AngleFormat
Parses and formats angles according a specified pattern. The pattern is a string containing any characters, with a special meaning for the following characters:
D
The integer part of degrees d
The fractional part of degrees M
The integer part of minutes m
The fractional part of minutes S
The integer part of seconds s
The fractional part of seconds .
The decimal separator
Upper-case letters D
, M
and S
are for the integer
parts of degrees, minutes and seconds respectively. They must appear in this order (e.g.
"M'D
" is illegal because "M" and "S" are inverted; "D°S
" is
illegal too because there is no "M" between "D" and "S"). Lower-case letters d
,
m
and s
are for fractional parts of degrees, minutes and seconds
respectively. Only one of those may appears in a pattern, and it must be the last special
symbol (e.g. "D.dd°MM'
" is illegal because "d" is followed by "M";
"D.mm
" is illegal because "m" is not the fractional part of "D").
The number of occurrence of D
, M
, S
and their
lower-case counterpart is the number of digits to format. For example, "DD.ddd" will
format angle with two digits for the integer part and three digits for the fractional
part (e.g. 4.4578 will be formatted as "04.458"). Separator characters like °
,
'
and "
and inserted "as-is" in the formatted string (except the
decimal separator dot (".
"), which is replaced by the local-dependent decimal
separator). Separator characters may be completely omitted; AngleFormat
will
still differentiate degrees, minutes and seconds fields according the pattern. For example,
"0480439
" with the pattern "DDDMMmm
" will be parsed as 48°04.39'.
The following table gives some examples of legal patterns.
Pattern Example DD°MM'SS"
48°30'00" DD°MM'
48°30' DD.ddd
48.500 DDMM
4830 DDMMSS
483000
Angle
,
Latitude
,
Longitude
,
Serialized Form
modules/library/referencing (gt-referencing.jar)
Nested Class Summary |
---|
Nested classes/interfaces inherited from class Format |
---|
Format.Field |
Field Summary | |
---|---|
static int |
DEGREES_FIELD
Constant for degrees field. |
static int |
HEMISPHERE_FIELD
Constant for hemisphere field. |
static int |
MINUTES_FIELD
Constant for minutes field. |
static int |
SECONDS_FIELD
Constant for seconds field. |
Constructor Summary | |
---|---|
AngleFormat()
Constructs a new AngleFormat using
the current default locale and a default pattern. |
|
AngleFormat(String pattern)
Constructs a new AngleFormat using the
current default locale and the specified pattern. |
|
AngleFormat(String pattern,
DecimalFormatSymbols symbols)
Constructs a new AngleFormat
using the specified pattern and decimal symbols. |
|
AngleFormat(String pattern,
Locale locale)
Constructs a new AngleFormat
using the specified pattern and locale. |
Method Summary | |
---|---|
void |
applyPattern(String pattern)
Sets the pattern to use for parsing and formatting angle. |
boolean |
equals(Object obj)
Compares this format with the specified object for equality. |
String |
format(double angle)
Format an angle. |
StringBuffer |
format(double angle,
StringBuffer toAppendTo,
FieldPosition pos)
Formats an angle and appends the resulting text to a given string buffer. |
StringBuffer |
format(Object obj,
StringBuffer toAppendTo,
FieldPosition pos)
Formats an angle, a latitude or a longitude and appends the resulting text to a given string buffer. |
static AngleFormat |
getInstance(Locale locale)
Constructs a new AngleFormat for the specified locale. |
int |
hashCode()
Returns a "hash value" for this object. |
Angle |
parse(String source)
Parses a string as an angle. |
Angle |
parse(String source,
ParsePosition pos)
Parses a string as an angle. |
Angle |
parseObject(String source)
Parses a string as an object. |
Angle |
parseObject(String source,
ParsePosition pos)
Parses a substring as an angle. |
String |
toPattern()
Returns the pattern used for parsing and formatting angles. |
String |
toString()
Returns a string representation of this object. |
Methods inherited from class Format |
---|
clone, format, formatToCharacterIterator |
Methods inherited from class Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int DEGREES_FIELD
FieldPosition
constructor in order to
get the bounding index where degrees have been written.
public static final int MINUTES_FIELD
FieldPosition
constructor in order to
get the bounding index where minutes have been written.
public static final int SECONDS_FIELD
FieldPosition
constructor in order to
get the bounding index where seconds have been written.
public static final int HEMISPHERE_FIELD
FieldPosition
constructor in order to
get the bounding index where the hemisphere synbol has been written.
Constructor Detail |
---|
public AngleFormat()
AngleFormat
using
the current default locale and a default pattern.
public AngleFormat(String pattern) throws IllegalArgumentException
AngleFormat
using the
current default locale and the specified pattern.
pattern
- Pattern to use for parsing and formatting angle.
See class description for an explanation of how this pattern work.
IllegalArgumentException
- If the specified pattern is not legal.public AngleFormat(String pattern, Locale locale) throws IllegalArgumentException
AngleFormat
using the specified pattern and locale.
pattern
- Pattern to use for parsing and formatting angle.
See class description for an explanation of how this pattern work.locale
- Locale to use.
IllegalArgumentException
- If the specified pattern is not legal.public AngleFormat(String pattern, DecimalFormatSymbols symbols)
AngleFormat
using the specified pattern and decimal symbols.
pattern
- Pattern to use for parsing and formatting angle.
See class description for an explanation of how this pattern work.symbols
- The symbols to use for parsing and formatting numbers.
IllegalArgumentException
- If the specified pattern is not legal.Method Detail |
---|
public static AngleFormat getInstance(Locale locale)
AngleFormat
for the specified locale.
locale
- The locale.
public void applyPattern(String pattern) throws IllegalArgumentException
pattern
- Pattern to use for parsing and formatting angle.
IllegalArgumentException
- If the specified pattern is not legal.public String toPattern()
public final String format(double angle)
applyPattern(java.lang.String)
.
angle
- Angle to format, in degrees.
public StringBuffer format(double angle, StringBuffer toAppendTo, FieldPosition pos)
applyPattern(java.lang.String)
.
angle
- Angle to format, in degrees.toAppendTo
- Where the text is to be appended.pos
- An optional FieldPosition
identifying a field
in the formatted text, or null
if this
information is not wanted. This field position shall
be constructed with one of the following constants:
DEGREES_FIELD
,
MINUTES_FIELD
,
SECONDS_FIELD
or
HEMISPHERE_FIELD
.
toAppendTo
, with formatted text appended.public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) throws IllegalArgumentException
applyPattern(java.lang.String)
. The argument obj
shall be an Angle
object or one of its derived class (Latitude
,
Longitude
). If obj
is a Latitude
object, then a
symbol "N" or "S" will be appended to the end of the string (the symbol will
be choosen according the angle's sign). Otherwise, if obj
is a
Longitude
object, then a symbol "E" or "W" will be appended to the
end of the string. Otherwise, no hemisphere symbol will be appended.
AngleFormat
's job. Nevertheless, this method
accept Number
objects. This capability is provided
only as a convenient way to format altitude numbers together
with longitude and latitude angles.
format
in class Format
obj
- Angle
or Number
object to format.toAppendTo
- Where the text is to be appended.pos
- An optional FieldPosition
identifying a field
in the formatted text, or null
if this
information is not wanted. This field position shall
be constructed with one of the following constants:
DEGREES_FIELD
,
MINUTES_FIELD
,
SECONDS_FIELD
or
HEMISPHERE_FIELD
.
toAppendTo
, with
formatted text appended.
IllegalArgumentException
- if obj
if not an object
of class Angle
or Number
.public Angle parse(String source, ParsePosition pos)
48°12.34'
" even if the expected
pattern was "DDMM.mm
" (i.e. the string should have been
"4812.34
"). Spaces between degrees, minutes and secondes
are ignored. If the string ends with an hemisphere symbol "N" or "S",
then this method returns an object of class Latitude
. Otherwise,
if the string ends with an hemisphere symbol "E" or "W", then this method
returns an object of class Longitude
. Otherwise, this method
returns an object of class Angle
.
source
- A String whose beginning should be parsed.pos
- Position where to start parsing.
Angle
, Latitude
or Longitude
object.public Angle parse(String source) throws ParseException
source
- The string to parse.
Angle
, Latitude
or Longitude
object.
ParseException
- if the string has not been fully parsed.public Angle parseObject(String source, ParsePosition pos)
parse(String, ParsePosition)
.
parseObject
in class Format
source
- A String whose beginning should be parsed.pos
- Position where to start parsing.
Angle
,
Latitude
or Longitude
object.public Angle parseObject(String source) throws ParseException
parse(String)
.
parseObject
in class Format
source
- The string to parse.
Angle
, Latitude
or
Longitude
object.
ParseException
- if the string has not been fully parsed.public int hashCode()
hashCode
in class Object
public boolean equals(Object obj)
equals
in class Object
public String toString()
toString
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |