Package net.sf.saxon.trans
Class DecimalSymbols
- java.lang.Object
-
- net.sf.saxon.trans.DecimalSymbols
-
public class DecimalSymbols extends java.lang.ObjectThis class is modelled on Java's DecimalFormatSymbols, but it allows the use of any Unicode character to represent symbols such as the decimal point and the grouping separator, whereas DecimalFormatSymbols restricts these to a char (1-65535).
-
-
Field Summary
Fields Modifier and Type Field Description static intDECIMAL_SEPARATORstatic intDIGITstatic intEXPONENT_SEPARATORstatic intGROUPING_SEPARATORstatic intINFINITYstatic intMINUS_SIGNstatic intNANstatic intPATTERN_SEPARATORstatic intPER_MILLEstatic intPERCENTstatic java.lang.String[]propertyNamesstatic intZERO_DIGIT
-
Constructor Summary
Constructors Constructor Description DecimalSymbols(HostLanguage language, int languageLevel)Create a DecimalSymbols object with default values for all properties
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcheckConsistency(StructuredQName name)Check that no character is used in more than one rolebooleanequals(java.lang.Object obj)Test if two sets of decimal format symbols are the samevoidexport(StructuredQName name, ExpressionPresenter out)intgetDecimalSeparator()Get the decimal separator valueintgetDigit()Get the digit symbol valueintgetExponentSeparator()Get the exponent separator symbolintgetGroupingSeparator()Get the grouping separator valuejava.lang.StringgetInfinity()Get the infinity symbol valueintgetMinusSign()Get the minus sign valuejava.lang.StringgetNaN()Get the NaN symbol valueintgetPatternSeparator()Get the pattern separator valueintgetPercent()Get the percent symbol valueintgetPerMille()Get the per-mille symbol valueintgetZeroDigit()Get the zero digit symbol valueinthashCode()static booleanisValidZeroDigit(int zeroDigit)Check that the character declared as a zero-digit is indeed a valid zero-digitvoidsetDecimalSeparator(java.lang.String value)Set the character to be used as the decimal separatorvoidsetDigit(java.lang.String value)Set the character to be used as the digit symbol (default is '#')voidsetExponentSeparator(java.lang.String value)Set the character to be used as the exponent separatorvoidsetGroupingSeparator(java.lang.String value)Set the character to be used as the grouping separatorvoidsetHostLanguage(HostLanguage language, int languageLevel)voidsetInfinity(java.lang.String value)Set the string to be used to represent infinityvoidsetIntProperty(java.lang.String name, int value)Set one of the single-character properties.voidsetMinusSign(java.lang.String value)Set the character to be used as the minus signvoidsetNaN(java.lang.String value)Set the string to be used to represent NaNvoidsetPatternSeparator(java.lang.String value)Set the character to be used as the pattern separator (default ';')voidsetPercent(java.lang.String value)Set the character to be used as the percent signvoidsetPerMille(java.lang.String value)Set the character to be used as the per-mille signvoidsetProperty(int key, java.lang.String value, int precedence)Set the value of a propertyvoidsetZeroDigit(java.lang.String value)Set the character to be used as the zero digit (which determines the digit family used in the output)
-
-
-
Field Detail
-
DECIMAL_SEPARATOR
public static final int DECIMAL_SEPARATOR
- See Also:
- Constant Field Values
-
GROUPING_SEPARATOR
public static final int GROUPING_SEPARATOR
- See Also:
- Constant Field Values
-
DIGIT
public static final int DIGIT
- See Also:
- Constant Field Values
-
MINUS_SIGN
public static final int MINUS_SIGN
- See Also:
- Constant Field Values
-
PERCENT
public static final int PERCENT
- See Also:
- Constant Field Values
-
PER_MILLE
public static final int PER_MILLE
- See Also:
- Constant Field Values
-
ZERO_DIGIT
public static final int ZERO_DIGIT
- See Also:
- Constant Field Values
-
EXPONENT_SEPARATOR
public static final int EXPONENT_SEPARATOR
- See Also:
- Constant Field Values
-
PATTERN_SEPARATOR
public static final int PATTERN_SEPARATOR
- See Also:
- Constant Field Values
-
INFINITY
public static final int INFINITY
- See Also:
- Constant Field Values
-
NAN
public static final int NAN
- See Also:
- Constant Field Values
-
propertyNames
public static final java.lang.String[] propertyNames
-
-
Constructor Detail
-
DecimalSymbols
public DecimalSymbols(HostLanguage language, int languageLevel)
Create a DecimalSymbols object with default values for all properties
-
-
Method Detail
-
setHostLanguage
public void setHostLanguage(HostLanguage language, int languageLevel)
-
getDecimalSeparator
public int getDecimalSeparator()
Get the decimal separator value- Returns:
- the decimal separator value that has been explicitly set, or its default ('.')
-
getGroupingSeparator
public int getGroupingSeparator()
Get the grouping separator value- Returns:
- the grouping separator value that has been explicitly set, or its default (',')
-
getDigit
public int getDigit()
Get the digit symbol value- Returns:
- the digit symbol value that has been explicitly set, or its default ('#')
-
getMinusSign
public int getMinusSign()
Get the minus sign value- Returns:
- the minus sign value that has been explicitly set, or its default ('-')
-
getPercent
public int getPercent()
Get the percent symbol value- Returns:
- the percent symbol value that has been explicitly set, or its default ('%')
-
getPerMille
public int getPerMille()
Get the per-mille symbol value- Returns:
- the per-mille symbol value that has been explicitly set, or its default
-
getZeroDigit
public int getZeroDigit()
Get the zero digit symbol value- Returns:
- the zero digit symbol value that has been explicitly set, or its default ('0')
-
getExponentSeparator
public int getExponentSeparator()
Get the exponent separator symbol- Returns:
- the exponent separator character that has been explicitly set, or its default ('e');
-
getPatternSeparator
public int getPatternSeparator()
Get the pattern separator value- Returns:
- the pattern separator value that has been explicitly set, or its default (';')
-
getInfinity
public java.lang.String getInfinity()
Get the infinity symbol value- Returns:
- the infinity symbol value that has been explicitly set, or its default ('Infinity')
-
getNaN
public java.lang.String getNaN()
Get the NaN symbol value- Returns:
- the NaN symbol value that has been explicitly set, or its default ('NaN')
-
setDecimalSeparator
public void setDecimalSeparator(java.lang.String value) throws XPathExceptionSet the character to be used as the decimal separator- Parameters:
value- the character to be used- Throws:
XPathException- if the value is not a single Unicode character (a surrogate pair is permitted)
-
setGroupingSeparator
public void setGroupingSeparator(java.lang.String value) throws XPathExceptionSet the character to be used as the grouping separator- Parameters:
value- the character to be used- Throws:
XPathException- if the value is not a single Unicode character (a surrogate pair is permitted)
-
setDigit
public void setDigit(java.lang.String value) throws XPathExceptionSet the character to be used as the digit symbol (default is '#')- Parameters:
value- the character to be used- Throws:
XPathException- if the value is not a single Unicode character (a surrogate pair is permitted)
-
setMinusSign
public void setMinusSign(java.lang.String value) throws XPathExceptionSet the character to be used as the minus sign- Parameters:
value- the character to be used- Throws:
XPathException- if the value is not a single Unicode character (a surrogate pair is permitted)
-
setPercent
public void setPercent(java.lang.String value) throws XPathExceptionSet the character to be used as the percent sign- Parameters:
value- the character to be used- Throws:
XPathException- if the value is not a single Unicode character (a surrogate pair is permitted)
-
setPerMille
public void setPerMille(java.lang.String value) throws XPathExceptionSet the character to be used as the per-mille sign- Parameters:
value- the character to be used- Throws:
XPathException- if the value is not a single Unicode character (a surrogate pair is permitted)
-
setZeroDigit
public void setZeroDigit(java.lang.String value) throws XPathExceptionSet the character to be used as the zero digit (which determines the digit family used in the output)- Parameters:
value- the character to be used- Throws:
XPathException- if the value is not a single Unicode character (a surrogate pair is permitted), or if it is not a character classified in Unicode as a digit with numeric value zero
-
setExponentSeparator
public void setExponentSeparator(java.lang.String value) throws XPathExceptionSet the character to be used as the exponent separator- Parameters:
value- the character to be used- Throws:
XPathException- if the value is not a single Unicode character (a surrogate pair is permitted)
-
setPatternSeparator
public void setPatternSeparator(java.lang.String value) throws XPathExceptionSet the character to be used as the pattern separator (default ';')- Parameters:
value- the character to be used- Throws:
XPathException- if the value is not a single Unicode character (a surrogate pair is permitted)
-
setInfinity
public void setInfinity(java.lang.String value) throws XPathExceptionSet the string to be used to represent infinity- Parameters:
value- the string to be used- Throws:
XPathException- - should not happen
-
setNaN
public void setNaN(java.lang.String value) throws XPathExceptionSet the string to be used to represent NaN- Parameters:
value- the string to be used- Throws:
XPathException- - should not happen
-
setProperty
public void setProperty(int key, java.lang.String value, int precedence) throws XPathExceptionSet the value of a property- Parameters:
key- the integer key of the property to be setvalue- the value of the property as a string (in many cases, this must be a single character)precedence- the precedence of the property value- Throws:
XPathException- if the property is invalid. This method does not check the consistency of different properties. If two different values are supplied for the same property at the same precedence, the method does not complain, but notes the fact, and if the inconsistency is not subsequently cleared by supplying another value at a higher precedence, the error is reported when the checkConsistency() method is subsequently called.
-
setIntProperty
public void setIntProperty(java.lang.String name, int value)Set one of the single-character properties. Used when reloading an exported package- Parameters:
name- the name of the propertyvalue- the Unicode codepoint of the property value
-
export
public void export(StructuredQName name, ExpressionPresenter out)
-
checkConsistency
public void checkConsistency(StructuredQName name) throws XPathException
Check that no character is used in more than one role- Parameters:
name- the name of the decimal format (null for the unnamed decimal format)- Throws:
XPathException- if the same character is used in conflicting rules, for example as decimal separator and also as grouping separator
-
isValidZeroDigit
public static boolean isValidZeroDigit(int zeroDigit)
Check that the character declared as a zero-digit is indeed a valid zero-digit- Parameters:
zeroDigit- the value to be checked- Returns:
- false if it is not a valid zero-digit
-
equals
public boolean equals(java.lang.Object obj)
Test if two sets of decimal format symbols are the same- Overrides:
equalsin classjava.lang.Object- Parameters:
obj- the other set of symbols- Returns:
- true if the same characters/strings are assigned to each role in both sets of symbols. The precedences are not compared.
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
-