java.text
Class ChoiceFormat
- Cloneable, Serializable
This class allows a format to be specified based on a range of numbers.
To use this class, first specify two lists of formats and range terminators.
These lists must be arrays of equal length. The format of index
i
will be selected for value
X
if
terminator[i] <= X < limit[i + 1]
. If the value X is not
included in any range, then either the first or last format will be
used depending on whether the value X falls outside the range.
This sounds complicated, but that is because I did a poor job of
explaining it. Consider the following example:
terminators = { 1, ChoiceFormat.nextDouble(1) }
formats = { "file", "files" }
In this case if the actual number tested is one or less, then the word
"file" is used as the format value. If the number tested is greater than
one, then "files" is used. This allows plurals to be handled
gracefully. Note the use of the method
nextDouble
. This
method selects the next highest double number than its argument. This
effectively makes any double greater than 1.0 cause the "files" string
to be selected. (Note that all terminator values are specified as
doubles.
Note that in order for this class to work properly, the range terminator
array must be sorted in ascending order and the format string array
must be the same length as the terminator array.
ChoiceFormat(double[] choiceLimits, String[] choiceFormats) - This method initializes a new instance of
ChoiceFormat that
will use the specified range terminators and format strings.
|
ChoiceFormat(String newPattern) - This method initializes a new instance of
ChoiceFormat that
generates its range terminator and format string arrays from the
specified pattern.
|
void | applyPattern(String newPattern) - This method sets new range terminators and format strings for this
object based on the specified pattern.
|
boolean | equals(Object obj) - This method tests this object for equality with the specified
object.
|
StringBuffer | format(double num, StringBuffer appendBuf, FieldPosition pos) - This method appends the appropriate format string to the specified
StringBuffer based on the supplied double
argument.
|
StringBuffer | format(long num, StringBuffer appendBuf, FieldPosition pos) - This method appends the appropriate format string to the specified
StringBuffer based on the supplied long
argument.
|
Object[] | getFormats() - This method returns the list of format strings in use.
|
double[] | getLimits() - This method returns the list of range terminators in use.
|
int | hashCode() - This method returns a hash value for this object
|
static double | nextDouble(double d) - This method returns the lowest possible double greater than the
specified double.
|
static double | nextDouble(double d, boolean next) - This method returns a double that is either the next highest double
or next lowest double compared to the specified double depending on the
value of the passed boolean parameter.
|
Number | parse(String sourceStr, ParsePosition pos) - I'm not sure what this method is really supposed to do, as it is
not documented.
|
static double | previousDouble(double d) - This method returns the highest possible double less than the
specified double.
|
void | setChoices(double[] choiceLimits, String[] choiceFormats) - This method sets new range terminators and format strings for this
object.
|
String | toPattern() - This method returns the range terminator list and format string list
as a
String suitable for using with the
applyPattern method.
|
equals , format , format , format , format , format , getAvailableLocales , getCurrency , getCurrencyInstance , getCurrencyInstance , getInstance , getInstance , getIntegerInstance , getIntegerInstance , getMaximumFractionDigits , getMaximumIntegerDigits , getMinimumFractionDigits , getMinimumIntegerDigits , getNumberInstance , getNumberInstance , getPercentInstance , getPercentInstance , hashCode , isGroupingUsed , isParseIntegerOnly , parse , parse , parseObject , setCurrency , setGroupingUsed , setMaximumFractionDigits , setMaximumIntegerDigits , setMinimumFractionDigits , setMinimumIntegerDigits , setParseIntegerOnly |
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
ChoiceFormat
public ChoiceFormat(double[] choiceLimits,
String[] choiceFormats)
This method initializes a new instance of ChoiceFormat
that
will use the specified range terminators and format strings.
choiceLimits
- The array of range terminatorschoiceFormats
- The array of format strings
ChoiceFormat
public ChoiceFormat(String newPattern)
This method initializes a new instance of ChoiceFormat
that
generates its range terminator and format string arrays from the
specified pattern. This pattern is of the form
"term#string|term#string...". For example "1#Sunday|2#Monday|#Tuesday".
This is the same pattern type used by the applyPattern
method.
newPattern
- The pattern of terminators and format strings.
applyPattern
public void applyPattern(String newPattern)
This method sets new range terminators and format strings for this
object based on the specified pattern. This pattern is of the form
"term#string|term#string...". For example "1#Sunday|2#Monday|#Tuesday".
newPattern
- The pattern of terminators and format strings.
equals
public boolean equals(Object obj)
This method tests this object for equality with the specified
object. This will be true if and only if:
- The specified object is not
null
. - The specified object is an instance of
ChoiceFormat
. - The termination ranges and format strings are identical to
this object's.
- equals in interface NumberFormat
obj
- The object to test for equality against.
true
if the specified object is equal to
this one, false
otherwise.
format
public StringBuffer format(double num,
StringBuffer appendBuf,
FieldPosition pos)
This method appends the appropriate format string to the specified
StringBuffer
based on the supplied double
argument.
- format in interface NumberFormat
num
- The number used for determine (based on the range
terminators) which format string to append.appendBuf
- The StringBuffer
to append the format string to.pos
- Unused.
- The
StringBuffer
with the format string appended.
format
public StringBuffer format(long num,
StringBuffer appendBuf,
FieldPosition pos)
This method appends the appropriate format string to the specified
StringBuffer
based on the supplied long
argument.
- format in interface NumberFormat
num
- The number used for determine (based on the range
terminators) which format string to append.appendBuf
- The StringBuffer
to append the format string
to.pos
- Unused.
- The
StringBuffer
with the format string appended.
getFormats
public Object[] getFormats()
This method returns the list of format strings in use.
- The list of format objects.
getLimits
public double[] getLimits()
This method returns the list of range terminators in use.
- The list of range terminators.
hashCode
public int hashCode()
This method returns a hash value for this object
- hashCode in interface NumberFormat
- A hash value for this object.
nextDouble
public static final double nextDouble(double d)
This method returns the lowest possible double greater than the
specified double. If the specified double value is equal to
Double.NaN
then that is the value returned.
- The lowest double value greater than the specified double.
nextDouble
public static double nextDouble(double d,
boolean next)
This method returns a double that is either the next highest double
or next lowest double compared to the specified double depending on the
value of the passed boolean parameter. If the boolean parameter is
true
, then the lowest possible double greater than the
specified double will be returned. Otherwise the highest possible
double less than the specified double will be returned.
d
- The specified doublenext
- true
to return the next highest
double, false
otherwise.
- The next highest or lowest double value.
previousDouble
public static final double previousDouble(double d)
This method returns the highest possible double less than the
specified double. If the specified double value is equal to
Double.NaN
then that is the value returned.
- The highest double value less than the specified double.
setChoices
public void setChoices(double[] choiceLimits,
String[] choiceFormats)
This method sets new range terminators and format strings for this
object.
choiceLimits
- The new range terminatorschoiceFormats
- The new choice formats
toPattern
public String toPattern()
This method returns the range terminator list and format string list
as a String
suitable for using with the
applyPattern
method.
- A pattern string for this object
ChoiceFormat.java -- Format over a range of numbers
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2012
Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.