org.apache.commons.math3.fraction

## Class ProperFractionFormat

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

All Implemented Interfaces:
  Serializable, Cloneable

    public class ProperFractionFormat
    extends FractionFormat

Formats a Fraction 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: ProperFractionFormat.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

`NumberFormat.Field`

### Field Summary

Fields
`private static long` `serialVersionUID` Serializable version identifier
`private 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
`ProperFractionFormat()` Create a proper formatting instance with the default number format for the whole, numerator, and denominator.
`ProperFractionFormat(NumberFormat format)` Create a proper formatting instance with a custom number format for the whole, numerator, and denominator.
`ProperFractionFormat(NumberFormat wholeFormat, NumberFormat numeratorFormat, NumberFormat denominatorFormat)` Create a proper formatting instance with a custom number format for each of the whole, numerator, and denominator.

### Method Summary

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

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

`format, formatFraction, getAvailableLocales, getDefaultNumberFormat, getImproperInstance, getImproperInstance, getProperInstance, getProperInstance, parse`

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

`format, format, 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 NumberFormat wholeFormat

The format used for the whole number.

### Constructor Detail

#### ProperFractionFormat

    public ProperFractionFormat()

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

#### ProperFractionFormat

    public ProperFractionFormat(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.

#### ProperFractionFormat

    public ProperFractionFormat(NumberFormat wholeFormat,
                        NumberFormat numeratorFormat,
                        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 StringBuffer format(Fraction fraction,
                      StringBuffer toAppendTo,
                      FieldPosition pos)

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

Overrides:
  `format` in class `FractionFormat`
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 NumberFormat getWholeFormat()

Access the whole format.

Returns:
  the whole format.

#### parse

    public Fraction parse(String source,
                 ParsePosition pos)

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

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 `FractionFormat`
Parameters:
  `source` - the string to parse
  `pos` - input/ouput parsing parameter.
Returns:
  the parsed `Fraction` object.

#### setWholeFormat

    public void setWholeFormat(NumberFormat format)

Modify the whole format.

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