org.apache.commons.math3.fraction

## Class ProperBigFractionFormat

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

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

    public class ProperBigFractionFormat
    extends BigFractionFormat

Formats a BigFraction number in proper format. The number format for each of the whole number, numerator and, denominator can be configured.

Minus signs are only allowed in the whole number part - i.e., "-3 1/2" is legitimate and denotes -7/2, but "-3 -1/2" is invalid and will result in a `ParseException`.

Since:
  1.1
Version:
  $Id: ProperBigFractionFormat.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 static long` `serialVersionUID` Serializable version identifier
`private java.text.NumberFormat` `wholeFormat` The format used for the whole number.

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

`FRACTION_FIELD, INTEGER_FIELD`

### Constructor Summary

Constructors
Constructor and Description
`ProperBigFractionFormat()` Create a proper formatting instance with the default number format for the whole, numerator, and denominator.
`ProperBigFractionFormat(java.text.NumberFormat format)` Create a proper formatting instance with a custom number format for the whole, numerator, and denominator.
`ProperBigFractionFormat(java.text.NumberFormat wholeFormat, java.text.NumberFormat numeratorFormat, java.text.NumberFormat denominatorFormat)` Create a proper formatting instance with a custom number format for each of the whole, numerator, and denominator.

### Method Summary

Methods
`java.lang.StringBuffer` `format(BigFraction fraction, java.lang.StringBuffer toAppendTo, java.text.FieldPosition pos)` Formats a `BigFraction` object to produce a string.
`java.text.NumberFormat` `getWholeFormat()` Access the whole format.
`BigFraction` `parse(java.lang.String source, java.text.ParsePosition pos)` Parses a string to produce a `BigFraction` object.
`void` `setWholeFormat(java.text.NumberFormat format)` Modify the whole format.

### Methods inherited from class org.apache.commons.math3.fraction.BigFractionFormat

`format, formatBigFraction, getAvailableLocales, getImproperInstance, getImproperInstance, getProperInstance, getProperInstance, parse, parseNextBigInteger`

### Methods inherited from class org.apache.commons.math3.fraction.AbstractFormat

`format, format, getDefaultNumberFormat, getDefaultNumberFormat, getDenominatorFormat, getNumeratorFormat, parseAndIgnoreWhitespace, parseNextCharacter, setDenominatorFormat, setNumeratorFormat`

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

`clone, equals, format, format, getCurrency, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getMaximumFractionDigits, getMaximumIntegerDigits, getMinimumFractionDigits, getMinimumIntegerDigits, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, getRoundingMode, hashCode, isGroupingUsed, isParseIntegerOnly, 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

#### wholeFormat

    private java.text.NumberFormat wholeFormat

The format used for the whole number.

### Constructor Detail

#### ProperBigFractionFormat

    public ProperBigFractionFormat()

Create a proper formatting instance with the default number format for the whole, numerator, and denominator.

#### ProperBigFractionFormat

    public ProperBigFractionFormat(java.text.NumberFormat format)

Create a proper formatting instance with a custom number format for the whole, numerator, and denominator.

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

#### ProperBigFractionFormat

    public ProperBigFractionFormat(java.text.NumberFormat wholeFormat,
                           java.text.NumberFormat numeratorFormat,
                           java.text.NumberFormat denominatorFormat)

Create a proper formatting instance with a custom number format for each of the whole, numerator, and denominator.

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

### Method Detail

#### format

    public java.lang.StringBuffer format(BigFraction fraction,
                                java.lang.StringBuffer toAppendTo,
                                java.text.FieldPosition pos)

Formats a `BigFraction` object to produce a string. The BigFraction is output in proper format.

Overrides:
  `format` in class `BigFractionFormat`
Parameters:
  `fraction` - the object to format.
  `toAppendTo` - where the text is to be appended
  `pos` - On input: an alignment field, if desired. On output: the offsets of the alignment field
Returns:
  the value passed in as toAppendTo.

#### getWholeFormat

    public java.text.NumberFormat getWholeFormat()

Access the whole format.

Returns:
  the whole format.

#### parse

    public BigFraction parse(java.lang.String source,
                    java.text.ParsePosition pos)

Parses a string to produce a `BigFraction` object. This method expects the string to be formatted as a proper BigFraction.

Minus signs are only allowed in the whole number part - i.e., "-3 1/2" is legitimate and denotes -7/2, but "-3 -1/2" is invalid and will result in a `ParseException`.

Overrides:
  `parse` in class `BigFractionFormat`
Parameters:
  `source` - the string to parse
  `pos` - input/ouput parsing parameter.
Returns:
  the parsed `BigFraction` object.

#### setWholeFormat

    public void setWholeFormat(java.text.NumberFormat format)

Modify the whole format.

Parameters:
  `format` - The new whole format value.
Throws:
  `NullArgumentException` - if `format` is `null`.