Class AbstractUnitFormat

java.lang.Object
tech.units.indriya.format.AbstractUnitFormat
All Implemented Interfaces:
javax.measure.format.UnitFormat
Direct Known Subclasses:
EBNFUnitFormat, LocalUnitFormat, SimpleUnitFormat

public abstract class AbstractUnitFormat extends Object implements javax.measure.format.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. For example: AbstractUnit.parse("m°C").equals(MetricPrefix.MILLI(Units.CELSIUS)) AbstractUnit.parse("kW").equals(MetricPrefix.KILO(Units.WATT))

Since:
1.0
Version:
1.0.3, $Date: 2018-01-28 $
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    final String
    format(javax.measure.Unit<?> unit)
    Formats an object to produce a string.
    abstract Appendable
    format(javax.measure.Unit<?> unit, Appendable appendable)
    Formats the specified unit.
    (package private) final StringBuilder
    Convenience method equivalent to #format(AbstractUnit, Appendable) except it does not raise an IOException.
    protected abstract SymbolMap
    Returns the SymbolMap for this unit format.
    void
    label(javax.measure.Unit<?> unit, String label)
     
    protected abstract javax.measure.Unit<?>
    parse(CharSequence csq, int index)
    Parses a portion of the specified CharSequence from the specified position to produce a unit.
    protected abstract javax.measure.Unit<?>
    Parses a portion of the specified CharSequence from the specified position to produce a unit.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface javax.measure.format.UnitFormat

    isLocaleSensitive, parse
  • Constructor Details

    • AbstractUnitFormat

      public AbstractUnitFormat()
  • Method Details

    • getSymbols

      protected abstract SymbolMap getSymbols()
      Returns the SymbolMap for this unit format.
      Returns:
      the symbol map used by this format.
    • format

      public abstract Appendable format(javax.measure.Unit<?> unit, Appendable appendable) throws IOException
      Formats the specified unit.
      Specified by:
      format in interface javax.measure.format.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(javax.measure.Unit<?> unit)
      Formats an object to produce a string. This is equivalent to
      format(unit, new StringBuilder()).toString();
      Specified by:
      format in interface javax.measure.format.UnitFormat
      Parameters:
      obj - The object to format
      Returns:
      Formatted string.
      Throws:
      IllegalArgumentException - if the Format cannot format the given object
    • label

      public void label(javax.measure.Unit<?> unit, String label)
      Specified by:
      label in interface javax.measure.format.UnitFormat
    • parse

      protected abstract javax.measure.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.
      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 javax.measure.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).
    • format

      final StringBuilder format(AbstractUnit<?> unit, StringBuilder dest)
      Convenience method equivalent to #format(AbstractUnit, Appendable) except it does not raise an IOException.
      Parameters:
      unit - the unit to format.
      dest - the appendable destination.
      Returns:
      the specified StringBuilder.