## org.apache.commons.math.fraction
Class ProperFractionFormat

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

All Implemented Interfaces:
  java.io.Serializable, java.lang.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:
  $Revision: 811685 $ $Date: 2009-09-05 13:36:48 -0400 (Sat, 05 Sep 2009) $
See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class java.text.NumberFormat
`java.text.NumberFormat.Field`

Field Summary
`private static long` `serialVersionUID` Serializable version identifier
`private java.text.NumberFormat` `wholeFormat` The format used for the whole number.

Fields inherited from class org.apache.commons.math.fraction.AbstractFormat
`denominatorFormat, numeratorFormat`

Fields inherited from class java.text.NumberFormat
`FRACTION_FIELD, INTEGER_FIELD`

Constructor Summary
`ProperFractionFormat()` Create a proper formatting instance with the default number format for the whole, numerator, and denominator.
`ProperFractionFormat(java.text.NumberFormat format)` Create a proper formatting instance with a custom number format for the whole, numerator, and denominator.
`ProperFractionFormat(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
`java.lang.StringBuffer` `format(Fraction fraction, java.lang.StringBuffer toAppendTo, java.text.FieldPosition pos)` Formats a `Fraction` object to produce a string.
`java.text.NumberFormat` `getWholeFormat()` Access the whole format.
`Fraction` `parse(java.lang.String source, java.text.ParsePosition pos)` Parses a string to produce a `Fraction` object.
`void` `setWholeFormat(java.text.NumberFormat format)` Modify the whole format.

Methods inherited from class org.apache.commons.math.fraction.FractionFormat
`format, formatFraction, getAvailableLocales, getDefaultNumberFormat, getImproperInstance, getImproperInstance, getProperInstance, getProperInstance, parse`

Methods inherited from class org.apache.commons.math.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 java.text.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(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.

### ProperFractionFormat

    public ProperFractionFormat(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(Fraction fraction,
                                         java.lang.StringBuffer toAppendTo,
                                         java.text.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 java.text.NumberFormat getWholeFormat()

  Access the whole format.

  Returns:
    the whole format.

### parse

    public Fraction parse(java.lang.String source,
                          java.text.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(java.text.NumberFormat format)

  Modify the whole format.

  Parameters:
    `format` - The new whole format value.
  Throws:
    `java.lang.IllegalArgumentException` - if `format` is `null`.

Copyright (c) 2003-2011 Apache Software Foundation