org.apache.commons.math3.fraction

## Class AbstractFormat

- java.lang.Object
- - java.text.Format
  - - java.text.NumberFormat
    - - org.apache.commons.math3.fraction.AbstractFormat

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable

Direct Known Subclasses:
  BigFractionFormat, FractionFormat

    public abstract class AbstractFormat
    extends java.text.NumberFormat
    implements java.io.Serializable

Common part shared by both `FractionFormat` and `BigFractionFormat`.

Since:
  2.0
Version:
  $Id: AbstractFormat.java 1416643 2012-12-03 19:37:14Z tn $
See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class java.text.NumberFormat

`java.text.NumberFormat.Field`

### Field Summary

Fields
`private java.text.NumberFormat` `denominatorFormat` The format used for the denominator.
`private java.text.NumberFormat` `numeratorFormat` The format used for the numerator.
`private static long` `serialVersionUID` Serializable version identifier.

### Fields inherited from class java.text.NumberFormat

`FRACTION_FIELD, INTEGER_FIELD`

### Constructor Summary

Constructors
`protected` `AbstractFormat()` Create an improper formatting instance with the default number format for the numerator and denominator.
`protected` `AbstractFormat(java.text.NumberFormat format)` Create an improper formatting instance with a custom number format for both the numerator and denominator.
`protected` `AbstractFormat(java.text.NumberFormat numeratorFormat, java.text.NumberFormat denominatorFormat)` Create an improper formatting instance with a custom number format for the numerator and a custom number format for the denominator.

### Method Summary

Methods
`java.lang.StringBuffer` `format(double value, java.lang.StringBuffer buffer, java.text.FieldPosition position)` Formats a double value as a fraction and appends the result to a StringBuffer.
`java.lang.StringBuffer` `format(long value, java.lang.StringBuffer buffer, java.text.FieldPosition position)` Formats a long value as a fraction and appends the result to a StringBuffer.
`protected static java.text.NumberFormat` `getDefaultNumberFormat()` Create a default number format.
`protected static java.text.NumberFormat` `getDefaultNumberFormat(java.util.Locale locale)` Create a default number format.
`java.text.NumberFormat` `getDenominatorFormat()` Access the denominator format.
`java.text.NumberFormat` `getNumeratorFormat()` Access the numerator format.
`protected static void` `parseAndIgnoreWhitespace(java.lang.String source, java.text.ParsePosition pos)` Parses `source` until a non-whitespace character is found.
`protected static char` `parseNextCharacter(java.lang.String source, java.text.ParsePosition pos)` Parses `source` until a non-whitespace character is found.
`void` `setDenominatorFormat(java.text.NumberFormat format)` Modify the denominator format.
`void` `setNumeratorFormat(java.text.NumberFormat format)` Modify the numerator format.

### Methods inherited from class java.text.NumberFormat

`clone, equals, format, format, format, getAvailableLocales, getCurrency, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getMaximumFractionDigits, getMaximumIntegerDigits, getMinimumFractionDigits, getMinimumIntegerDigits, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, getRoundingMode, hashCode, isGroupingUsed, isParseIntegerOnly, parse, parse, parseObject, setCurrency, setGroupingUsed, setMaximumFractionDigits, setMaximumIntegerDigits, setMinimumFractionDigits, setMinimumIntegerDigits, setParseIntegerOnly, setRoundingMode`

### Methods inherited from class java.text.Format

`format, formatToCharacterIterator, parseObject`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### serialVersionUID

    private static final long serialVersionUID

Serializable version identifier.

See Also:
  Constant Field Values

#### denominatorFormat

    private java.text.NumberFormat denominatorFormat

The format used for the denominator.

#### numeratorFormat

    private java.text.NumberFormat numeratorFormat

The format used for the numerator.

### Constructor Detail

#### AbstractFormat

    protected AbstractFormat()

Create an improper formatting instance with the default number format for the numerator and denominator.

#### AbstractFormat

    protected AbstractFormat(java.text.NumberFormat format)

Create an improper formatting instance with a custom number format for both the numerator and denominator.

Parameters:
  `format` - the custom format for both the numerator and denominator.

#### AbstractFormat

    protected AbstractFormat(java.text.NumberFormat numeratorFormat,
                  java.text.NumberFormat denominatorFormat)

Create an improper formatting instance with a custom number format for the numerator and a custom number format for the denominator.

Parameters:
  `numeratorFormat` - the custom format for the numerator.
  `denominatorFormat` - the custom format for the denominator.

### Method Detail

#### getDefaultNumberFormat

    protected static java.text.NumberFormat getDefaultNumberFormat()

Create a default number format. The default number format is based on `NumberFormat.getNumberInstance(java.util.Locale)`. The only customization is the maximum number of BigFraction digits, which is set to 0.

Returns:
  the default number format.

#### getDefaultNumberFormat

    protected static java.text.NumberFormat getDefaultNumberFormat(java.util.Locale locale)

Create a default number format. The default number format is based on `NumberFormat.getNumberInstance(java.util.Locale)`. The only customization is the maximum number of BigFraction digits, which is set to 0.

Parameters:
  `locale` - the specific locale used by the format.
Returns:
  the default number format specific to the given locale.

#### getDenominatorFormat

    public java.text.NumberFormat getDenominatorFormat()

Access the denominator format.

Returns:
  the denominator format.

#### getNumeratorFormat

    public java.text.NumberFormat getNumeratorFormat()

Access the numerator format.

Returns:
  the numerator format.

#### setDenominatorFormat

    public void setDenominatorFormat(java.text.NumberFormat format)

Modify the denominator format.

Parameters:
  `format` - the new denominator format value.
Throws:
  `NullArgumentException` - if `format` is `null`.

#### setNumeratorFormat

    public void setNumeratorFormat(java.text.NumberFormat format)

Modify the numerator format.

Parameters:
  `format` - the new numerator format value.
Throws:
  `NullArgumentException` - if `format` is `null`.

#### parseAndIgnoreWhitespace

    protected static void parseAndIgnoreWhitespace(java.lang.String source,
                                java.text.ParsePosition pos)

Parses `source` until a non-whitespace character is found.

Parameters:
  `source` - the string to parse
  `pos` - input/output parsing parameter. On output, `pos` holds the index of the next non-whitespace character.

#### parseNextCharacter

    protected static char parseNextCharacter(java.lang.String source,
                          java.text.ParsePosition pos)

Parses `source` until a non-whitespace character is found.

Parameters:
  `source` - the string to parse
  `pos` - input/output parsing parameter.
Returns:
  the first non-whitespace character.

#### format

    public java.lang.StringBuffer format(double value,
                                java.lang.StringBuffer buffer,
                                java.text.FieldPosition position)

Formats a double value as a fraction and appends the result to a StringBuffer.

Specified by:
  `format` in class `java.text.NumberFormat`
Parameters:
  `value` - the double value to format
  `buffer` - StringBuffer to append to
  `position` - On input: an alignment field, if desired. On output: the offsets of the alignment field
Returns:
  a reference to the appended buffer
See Also:
  `NumberFormat.format(Object, StringBuffer, FieldPosition)`

#### format

    public java.lang.StringBuffer format(long value,
                                java.lang.StringBuffer buffer,
                                java.text.FieldPosition position)

Formats a long value as a fraction and appends the result to a StringBuffer.

Specified by:
  `format` in class `java.text.NumberFormat`
Parameters:
  `value` - the long value to format
  `buffer` - StringBuffer to append to
  `position` - On input: an alignment field, if desired. On output: the offsets of the alignment field
Returns:
  a reference to the appended buffer
See Also:
  `NumberFormat.format(Object, StringBuffer, FieldPosition)`