Class AbstractUnitFormat

  • All Implemented Interfaces:
    UnitFormat
    Direct Known Subclasses:
    EBNFUnitFormat, LocalUnitFormat, SimpleUnitFormat

    public abstract class AbstractUnitFormat
    extends Object
    implements UnitFormat

    This class provides the interface for formatting and parsing units.

    For all metric units, the 20 SI prefixes used to form decimal multiples and sub-multiples of SI units are recognized.
    As well as the 8 Binary prefixes.
    For example: AbstractUnit.parse("m°C").equals(MetricPrefix.MILLI(Units.CELSIUS)) AbstractUnit.parse("kW").equals(MetricPrefix.KILO(Units.WATT))

    Since:
    1.0
    Version:
    2.0, $Date: 2020-03-02 $
    Author:
    Jean-Marie Dautelle, Werner Keil
    • Method Detail

      • format

        public abstract Appendable format​(Unit<?> unit,
                                          Appendable appendable)
                                   throws IOException
        Formats the specified unit.
        Specified by:
        format in interface UnitFormat
        Parameters:
        unit - the unit to format.
        appendable - the appendable destination.
        Returns:
        The appendable destination passed in as appendable, with formatted text appended.
        Throws:
        IOException - if an error occurs.
      • format

        public final String format​(Unit<?> unit)
        Formats an object to produce a string. This is equivalent to
        format(unit, new StringBuilder()).toString();
        Specified by:
        format in interface UnitFormat
        Parameters:
        obj - The object to format
        Returns:
        Formatted string.
        Throws:
        IllegalArgumentException - if the Format cannot format the given object
      • parse

        public abstract Unit<?> parse​(CharSequence csq,
                                      ParsePosition cursor)
                               throws IllegalArgumentException
        Parses a portion of the specified CharSequence from the specified position to produce a unit. If there is no unit to parse AbstractUnit.ONE is returned.
        Specified by:
        parse in interface UnitFormat
        Parameters:
        csq - the CharSequence to parse.
        cursor - the cursor holding the current parsing index.
        Returns:
        the unit parsed from the specified character sub-sequence.
        Throws:
        IllegalArgumentException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
      • parse

        protected abstract Unit<?> parse​(CharSequence csq,
                                         int index)
                                  throws IllegalArgumentException
        Parses a portion of the specified CharSequence from the specified position to produce a unit. If there is no unit to parse AbstractUnit.ONE is returned.
        Parameters:
        csq - the CharSequence to parse.
        index - the current parsing index.
        Returns:
        the unit parsed from the specified character sub-sequence.
        Throws:
        IllegalArgumentException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).