Class RMNumberFormat
- All Implemented Interfaces:
RMArchiver.Archiving
,RMFormat
,Serializable
,Cloneable
Those getFormatString/setFormatString support arbitrary decimal and grouping separators. This may be dangerous since when people use the default English versions of those, I think they change depending on the default JVM Locale. Only dangerous if someone wants to generate English Separators from a foreign local, I guess.
Also, our modified pattern format can be ambiguous if either decimal or grouping separator not included. In this case we assume any separator preceded by a '0' is the decimal separator. This seems reasonable since a decimal separator preceded by # could result in an empty string or a fractional number with no leading zero (like ".123" instead of "0.123") which seems somewhat rare. And also a grouping separator preceeded by 0 seems somewhat rare because it could result in a long zero string like "0,000".
I suppose we should instead have a syntax explicitly declaring decimal and group separators: "$ #,##0.00;ds=,;gs=.".
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.text.NumberFormat
NumberFormat.Field, NumberFormat.Style
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic RMNumberFormat
static RMNumberFormat
static RMNumberFormat
Fields inherited from class java.text.NumberFormat
FRACTION_FIELD, INTEGER_FIELD
-
Constructor Summary
ConstructorsConstructorDescriptionCreates an uninitialized number format.RMNumberFormat
(RMNumberFormat aFormat) Creates a number format identical to the given format.RMNumberFormat
(String aFormatString) Creates a number format for the given format string. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Standard equals implementation.Returns a formatted version of the given object.fromXML
(RXArchiver anArchiver, RXElement anElement) XML unarchival.Returns the decimal separator.Returns the format string for this format.Returns the String that is substituted when this format is asked to provide stringForObjectValue(null).Returns the thousands separator.initWithArchiver
(RMArchiver anArchiver) Legacy archival.boolean
Returns whether this format shows negative values in red.void
setDecimalSeparator
(String aValue) Sets the decimal separator.void
setFormatString
(String aFormat) Sets the format string for this format.void
setNegativeInRed
(boolean aFlag) Sets whether this format shows negative values in red.void
setNullString
(String aString) Sets the String that is substituted when this format is asked to provide stringForObjectValue(null).void
setThousandsSeparator
(String aValue) Sets the thousands separator.toXML
(RXArchiver anArchiver) XML archival.Methods inherited from class java.text.DecimalFormat
applyLocalizedPattern, applyPattern, clone, format, format, format, formatToCharacterIterator, getCurrency, getDecimalFormatSymbols, getGroupingSize, getMaximumFractionDigits, getMaximumIntegerDigits, getMinimumFractionDigits, getMinimumIntegerDigits, getMultiplier, getNegativePrefix, getNegativeSuffix, getPositivePrefix, getPositiveSuffix, getRoundingMode, hashCode, isDecimalSeparatorAlwaysShown, isParseBigDecimal, parse, setCurrency, setDecimalFormatSymbols, setDecimalSeparatorAlwaysShown, setGroupingSize, setGroupingUsed, setMaximumFractionDigits, setMaximumIntegerDigits, setMinimumFractionDigits, setMinimumIntegerDigits, setMultiplier, setNegativePrefix, setNegativeSuffix, setParseBigDecimal, setPositivePrefix, setPositiveSuffix, setRoundingMode, toLocalizedPattern, toPattern
Methods inherited from class java.text.NumberFormat
format, format, getAvailableLocales, getCompactNumberInstance, getCompactNumberInstance, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, isGroupingUsed, isParseIntegerOnly, parse, parseObject, setParseIntegerOnly
Methods inherited from class java.text.Format
format, parseObject
-
Field Details
-
PLAIN
-
BASIC
-
DOLLARS
-
-
Constructor Details
-
RMNumberFormat
public RMNumberFormat()Creates an uninitialized number format. -
RMNumberFormat
Creates a number format for the given format string. -
RMNumberFormat
Creates a number format identical to the given format.
-
-
Method Details
-
getNullString
Returns the String that is substituted when this format is asked to provide stringForObjectValue(null). -
setNullString
Sets the String that is substituted when this format is asked to provide stringForObjectValue(null). -
isNegativeInRed
public boolean isNegativeInRed()Returns whether this format shows negative values in red. -
setNegativeInRed
public void setNegativeInRed(boolean aFlag) Sets whether this format shows negative values in red. -
getThousandsSeparator
Returns the thousands separator. -
setThousandsSeparator
Sets the thousands separator. -
getDecimalSeparator
Returns the decimal separator. -
setDecimalSeparator
Sets the decimal separator. -
getFormatString
Returns the format string for this format. This is basically the default toPattern() of DecimalFormat, except that it allows for a arbitrary decimal and grouping separators.- Specified by:
getFormatString
in interfaceRMFormat
-
setFormatString
Sets the format string for this format. This is basically the default applyPattern() of DecimalFormat, except that it allows for arbitrary decimal and grouping separators.- Specified by:
setFormatString
in interfaceRMFormat
-
formatRM
Returns a formatted version of the given object. -
equals
Standard equals implementation.- Overrides:
equals
in classDecimalFormat
-
toXML
XML archival. -
fromXML
XML unarchival. -
initWithArchiver
Legacy archival.- Specified by:
initWithArchiver
in interfaceRMArchiver.Archiving
-