19f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/*
29f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Licensed to the Apache Software Foundation (ASF) under one
39f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * or more contributor license agreements. See the NOTICE file
49f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * distributed with this work for additional information
59f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * regarding copyright ownership. The ASF licenses this file
69f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * to you under the Apache License, Version 2.0 (the  "License");
79f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * you may not use this file except in compliance with the License.
89f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * You may obtain a copy of the License at
99f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *
109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *     http://www.apache.org/licenses/LICENSE-2.0
119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *
129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Unless required by applicable law or agreed to in writing, software
139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS,
149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * See the License for the specific language governing permissions and
169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * limitations under the License.
179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */
189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/*
199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * $Id: DecimalFormatProperties.java 468643 2006-10-28 06:56:03Z minchau $
209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */
219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonpackage org.apache.xalan.templates;
229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport java.text.DecimalFormatSymbols;
249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.apache.xml.utils.QName;
269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/**
289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Implement xsl:decimal-format.
299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <pre>
309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <!ELEMENT xsl:decimal-format EMPTY>
319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <!ATTLIST xsl:decimal-format
329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *   name %qname; #IMPLIED
339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *   decimal-separator %char; "."
349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *   grouping-separator %char; ","
359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *   infinity CDATA "Infinity"
369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *   minus-sign %char; "-"
379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *   NaN CDATA "NaN"
389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *   percent %char; "%"
399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *   per-mille %char; "&#x2030;"
409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *   zero-digit %char; "0"
419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *   digit %char; "#"
429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *   pattern-separator %char; ";"
439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * >
449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * </pre>
459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#format-number">format-number in XSLT Specification</a>
469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @xsl.usage advanced
479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */
489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonpublic class DecimalFormatProperties extends ElemTemplateElement
499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson{
509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    static final long serialVersionUID = -6559409339256269446L;
519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /** An instance of DecimalFormatSymbols for this element.
539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *  @serial       */
549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  DecimalFormatSymbols m_dfs;
559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Constructor DecimalFormatProperties
589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public DecimalFormatProperties(int docOrderNumber)
619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_dfs = new java.text.DecimalFormatSymbols();
649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    // Set default values, they can be overiden if necessary.
669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_dfs.setInfinity(Constants.ATTRVAL_INFINITY);
679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_dfs.setNaN(Constants.ATTRVAL_NAN);
689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_docOrderNumber = docOrderNumber;
709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Return the decimal format Symbols for this element.
749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * <p>The xsl:decimal-format element declares a decimal-format,
759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * which controls the interpretation of a format pattern used by
769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * the format-number function. If there is a name attribute, then
779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * the element declares a named decimal-format; otherwise, it
789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * declares the default decimal-format. The value of the name
799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * attribute is a QName, which is expanded as described in [2.4 Qualified Names].
809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * It is an error to declare either the default decimal-format or a
819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * decimal-format with a given name more than once (even with different
829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * import precedence), unless it is declared every time with the same
839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * value for all attributes (taking into account any default values).</p>
849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * <p>The other attributes on xsl:decimal-format correspond to the
859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * methods on the JDK 1.1 DecimalFormatSymbols class. For each get/set
869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * method pair there is an attribute defined for the xsl:decimal-format
879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * element.</p>
889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return the decimal format Symbols for this element.
909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public DecimalFormatSymbols getDecimalFormatSymbols()
929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    return m_dfs;
949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * If there is a name attribute, then the element declares a named
989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * decimal-format; otherwise, it declares the default decimal-format.
999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @serial
1009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
1019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  private QName m_qname = null;
1029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
1039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
1049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Set the "name" attribute.
1059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * If there is a name attribute, then the element declares a named
1069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * decimal-format; otherwise, it declares the default decimal-format.
1079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
1089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @param qname The name to set as the "name" attribute.
1099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
1109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public void setName(QName qname)
1119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
1129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_qname = qname;
1139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
1149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
1159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
1169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Get the "name" attribute.
1179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * If there is a name attribute, then the element declares a named
1189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * decimal-format; otherwise, it declares the default decimal-format.
1199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
1209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return the value of the "name" attribute.
1219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
1229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public QName getName()
1239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
1249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
1259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    if (m_qname == null)
1269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson      return new QName("");
1279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    else
1289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson      return m_qname;
1299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
1309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
1319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
1329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Set the "decimal-separator" attribute.
1339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * decimal-separator specifies the character used for the decimal sign;
1349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * the default value is the period character (.).
1359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
1369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @param ds Character to set as decimal separator
1379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
1389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public void setDecimalSeparator(char ds)
1399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
1409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_dfs.setDecimalSeparator(ds);
1419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
1429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
1439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
1449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Get the "decimal-separator" attribute.
1459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * decimal-separator specifies the character used for the decimal sign;
1469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * the default value is the period character (.).
1479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
1489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return the character to use as decimal separator
1499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
1509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public char getDecimalSeparator()
1519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
1529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    return m_dfs.getDecimalSeparator();
1539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
1549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
1559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
1569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Set the "grouping-separator" attribute.
1579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * grouping-separator specifies the character used as a grouping
1589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * (e.g. thousands) separator; the default value is the comma character (,).
1599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
1609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @param gs Character to use a grouping separator
1619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
1629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public void setGroupingSeparator(char gs)
1639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
1649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_dfs.setGroupingSeparator(gs);
1659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
1669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
1679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
1689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Get the "grouping-separator" attribute.
1699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * grouping-separator specifies the character used as a grouping
1709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * (e.g. thousands) separator; the default value is the comma character (,).
1719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
1729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return Character to use a grouping separator
1739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
1749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public char getGroupingSeparator()
1759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
1769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    return m_dfs.getGroupingSeparator();
1779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
1789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
1799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
1809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Set the "infinity" attribute.
1819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * infinity specifies the string used to represent infinity;
1829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * the default value is the string Infinity.
1839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
1849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @param inf String to use as the "infinity" attribute.
1859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
1869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public void setInfinity(String inf)
1879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
1889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_dfs.setInfinity(inf);
1899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
1909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
1919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
1929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Get the "infinity" attribute.
1939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * infinity specifies the string used to represent infinity;
1949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * the default value is the string Infinity.
1959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
1969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return String to use as the "infinity" attribute.
1979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
1989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public String getInfinity()
1999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
2009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    return m_dfs.getInfinity();
2019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
2029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
2039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
2049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Set the "minus-sign" attribute.
2059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * minus-sign specifies the character used as the default minus sign; the
2069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * default value is the hyphen-minus character (-, #x2D).
2079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
2089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @param v Character to use as minus sign
2099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
2109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public void setMinusSign(char v)
2119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
2129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_dfs.setMinusSign(v);
2139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
2149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
2159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
2169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Get the "minus-sign" attribute.
2179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * minus-sign specifies the character used as the default minus sign; the
2189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * default value is the hyphen-minus character (-, #x2D).
2199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
2209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return Character to use as minus sign
2219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
2229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public char getMinusSign()
2239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
2249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    return m_dfs.getMinusSign();
2259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
2269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
2279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
2289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Set the "NaN" attribute.
2299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * NaN specifies the string used to represent the NaN value;
2309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * the default value is the string NaN.
2319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
2329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @param v String to use as the "NaN" attribute.
2339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
2349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public void setNaN(String v)
2359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
2369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_dfs.setNaN(v);
2379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
2389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
2399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
2409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Get the "NaN" attribute.
2419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * NaN specifies the string used to represent the NaN value;
2429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * the default value is the string NaN.
2439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
2449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return String to use as the "NaN" attribute.
2459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
2469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public String getNaN()
2479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
2489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    return m_dfs.getNaN();
2499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
2509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
2519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
2529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Return the node name.
2539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
2549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return the element's name
2559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
2569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public String getNodeName()
2579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
2589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    return Constants.ELEMNAME_DECIMALFORMAT_STRING;
2599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
2609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
2619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
2629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Set the "percent" attribute.
2639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * percent specifies the character used as a percent sign; the default
2649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * value is the percent character (%).
2659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
2669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @param v Character to use as percent
2679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
2689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public void setPercent(char v)
2699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
2709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_dfs.setPercent(v);
2719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
2729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
2739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
2749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Get the "percent" attribute.
2759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * percent specifies the character used as a percent sign; the default
2769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * value is the percent character (%).
2779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
2789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return Character to use as percent
2799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
2809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public char getPercent()
2819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
2829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    return m_dfs.getPercent();
2839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
2849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
2859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
2869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Set the "per-mille" attribute.
2879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * per-mille specifies the character used as a per mille sign; the default
2889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * value is the Unicode per-mille character (#x2030).
2899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
2909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @param v Character to use as per-mille
2919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
2929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public void setPerMille(char v)
2939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
2949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_dfs.setPerMill(v);
2959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
2969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
2979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
2989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Get the "per-mille" attribute.
2999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * per-mille specifies the character used as a per mille sign; the default
3009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * value is the Unicode per-mille character (#x2030).
3019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
3029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return Character to use as per-mille
3039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
3049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public char getPerMille()
3059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
3069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    return m_dfs.getPerMill();
3079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
3089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
3099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
3109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Get an int constant identifying the type of element.
3119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @see org.apache.xalan.templates.Constants
3129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
3139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return The token ID for this element
3149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
3159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public int getXSLToken()
3169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
3179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    return Constants.ELEMNAME_DECIMALFORMAT;
3189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
3199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
3209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
3219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Set the "zero-digit" attribute.
3229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * zero-digit specifies the character used as the digit zero; the default
3239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * value is the digit zero (0).
3249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
3259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @param v Character to use as the digit zero
3269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
3279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public void setZeroDigit(char v)
3289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
3299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_dfs.setZeroDigit(v);
3309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
3319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
3329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
3339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Get the "zero-digit" attribute.
3349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * zero-digit specifies the character used as the digit zero; the default
3359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * value is the digit zero (0).
3369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
3379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return Character to use as the digit zero
3389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
3399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public char getZeroDigit()
3409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
3419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    return m_dfs.getZeroDigit();
3429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
3439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
3449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
3459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Set the "digit" attribute.
3469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * digit specifies the character used for a digit in the format pattern;
3479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * the default value is the number sign character (#).
3489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
3499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @param v Character to use for a digit in format pattern
3509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
3519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public void setDigit(char v)
3529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
3539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_dfs.setDigit(v);
3549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
3559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
3569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
3579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Get the "digit" attribute.
3589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * digit specifies the character used for a digit in the format pattern;
3599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * the default value is the number sign character (#).
3609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
3619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return Character to use for a digit in format pattern
3629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
3639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public char getDigit()
3649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
3659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    return m_dfs.getDigit();
3669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
3679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
3689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
3699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Set the "pattern-separator" attribute.
3709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * pattern-separator specifies the character used to separate positive
3719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * and negative sub patterns in a pattern; the default value is the
3729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * semi-colon character (;).
3739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
3749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @param v Character to use as a pattern separator
3759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
3769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public void setPatternSeparator(char v)
3779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
3789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m_dfs.setPatternSeparator(v);
3799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
3809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
3819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
3829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * Get the "pattern-separator" attribute.
3839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * pattern-separator specifies the character used to separate positive
3849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * and negative sub patterns in a pattern; the default value is the
3859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * semi-colon character (;).
3869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
3879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @return Character to use as a pattern separator
3889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
3899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public char getPatternSeparator()
3909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
3919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    return m_dfs.getPatternSeparator();
3929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
3939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
3949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  /**
3959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * This function is called to recompose() all of the decimal format properties elements.
3969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   *
3979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   * @param root Stylesheet root
3989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson   */
3999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  public void recompose(StylesheetRoot root)
4009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  {
4019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    root.recomposeDecimalFormats(this);
4029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson  }
4039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
4049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson}
405