Class RMNumberFormat
- java.lang.Object
- 
- java.text.Format
- 
- java.text.NumberFormat
- 
- java.text.DecimalFormat
- 
- com.reportmill.base.RMNumberFormat
 
 
 
 
- 
- All Implemented Interfaces:
- RMArchiver.Archiving,- RMFormat,- java.io.Serializable,- java.lang.Cloneable
 
 public class RMNumberFormat extends java.text.DecimalFormat implements RMFormat, RMArchiver.Archiving This subclass extends DecimalFormat to implement ReportMill's RMFormat interface and to support the extended features "Negative in Red" and "Null String". It also has a toPattern like method, getFormatString, for the purposes of archival.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:
- Serialized Form
 
- 
- 
Field SummaryFields Modifier and Type Field Description static RMNumberFormatBASICstatic RMNumberFormatDOLLARSstatic RMNumberFormatPLAIN
 - 
Constructor SummaryConstructors Constructor Description RMNumberFormat()Creates an uninitialized number format.RMNumberFormat(RMNumberFormat aFormat)Creates a number format identical to the given format.RMNumberFormat(java.lang.String aFormatString)Creates a number format for the given format string.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object anObj)Standard equals implementation.java.lang.ObjectformatRM(java.lang.Object anObj)Returns a formatted version of the given object.java.lang.ObjectfromXML(RXArchiver anArchiver, RXElement anElement)XML unarchival.java.lang.StringgetDecimalSeparator()Returns the decimal separator.java.lang.StringgetFormatString()Returns the format string for this format.java.lang.StringgetNullString()Returns the String that is substituted when this format is asked to provide stringForObjectValue(null).java.lang.StringgetThousandsSeparator()Returns the thousands separator.java.lang.ObjectinitWithArchiver(RMArchiver anArchiver)Legacy archival.booleanisNegativeInRed()Returns whether this format shows negative values in red.voidsetDecimalSeparator(java.lang.String aValue)Sets the decimal separator.voidsetFormatString(java.lang.String aFormat)Sets the format string for this format.voidsetNegativeInRed(boolean aFlag)Sets whether this format shows negative values in red.voidsetNullString(java.lang.String aString)Sets the String that is substituted when this format is asked to provide stringForObjectValue(null).voidsetThousandsSeparator(java.lang.String aValue)Sets the thousands separator.RXElementtoXML(RXArchiver anArchiver)XML archival.- 
Methods inherited from class java.text.DecimalFormatapplyLocalizedPattern, 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.NumberFormatformat, format, getAvailableLocales, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, isGroupingUsed, isParseIntegerOnly, parse, parseObject, setParseIntegerOnly
 
- 
 
- 
- 
- 
Field Detail- 
PLAINpublic static RMNumberFormat PLAIN 
 - 
BASICpublic static RMNumberFormat BASIC 
 - 
DOLLARSpublic static RMNumberFormat DOLLARS 
 
- 
 - 
Constructor Detail- 
RMNumberFormatpublic RMNumberFormat() Creates an uninitialized number format.
 - 
RMNumberFormatpublic RMNumberFormat(java.lang.String aFormatString) Creates a number format for the given format string.
 - 
RMNumberFormatpublic RMNumberFormat(RMNumberFormat aFormat) Creates a number format identical to the given format.
 
- 
 - 
Method Detail- 
getNullStringpublic java.lang.String getNullString() Returns the String that is substituted when this format is asked to provide stringForObjectValue(null).
 - 
setNullStringpublic void setNullString(java.lang.String aString) Sets the String that is substituted when this format is asked to provide stringForObjectValue(null).
 - 
isNegativeInRedpublic boolean isNegativeInRed() Returns whether this format shows negative values in red.
 - 
setNegativeInRedpublic void setNegativeInRed(boolean aFlag) Sets whether this format shows negative values in red.
 - 
getThousandsSeparatorpublic java.lang.String getThousandsSeparator() Returns the thousands separator.
 - 
setThousandsSeparatorpublic void setThousandsSeparator(java.lang.String aValue) Sets the thousands separator.
 - 
getDecimalSeparatorpublic java.lang.String getDecimalSeparator() Returns the decimal separator.
 - 
setDecimalSeparatorpublic void setDecimalSeparator(java.lang.String aValue) Sets the decimal separator.
 - 
getFormatStringpublic java.lang.String 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:
- getFormatStringin interface- RMFormat
 
 - 
setFormatStringpublic void setFormatString(java.lang.String aFormat) 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:
- setFormatStringin interface- RMFormat
 
 - 
formatRMpublic java.lang.Object formatRM(java.lang.Object anObj) Returns a formatted version of the given object.
 - 
equalspublic boolean equals(java.lang.Object anObj) Standard equals implementation.- Overrides:
- equalsin class- java.text.DecimalFormat
 
 - 
toXMLpublic RXElement toXML(RXArchiver anArchiver) XML archival.
 - 
fromXMLpublic java.lang.Object fromXML(RXArchiver anArchiver, RXElement anElement) XML unarchival.
 - 
initWithArchiverpublic java.lang.Object initWithArchiver(RMArchiver anArchiver) Legacy archival.- Specified by:
- initWithArchiverin interface- RMArchiver.Archiving
 
 
- 
 
-