Class 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.

See Also:
  • Constructor Details

    • 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.
      Throws:
      NullArgumentException - if the provided format is null.
    • 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.
      Throws:
      NullArgumentException - if either provided format is null.
  • Method Details

    • 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.
    • getDefaultNumberFormat

      protected static NumberFormat getDefaultNumberFormat(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 NumberFormat getDenominatorFormat()
      Access the denominator format.
      Returns:
      the denominator format.
    • getNumeratorFormat

      public NumberFormat getNumeratorFormat()
      Access the numerator format.
      Returns:
      the numerator format.
    • parseAndIgnoreWhitespace

      protected static void parseAndIgnoreWhitespace(String source, 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(String source, 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 StringBuffer format(double value, StringBuffer buffer, FieldPosition position)
      Formats a double value as a fraction and appends the result to a StringBuffer.
      Specified by:
      format in class 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:
    • format

      public StringBuffer format(long value, StringBuffer buffer, FieldPosition position)
      Formats a long value as a fraction and appends the result to a StringBuffer.
      Specified by:
      format in class 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: