Package tech.units.indriya.format
Class LocalUnitFormat
- java.lang.Object
-
- tech.units.indriya.format.AbstractUnitFormat
-
- tech.units.indriya.format.LocalUnitFormat
-
- All Implemented Interfaces:
UnitFormat
public class LocalUnitFormat extends AbstractUnitFormat
This class represents the locale sensitive format.
Here is the grammar for CommonUnits in Extended Backus-Naur Form (EBNF)
Note that the grammar has been left-factored to be suitable for use by a top-down parser generator such as JavaCC
Lexical Entities: <sign> := "+" | "-" <digit> := "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" <superscript_digit> := "⁰" | "¹" | "²" | "³" | "⁴" | "⁵" | "⁶" | "⁷" | "⁸" | "⁹" <integer> := (<digit>)+ <number> := (<sign>)? (<digit>)* (".")? (<digit>)+ (("e" | "E") (<sign>)? (<digit>)+)? <exponent> := ( "^" ( <sign> )? <integer> )
| ( "^(" (<sign>)? <integer> ( "/" (<sign>)? <integer> )? ")" )
| ( <superscript_digit> )+<initial_char> := ? Any Unicode character excluding the following: ASCII control & whitespace (\u0000 - \u0020), decimal digits '0'-'9', '(' (\u0028), ')' (\u0029), '*' (\u002A), '+' (\u002B), '-' (\u002D), '.' (\u002E), '/' (\u005C), ':' (\u003A), '^' (\u005E), '²' (\u00B2), '³' (\u00B3), '·' (\u00B7), '¹' (\u00B9), '⁰' (\u2070), '⁴' (\u2074), '⁵' (\u2075), '⁶' (\u2076), '⁷' (\u2077), '⁸' (\u2078), '⁹' (\u2079) ? <unit_identifier> := <initial_char> ( <initial_char> | <digit> )* Non-Terminals: <unit_expr> := <mix_expr> <mix_expr> := <add_expr> ( ":" <add_expr> )* <add_expr> := ( <number> <sign> )? <mul_expr> ( <sign> <number> )? <mul_expr> := <exponent_expr> ( ( ( "*" | "·" ) <exponent_expr> ) | ( "/" <exponent_expr> ) )* <exponent_expr> := ( <atomic_expr> ( <exponent> )? )
| (<integer> "^" <atomic_expr>)
| ( ( "log" ( <integer> )? ) | "ln" ) "(" <add_expr> ")" )<atomic_expr> := <number>
| <unit_identifier>
| ( "(" <add_expr> ")" )- Since:
- 1.0
- Version:
- 1.6, October 4, 2024
- Author:
- Eric Russell, Werner Keil
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Appendableformat(Unit<?> unit, Appendable appendable)Formats the specified unit.static LocalUnitFormatgetInstance()Returns the instance for the current default locale (non-ascii characters are allowed)static LocalUnitFormatgetInstance(Locale locale)Returns an instance for the given locale.static LocalUnitFormatgetInstance(SymbolMap symbols)Returns an instance for the given symbol map.protected SymbolMapgetSymbols()Get the symbol map used by this instance to map betweenUnits andStrings, etc...booleanisLocaleSensitive()Unit<? extends Quantity<?>>parse(CharSequence csq)protected Unit<?>parse(CharSequence csq, int index)Parses a portion of the specifiedCharSequencefrom the specified position to produce a unit.Unit<?>parse(CharSequence csq, ParsePosition cursor)Parses a portion of the specifiedCharSequencefrom the specified position to produce a unit.StringtoString()-
Methods inherited from class tech.units.indriya.format.AbstractUnitFormat
format, label
-
-
-
-
Method Detail
-
getInstance
public static LocalUnitFormat getInstance()
Returns the instance for the current default locale (non-ascii characters are allowed)
-
getInstance
public static LocalUnitFormat getInstance(Locale locale)
Returns an instance for the given locale.- Parameters:
locale- the locale to use
-
getInstance
public static LocalUnitFormat getInstance(SymbolMap symbols)
Returns an instance for the given symbol map.
-
getSymbols
protected SymbolMap getSymbols()
Get the symbol map used by this instance to map betweenUnits andStrings, etc...- Returns:
- SymbolMap the current symbol map
-
format
public Appendable format(Unit<?> unit, Appendable appendable) throws IOException
Description copied from class:AbstractUnitFormatFormats the specified unit.- Specified by:
formatin interfaceUnitFormat- Specified by:
formatin classAbstractUnitFormat- 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.
-
isLocaleSensitive
public boolean isLocaleSensitive()
-
parse
protected Unit<?> parse(CharSequence csq, int index) throws MeasurementParseException
Description copied from class:AbstractUnitFormatParses a portion of the specifiedCharSequencefrom the specified position to produce a unit. If there is no unit to parseAbstractUnit.ONEis returned.- Specified by:
parsein classAbstractUnitFormat- Parameters:
csq- theCharSequenceto parse.index- the current parsing index.- Returns:
- the unit parsed from the specified character sub-sequence.
- Throws:
MeasurementParseException
-
parse
public Unit<?> parse(CharSequence csq, ParsePosition cursor) throws MeasurementParseException
Description copied from class:AbstractUnitFormatParses a portion of the specifiedCharSequencefrom the specified position to produce a unit. If there is no unit to parseAbstractUnit.ONEis returned.- Specified by:
parsein interfaceUnitFormat- Specified by:
parsein classAbstractUnitFormat- Parameters:
csq- theCharSequenceto parse.cursor- the cursor holding the current parsing index.- Returns:
- the unit parsed from the specified character sub-sequence.
- Throws:
MeasurementParseException
-
parse
public Unit<? extends Quantity<?>> parse(CharSequence csq) throws MeasurementParseException
- Throws:
MeasurementParseException
-
-