Class AbstractUnitFormat

  • All Implemented Interfaces:
    javax.measure.format.UnitFormat
    Direct Known Subclasses:
    EBNFUnitFormat, LocalUnitFormat, SimpleUnitFormat

    public abstract class AbstractUnitFormat
    extends java.lang.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 $
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String format​(javax.measure.Unit<?> unit)
      Formats an object to produce a string.
      abstract java.lang.Appendable format​(javax.measure.Unit<?> unit, java.lang.Appendable appendable)
      Formats the specified unit.
      (package private) java.lang.StringBuilder format​(AbstractUnit<?> unit, java.lang.StringBuilder dest)
      Convenience method equivalent to #format(AbstractUnit, Appendable) except it does not raise an IOException.
      protected abstract SymbolMap getSymbols()
      Returns the SymbolMap for this unit format.
      void label​(javax.measure.Unit<?> unit, java.lang.String label)  
      protected abstract javax.measure.Unit<?> parse​(java.lang.CharSequence csq, int index)
      Parses a portion of the specified CharSequence from the specified position to produce a unit.
      protected abstract javax.measure.Unit<?> parse​(java.lang.CharSequence csq, java.text.ParsePosition cursor)
      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 Detail

      • AbstractUnitFormat

        public AbstractUnitFormat()
    • Method Detail

      • getSymbols

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

        public abstract java.lang.Appendable format​(javax.measure.Unit<?> unit,
                                                    java.lang.Appendable appendable)
                                             throws java.io.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:
        java.io.IOException - if an error occurs.
      • format

        public final java.lang.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:
        java.lang.IllegalArgumentException - if the Format cannot format the given object
      • label

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

        protected abstract javax.measure.Unit<?> parse​(java.lang.CharSequence csq,
                                                       java.text.ParsePosition cursor)
                                                throws java.lang.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:
        java.lang.IllegalArgumentException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
      • parse

        protected abstract javax.measure.Unit<?> parse​(java.lang.CharSequence csq,
                                                       int index)
                                                throws java.lang.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:
        java.lang.IllegalArgumentException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
      • format

        final java.lang.StringBuilder format​(AbstractUnit<?> unit,
                                             java.lang.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.