Package tech.units.indriya.format
Class SimpleUnitFormat.DefaultFormat
java.lang.Object
tech.units.indriya.format.AbstractUnitFormat
tech.units.indriya.format.SimpleUnitFormat
tech.units.indriya.format.SimpleUnitFormat.DefaultFormat
- All Implemented Interfaces:
javax.measure.format.UnitFormat
- Direct Known Subclasses:
SimpleUnitFormat.ASCIIFormat
- Enclosing class:
- SimpleUnitFormat
This class represents the standard format.
-
Nested Class Summary
Nested classes/interfaces inherited from class tech.units.indriya.format.SimpleUnitFormat
SimpleUnitFormat.ASCIIFormat, SimpleUnitFormat.DefaultFormat, SimpleUnitFormat.Flavor
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
Holds the name to unit mapping.private static final int
private static final int
Holds the unit to name mapping. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Attaches a system-wide alias to this unit.private void
append
(Appendable appendable, CharSequence symbol, int pow, int root) private void
check
(boolean expr, String message, CharSequence csq, int index) format
(javax.measure.Unit<?> unit, Appendable appendable) Formats the specified unit.protected SymbolMap
Returns theSymbolMap
for this unit format.boolean
protected static boolean
isUnitIdentifierPart
(char ch) boolean
isValidIdentifier
(String name) Indicates if the specified name can be used as unit identifier.void
Attaches a system-wide label to the specified unit.protected String
nameFor
(javax.measure.Unit<?> unit) private int
nextToken
(CharSequence csq, ParsePosition pos) javax.measure.Unit<?>
parse
(CharSequence csq) protected javax.measure.Unit<?>
parse
(CharSequence csq, int index) Parses a portion of the specifiedCharSequence
from the specified position to produce a unit.protected javax.measure.Unit<?>
parse
(CharSequence csq, ParsePosition cursor) Parses a portion of the specifiedCharSequence
from the specified position to produce a unit.javax.measure.Unit<? extends javax.measure.Quantity>
parseProductUnit
(CharSequence csq, ParsePosition pos) Parses a sequence of character to produce a unit or a rational product of unit.javax.measure.Unit<? extends javax.measure.Quantity>
parseSingleUnit
(CharSequence csq, ParsePosition pos) Parses a sequence of character to produce a single unit.protected String
prefixFor
(javax.measure.UnitConverter converter) private double
readDouble
(CharSequence csq, ParsePosition pos) private SimpleUnitFormat.Exponent
readExponent
(CharSequence csq, ParsePosition pos) private String
readIdentifier
(CharSequence csq, ParsePosition pos) private long
readLong
(CharSequence csq, ParsePosition pos) protected javax.measure.Unit<?>
Methods inherited from class tech.units.indriya.format.SimpleUnitFormat
format, getInstance, getInstance, isAllASCII, parseObject
Methods inherited from class tech.units.indriya.format.AbstractUnitFormat
format, format
-
Field Details
-
EOF
private static final int EOF- See Also:
-
IDENTIFIER
private static final int IDENTIFIER- See Also:
-
OPEN_PAREN
private static final int OPEN_PAREN- See Also:
-
CLOSE_PAREN
private static final int CLOSE_PAREN- See Also:
-
EXPONENT
private static final int EXPONENT- See Also:
-
MULTIPLY
private static final int MULTIPLY- See Also:
-
DIVIDE
private static final int DIVIDE- See Also:
-
PLUS
private static final int PLUS- See Also:
-
INTEGER
private static final int INTEGER- See Also:
-
FLOAT
private static final int FLOAT- See Also:
-
nameToUnit
Holds the name to unit mapping. -
unitToName
Holds the unit to name mapping.
-
-
Constructor Details
-
DefaultFormat
protected DefaultFormat()
-
-
Method Details
-
label
Description copied from class:SimpleUnitFormat
Attaches a system-wide label to the specified unit. For example:SimpleUnitFormat.getInstance().label(DAY.multiply(365), "year"); SimpleUnitFormat.getInstance().label(METER.multiply(0.3048), "ft");
If the specified label is already associated to an unit the previous association is discarded or ignored.- Specified by:
label
in interfacejavax.measure.format.UnitFormat
- Specified by:
label
in classSimpleUnitFormat
- Parameters:
unit
- the unit being labeled.label
- the new label for this unit.
-
alias
Description copied from class:SimpleUnitFormat
Attaches a system-wide alias to this unit. Multiple aliases may be attached to the same unit. Aliases are used during parsing to recognize different variants of the same unit. For example:SimpleUnitFormat.getInstance().alias(METER.multiply(0.3048), "foot"); SimpleUnitFormat.getInstance().alias(METER.multiply(0.3048), "feet"); SimpleUnitFormat.getInstance().alias(METER, "meter"); SimpleUnitFormat.getInstance().alias(METER, "metre");
If the specified label is already associated to an unit the previous association is discarded or ignored.- Specified by:
alias
in classSimpleUnitFormat
- Parameters:
unit
- the unit being aliased.alias
- the alias attached to this unit.
-
isValidIdentifier
Description copied from class:SimpleUnitFormat
Indicates if the specified name can be used as unit identifier.- Specified by:
isValidIdentifier
in classSimpleUnitFormat
- Parameters:
name
- the identifier to be tested.- Returns:
true
if the name specified can be used as label or alias for this format;false
otherwise.
-
isUnitIdentifierPart
protected static boolean isUnitIdentifierPart(char ch) -
nameFor
-
prefixFor
-
unitFor
-
parseSingleUnit
public javax.measure.Unit<? extends javax.measure.Quantity> parseSingleUnit(CharSequence csq, ParsePosition pos) throws javax.measure.format.ParserException Description copied from class:SimpleUnitFormat
Parses a sequence of character to produce a single unit.- Specified by:
parseSingleUnit
in classSimpleUnitFormat
- Parameters:
csq
- theCharSequence
to parse.pos
- an object holding the parsing index and error position.- Returns:
- an
Unit
parsed from the character sequence. - Throws:
javax.measure.format.ParserException
-
parseProductUnit
public javax.measure.Unit<? extends javax.measure.Quantity> parseProductUnit(CharSequence csq, ParsePosition pos) throws javax.measure.format.ParserException Description copied from class:SimpleUnitFormat
Parses a sequence of character to produce a unit or a rational product of unit.- Specified by:
parseProductUnit
in classSimpleUnitFormat
- Parameters:
csq
- theCharSequence
to parse.pos
- an object holding the parsing index and error position.- Returns:
- an
Unit
parsed from the character sequence. - Throws:
javax.measure.format.ParserException
-
nextToken
-
check
private void check(boolean expr, String message, CharSequence csq, int index) throws javax.measure.format.ParserException - Throws:
javax.measure.format.ParserException
-
readExponent
-
readLong
-
readDouble
-
readIdentifier
-
format
Description copied from class:SimpleUnitFormat
Formats the specified unit.- Specified by:
format
in interfacejavax.measure.format.UnitFormat
- Specified by:
format
in classSimpleUnitFormat
- 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.
-
append
private void append(Appendable appendable, CharSequence symbol, int pow, int root) throws IOException - Throws:
IOException
-
parse
- Throws:
javax.measure.format.ParserException
-
getSymbols
Description copied from class:AbstractUnitFormat
Returns theSymbolMap
for this unit format.- Specified by:
getSymbols
in classAbstractUnitFormat
- Returns:
- the symbol map used by this format.
-
parse
Description copied from class:AbstractUnitFormat
Parses a portion of the specifiedCharSequence
from the specified position to produce a unit. If there is no unit to parseAbstractUnit.ONE
is returned.- Specified by:
parse
in classAbstractUnitFormat
- Parameters:
csq
- theCharSequence
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).
-
parse
protected javax.measure.Unit<?> parse(CharSequence csq, ParsePosition cursor) throws IllegalArgumentException Description copied from class:AbstractUnitFormat
Parses a portion of the specifiedCharSequence
from the specified position to produce a unit. If there is no unit to parseAbstractUnit.ONE
is returned.- Specified by:
parse
in classAbstractUnitFormat
- Parameters:
csq
- theCharSequence
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).
-
isLocaleSensitive
public boolean isLocaleSensitive()
-