Class DecimalSymbols


  • public class DecimalSymbols
    extends java.lang.Object
    This 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).
    • 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 XPathException
        Set 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 XPathException
        Set 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 XPathException
        Set 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 XPathException
        Set 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 XPathException
        Set 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 XPathException
        Set 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 XPathException
        Set 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 XPathException
        Set 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 XPathException
        Set 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 XPathException
        Set 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 XPathException
        Set 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 XPathException
        Set the value of a property
        Parameters:
        key - the integer key of the property to be set
        value - 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 property
        value - the Unicode codepoint of the property value
      • 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:
        equals in class java.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:
        hashCode in class java.lang.Object