<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Xalan-C++ API : Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<!-- The head section is copied from Doxygen 1.7.1 generated default output -->
<body>
<h2 align="center">Xalan-C++ API Documentation</h2>
<h3 align="center"><a href="../index.html">The Xalan C++ XSLT Processor Version 1.11</a></h3>
<hr/>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
    </ul>
  </div>
<div class="header">
  <div class="headertitle">
<h1>XalanDecimalFormatSymbols.hpp</h1>  </div>
</div>
<div class="contents">
<a href="XalanDecimalFormatSymbols_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span>
<a name="l00003"></a>00003 <span class="comment"> * or more contributor license agreements. See the NOTICE file</span>
<a name="l00004"></a>00004 <span class="comment"> * distributed with this work for additional information</span>
<a name="l00005"></a>00005 <span class="comment"> * regarding copyright ownership. The ASF licenses this file</span>
<a name="l00006"></a>00006 <span class="comment"> * to you under the Apache License, Version 2.0 (the  &quot;License&quot;);</span>
<a name="l00007"></a>00007 <span class="comment"> * you may not use this file except in compliance with the License.</span>
<a name="l00008"></a>00008 <span class="comment"> * You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 <span class="preprocessor">#if !defined(XALANDECIMALFORMATSYMBOLS_HEADER_GUARD_1357924680)</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define XALANDECIMALFORMATSYMBOLS_HEADER_GUARD_1357924680</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="comment">// Base include file.  Must be first.</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;<a class="code" href="PlatformSupportDefinitions_8hpp.html">xalanc/PlatformSupport/PlatformSupportDefinitions.hpp</a>&gt;</span>
<a name="l00025"></a>00025 
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;cassert&gt;</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;<a class="code" href="XalanDOMString_8hpp.html">xalanc/XalanDOM/XalanDOMString.hpp</a>&gt;</span>
<a name="l00033"></a>00033 
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 
<a name="l00036"></a>00036 XALAN_CPP_NAMESPACE_BEGIN
<a name="l00037"></a>00037 
<a name="l00038"></a>00038 
<a name="l00039"></a>00039 
<a name="l00040"></a><a class="code" href="classXalanDecimalFormatSymbols.html">00040</a> <span class="keyword">class </span><a class="code" href="PlatformSupportDefinitions_8hpp.html#a72e8d5d428f0210697564ce111006fde">XALAN_PLATFORMSUPPORT_EXPORT</a> <a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>
<a name="l00041"></a>00041 {
<a name="l00042"></a>00042 <span class="keyword">public</span>:
<a name="l00043"></a>00043 
<a name="l00044"></a>00044     <span class="comment">// Eventually, this constructor should take a locale to determine</span>
<a name="l00045"></a>00045     <span class="comment">// all of the stuff it needs to know.  But locales are implemented</span>
<a name="l00046"></a>00046     <span class="comment">// on all of our platforms yet.</span>
<a name="l00047"></a>00047     <span class="keyword">explicit</span>
<a name="l00048"></a>00048     <a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>(MemoryManager&amp;  theManager);
<a name="l00049"></a>00049 
<a name="l00050"></a>00050     <a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>(<span class="keyword">const</span> <a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>&amp;  theSource,
<a name="l00051"></a>00051                                 MemoryManager&amp;              theManager);
<a name="l00052"></a>00052 
<a name="l00053"></a>00053     ~<a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>();
<a name="l00054"></a>00054 
<a name="l00055"></a>00055     <a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>&amp;
<a name="l00056"></a>00056     operator=(<span class="keyword">const</span> <a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>&amp;  theRHS);
<a name="l00057"></a>00057 <span class="comment"></span>
<a name="l00058"></a>00058 <span class="comment">    /**</span>
<a name="l00059"></a>00059 <span class="comment">     * Retrieve the string denoting the local currency, &quot;$&quot;, for example</span>
<a name="l00060"></a>00060 <span class="comment">     * </span>
<a name="l00061"></a>00061 <span class="comment">     * @return string used for local currency</span>
<a name="l00062"></a>00062 <span class="comment">     */</span>
<a name="l00063"></a>00063     <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00064"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a4cfc2b0f7f73e836922513ffc9196a5d">00064</a>     getCurrencySymbol()<span class="keyword"> const</span>
<a name="l00065"></a>00065 <span class="keyword">    </span>{
<a name="l00066"></a>00066         <span class="keywordflow">return</span> m_currencySymbol;
<a name="l00067"></a>00067     }
<a name="l00068"></a>00068 <span class="comment"></span>
<a name="l00069"></a>00069 <span class="comment">    /**</span>
<a name="l00070"></a>00070 <span class="comment">     * Retrieve the character used for decimal sign, &#39;.&#39; for example</span>
<a name="l00071"></a>00071 <span class="comment">     * </span>
<a name="l00072"></a>00072 <span class="comment">     * @return character used for decimal sign</span>
<a name="l00073"></a>00073 <span class="comment">     */</span>
<a name="l00074"></a>00074     XalanDOMChar
<a name="l00075"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a6cb6fecd0e5fc8115fa6a38cf76920aa">00075</a>     getDecimalSeparator()<span class="keyword"> const</span>
<a name="l00076"></a>00076 <span class="keyword">    </span>{
<a name="l00077"></a>00077         <span class="keywordflow">return</span> m_decimalSeparator;
<a name="l00078"></a>00078     }
<a name="l00079"></a>00079 <span class="comment"></span>
<a name="l00080"></a>00080 <span class="comment">    /**</span>
<a name="l00081"></a>00081 <span class="comment">     * Retrieve character used for a digit in a pattern</span>
<a name="l00082"></a>00082 <span class="comment">     * </span>
<a name="l00083"></a>00083 <span class="comment">     * @return character used for a digit in a pattern </span>
<a name="l00084"></a>00084 <span class="comment">     */</span>
<a name="l00085"></a>00085     XalanDOMChar
<a name="l00086"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a075b80bb34dbab8b2773edb4b40cea04">00086</a>     getDigit()<span class="keyword"> const</span>
<a name="l00087"></a>00087 <span class="keyword">    </span>{
<a name="l00088"></a>00088         <span class="keywordflow">return</span> m_digit;
<a name="l00089"></a>00089     }
<a name="l00090"></a>00090 <span class="comment"></span>
<a name="l00091"></a>00091 <span class="comment">    /**</span>
<a name="l00092"></a>00092 <span class="comment">     * Retrieve the character used for thousands separator, &quot;,&quot; for example</span>
<a name="l00093"></a>00093 <span class="comment">     * </span>
<a name="l00094"></a>00094 <span class="comment">     * @return character used for thousands separator</span>
<a name="l00095"></a>00095 <span class="comment">     */</span>
<a name="l00096"></a>00096     XalanDOMChar
<a name="l00097"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a731d95df82b170ca554934094cccfa58">00097</a>     getGroupingSeparator()<span class="keyword"> const</span>
<a name="l00098"></a>00098 <span class="keyword">    </span>{
<a name="l00099"></a>00099         <span class="keywordflow">return</span> m_groupingSeparator;
<a name="l00100"></a>00100     }
<a name="l00101"></a>00101 <span class="comment"></span>
<a name="l00102"></a>00102 <span class="comment">    /**</span>
<a name="l00103"></a>00103 <span class="comment">     * Retrieve the string used to represent infinity</span>
<a name="l00104"></a>00104 <span class="comment">     * </span>
<a name="l00105"></a>00105 <span class="comment">     * @return string used to represent infinity</span>
<a name="l00106"></a>00106 <span class="comment">     */</span>
<a name="l00107"></a>00107     <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00108"></a><a class="code" href="classXalanDecimalFormatSymbols.html#adee4c96fc54f43b8deb785819aed17a4">00108</a>     getInfinity()<span class="keyword"> const</span>
<a name="l00109"></a>00109 <span class="keyword">    </span>{
<a name="l00110"></a>00110         <span class="keywordflow">return</span> m_infinity;
<a name="l00111"></a>00111     }
<a name="l00112"></a>00112 <span class="comment"></span>
<a name="l00113"></a>00113 <span class="comment">    /**</span>
<a name="l00114"></a>00114 <span class="comment">     * Retrieve the international string denoting the local currency</span>
<a name="l00115"></a>00115 <span class="comment">     * </span>
<a name="l00116"></a>00116 <span class="comment">     * @return international string denoting the local currency</span>
<a name="l00117"></a>00117 <span class="comment">     */</span>
<a name="l00118"></a>00118     <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00119"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a91e9106d72edb27da678da06e72512be">00119</a>     getInternationalCurrencySymbol()<span class="keyword"> const</span>
<a name="l00120"></a>00120 <span class="keyword">    </span>{
<a name="l00121"></a>00121         <span class="keywordflow">return</span> m_internationalCurrencySymbol;
<a name="l00122"></a>00122     }
<a name="l00123"></a>00123 <span class="comment"></span>
<a name="l00124"></a>00124 <span class="comment">    /**</span>
<a name="l00125"></a>00125 <span class="comment">     * Retrieve the character used to represent minus sign</span>
<a name="l00126"></a>00126 <span class="comment">     * </span>
<a name="l00127"></a>00127 <span class="comment">     * @return character used to represent minus sign</span>
<a name="l00128"></a>00128 <span class="comment">     */</span>
<a name="l00129"></a>00129     XalanDOMChar
<a name="l00130"></a><a class="code" href="classXalanDecimalFormatSymbols.html#aee13fb3bcfe0aa0280c01a197822cf0d">00130</a>     getMinusSign()<span class="keyword"> const</span>
<a name="l00131"></a>00131 <span class="keyword">    </span>{
<a name="l00132"></a>00132         <span class="keywordflow">return</span> m_minusSign;
<a name="l00133"></a>00133     }
<a name="l00134"></a>00134 <span class="comment"></span>
<a name="l00135"></a>00135 <span class="comment">    /**</span>
<a name="l00136"></a>00136 <span class="comment">     * Retrieve the monetary decimal separator</span>
<a name="l00137"></a>00137 <span class="comment">     * </span>
<a name="l00138"></a>00138 <span class="comment">     * @return character used to separate decimal portion of currency</span>
<a name="l00139"></a>00139 <span class="comment">     */</span>
<a name="l00140"></a>00140     XalanDOMChar
<a name="l00141"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a115cc3b80efa853ec825fc7ebc78976f">00141</a>     getMonetaryDecimalSeparator()<span class="keyword"> const</span>
<a name="l00142"></a>00142 <span class="keyword">    </span>{
<a name="l00143"></a>00143         <span class="keywordflow">return</span> m_monetaryDecimalSeparator;
<a name="l00144"></a>00144     }
<a name="l00145"></a>00145 <span class="comment"></span>
<a name="l00146"></a>00146 <span class="comment">    /**</span>
<a name="l00147"></a>00147 <span class="comment">     * Retrieve the string used for a numeric value that cannot be represented</span>
<a name="l00148"></a>00148 <span class="comment">     * as a number</span>
<a name="l00149"></a>00149 <span class="comment">     * </span>
<a name="l00150"></a>00150 <span class="comment">     * @return string representing &quot;not a number&quot; value</span>
<a name="l00151"></a>00151 <span class="comment">     */</span>
<a name="l00152"></a>00152     <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00153"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a669a1f80fac6d8a6d97dfa91d7d32ca8">00153</a>     getNaN()<span class="keyword"> const</span>
<a name="l00154"></a>00154 <span class="keyword">    </span>{
<a name="l00155"></a>00155         <span class="keywordflow">return</span> m_NaN;
<a name="l00156"></a>00156     }
<a name="l00157"></a>00157 <span class="comment"></span>
<a name="l00158"></a>00158 <span class="comment">    /**</span>
<a name="l00159"></a>00159 <span class="comment">     * Retrieve the character used to separate positive and negative</span>
<a name="l00160"></a>00160 <span class="comment">     * subpatterns in a pattern</span>
<a name="l00161"></a>00161 <span class="comment">     * </span>
<a name="l00162"></a>00162 <span class="comment">     * @return character used to separate positive and negative subpatterns</span>
<a name="l00163"></a>00163 <span class="comment">     */</span>
<a name="l00164"></a>00164     XalanDOMChar
<a name="l00165"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a30f4a40092d95bf1b77f68b4669bc9fd">00165</a>     getPatternSeparator()<span class="keyword"> const</span>
<a name="l00166"></a>00166 <span class="keyword">    </span>{
<a name="l00167"></a>00167         <span class="keywordflow">return</span> m_patternSeparator;
<a name="l00168"></a>00168     }
<a name="l00169"></a>00169 <span class="comment"></span>
<a name="l00170"></a>00170 <span class="comment">    /**</span>
<a name="l00171"></a>00171 <span class="comment">     * Retrieve the character used for percent sign, &quot;%,&quot; for example</span>
<a name="l00172"></a>00172 <span class="comment">     * </span>
<a name="l00173"></a>00173 <span class="comment">     * @return character used for percent sign</span>
<a name="l00174"></a>00174 <span class="comment">     */</span>
<a name="l00175"></a>00175     XalanDOMChar
<a name="l00176"></a><a class="code" href="classXalanDecimalFormatSymbols.html#afb50df40f2db3783a4ba0fabcf501168">00176</a>     getPercent()<span class="keyword"> const</span>
<a name="l00177"></a>00177 <span class="keyword">    </span>{
<a name="l00178"></a>00178         <span class="keywordflow">return</span> m_percent;
<a name="l00179"></a>00179     }
<a name="l00180"></a>00180 <span class="comment"></span>
<a name="l00181"></a>00181 <span class="comment">    /**</span>
<a name="l00182"></a>00182 <span class="comment">     * Retrieve the character used for per thousand sign</span>
<a name="l00183"></a>00183 <span class="comment">     * </span>
<a name="l00184"></a>00184 <span class="comment">     * @return character used for per thousand sign</span>
<a name="l00185"></a>00185 <span class="comment">     */</span>
<a name="l00186"></a>00186     XalanDOMChar
<a name="l00187"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a26c89498947725ac15da3befb4944567">00187</a>     getPerMill()<span class="keyword"> const</span>
<a name="l00188"></a>00188 <span class="keyword">    </span>{
<a name="l00189"></a>00189         <span class="keywordflow">return</span> m_perMill;
<a name="l00190"></a>00190     }
<a name="l00191"></a>00191 <span class="comment"></span>
<a name="l00192"></a>00192 <span class="comment">    /**</span>
<a name="l00193"></a>00193 <span class="comment">     * Retrieve the character used for zero</span>
<a name="l00194"></a>00194 <span class="comment">     * </span>
<a name="l00195"></a>00195 <span class="comment">     * @return character used for zero</span>
<a name="l00196"></a>00196 <span class="comment">     */</span>
<a name="l00197"></a>00197     XalanDOMChar
<a name="l00198"></a><a class="code" href="classXalanDecimalFormatSymbols.html#af8db642b0d0ec27b71f684ed7394de75">00198</a>     getZeroDigit()<span class="keyword"> const</span>
<a name="l00199"></a>00199 <span class="keyword">    </span>{
<a name="l00200"></a>00200         <span class="keywordflow">return</span> m_zeroDigit;
<a name="l00201"></a>00201     }
<a name="l00202"></a>00202 <span class="comment"></span>
<a name="l00203"></a>00203 <span class="comment">    /**</span>
<a name="l00204"></a>00204 <span class="comment">     * Sets the string denoting the local currency, &quot;$&quot;, for example</span>
<a name="l00205"></a>00205 <span class="comment">     * </span>
<a name="l00206"></a>00206 <span class="comment">     * @param theCurrencySymbol symbol used for local currency</span>
<a name="l00207"></a>00207 <span class="comment">     */</span>
<a name="l00208"></a>00208     <span class="keywordtype">void</span>
<a name="l00209"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a146db2d90a42b7c1fdd4aca8c84ea927">00209</a>     setCurrencySymbol(<span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;     theCurrencySymbol)
<a name="l00210"></a>00210     {
<a name="l00211"></a>00211         m_currencySymbol = theCurrencySymbol;
<a name="l00212"></a>00212     }
<a name="l00213"></a>00213 <span class="comment"></span>
<a name="l00214"></a>00214 <span class="comment">    /**</span>
<a name="l00215"></a>00215 <span class="comment">     * Sets the string denoting the local currency, &quot;$&quot;, for example</span>
<a name="l00216"></a>00216 <span class="comment">     * </span>
<a name="l00217"></a>00217 <span class="comment">     * @param theCurrencySymbol symbol used for local currency</span>
<a name="l00218"></a>00218 <span class="comment">     */</span>
<a name="l00219"></a>00219     <span class="keywordtype">void</span>
<a name="l00220"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a704c0fda6579a3e1d32a9e28b6845e04">00220</a>     setCurrencySymbol(<span class="keyword">const</span> XalanDOMChar*   theCurrencySymbol)
<a name="l00221"></a>00221     {
<a name="l00222"></a>00222         assert(theCurrencySymbol != 0);
<a name="l00223"></a>00223 
<a name="l00224"></a>00224         m_currencySymbol = theCurrencySymbol;
<a name="l00225"></a>00225     }
<a name="l00226"></a>00226 <span class="comment"></span>
<a name="l00227"></a>00227 <span class="comment">    /**</span>
<a name="l00228"></a>00228 <span class="comment">     * Sets the character used for decimal sign, &#39;.&#39; for example</span>
<a name="l00229"></a>00229 <span class="comment">     * </span>
<a name="l00230"></a>00230 <span class="comment">     * @param theDecimalSeparator character used for decimal sign</span>
<a name="l00231"></a>00231 <span class="comment">     */</span>
<a name="l00232"></a>00232     <span class="keywordtype">void</span>
<a name="l00233"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a93892e389497e8db8495908981c330a7">00233</a>     setDecimalSeparator(XalanDOMChar    theDecimalSeparator)
<a name="l00234"></a>00234     {
<a name="l00235"></a>00235         m_decimalSeparator = theDecimalSeparator;
<a name="l00236"></a>00236     }
<a name="l00237"></a>00237 <span class="comment"></span>
<a name="l00238"></a>00238 <span class="comment">    /**</span>
<a name="l00239"></a>00239 <span class="comment">     * Sets the character used for a digit in a pattern</span>
<a name="l00240"></a>00240 <span class="comment">     * </span>
<a name="l00241"></a>00241 <span class="comment">     * @param theDigit character used for a digit in a pattern </span>
<a name="l00242"></a>00242 <span class="comment">     */</span>
<a name="l00243"></a>00243     <span class="keywordtype">void</span>
<a name="l00244"></a><a class="code" href="classXalanDecimalFormatSymbols.html#aa64d93f10710c00a2a76dd6ac0b96765">00244</a>     setDigit(XalanDOMChar   theDigit)
<a name="l00245"></a>00245     {
<a name="l00246"></a>00246         m_digit = theDigit;
<a name="l00247"></a>00247     }
<a name="l00248"></a>00248 <span class="comment"></span>
<a name="l00249"></a>00249 <span class="comment">    /**</span>
<a name="l00250"></a>00250 <span class="comment">     * Sets the character used for thousands separator, &quot;,&quot; for example</span>
<a name="l00251"></a>00251 <span class="comment">     * </span>
<a name="l00252"></a>00252 <span class="comment">     * @param theGroupingSeparator character used for thousands separator</span>
<a name="l00253"></a>00253 <span class="comment">     */</span>
<a name="l00254"></a>00254     <span class="keywordtype">void</span>
<a name="l00255"></a><a class="code" href="classXalanDecimalFormatSymbols.html#ad14a5631ea8605a526107bc31aff6507">00255</a>     setGroupingSeparator(XalanDOMChar   theGroupingSeparator)
<a name="l00256"></a>00256     {
<a name="l00257"></a>00257         m_groupingSeparator = theGroupingSeparator;
<a name="l00258"></a>00258     }
<a name="l00259"></a>00259 <span class="comment"></span>
<a name="l00260"></a>00260 <span class="comment">    /**</span>
<a name="l00261"></a>00261 <span class="comment">     * Sets the string used to represent infinity</span>
<a name="l00262"></a>00262 <span class="comment">     * </span>
<a name="l00263"></a>00263 <span class="comment">     * @param theInfinity string used to represent infinity</span>
<a name="l00264"></a>00264 <span class="comment">     */</span>
<a name="l00265"></a>00265     <span class="keywordtype">void</span>
<a name="l00266"></a><a class="code" href="classXalanDecimalFormatSymbols.html#afcf23492771e5c77486faaf717bc07af">00266</a>     setInfinity(<span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   theInfinity)
<a name="l00267"></a>00267     {
<a name="l00268"></a>00268         m_infinity = theInfinity;
<a name="l00269"></a>00269     }
<a name="l00270"></a>00270 <span class="comment"></span>
<a name="l00271"></a>00271 <span class="comment">    /**</span>
<a name="l00272"></a>00272 <span class="comment">     * Sets the string used to represent infinity</span>
<a name="l00273"></a>00273 <span class="comment">     * </span>
<a name="l00274"></a>00274 <span class="comment">     * @param theInfinity string used to represent infinity</span>
<a name="l00275"></a>00275 <span class="comment">     */</span>
<a name="l00276"></a>00276     <span class="keywordtype">void</span>
<a name="l00277"></a><a class="code" href="classXalanDecimalFormatSymbols.html#aa38258f617c25058e1d5b45ac1742799">00277</a>     setInfinity(<span class="keyword">const</span> XalanDOMChar*     theInfinity)
<a name="l00278"></a>00278     {
<a name="l00279"></a>00279         assert(theInfinity != 0);
<a name="l00280"></a>00280 
<a name="l00281"></a>00281         m_infinity = theInfinity;
<a name="l00282"></a>00282     }
<a name="l00283"></a>00283 <span class="comment"></span>
<a name="l00284"></a>00284 <span class="comment">    /**</span>
<a name="l00285"></a>00285 <span class="comment">     * Sets the international string denoting the local currency</span>
<a name="l00286"></a>00286 <span class="comment">     * </span>
<a name="l00287"></a>00287 <span class="comment">     * @param theInternationalCurrencySymbol international string denoting the</span>
<a name="l00288"></a>00288 <span class="comment">     *                                       local currency</span>
<a name="l00289"></a>00289 <span class="comment">     */</span>
<a name="l00290"></a>00290     <span class="keywordtype">void</span>
<a name="l00291"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a68ba98573d901934c7143d4130bd7335">00291</a>     setInternationalCurrencySymbol(<span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;    theInternationalCurrencySymbol)
<a name="l00292"></a>00292     {
<a name="l00293"></a>00293         m_internationalCurrencySymbol = theInternationalCurrencySymbol;
<a name="l00294"></a>00294     }
<a name="l00295"></a>00295 <span class="comment"></span>
<a name="l00296"></a>00296 <span class="comment">    /**</span>
<a name="l00297"></a>00297 <span class="comment">     * Sets the international string denoting the local currency</span>
<a name="l00298"></a>00298 <span class="comment">     * </span>
<a name="l00299"></a>00299 <span class="comment">     * @param theInternationalCurrencySymbol international string denoting the</span>
<a name="l00300"></a>00300 <span class="comment">     *                                       local currency</span>
<a name="l00301"></a>00301 <span class="comment">     */</span>
<a name="l00302"></a>00302     <span class="keywordtype">void</span>
<a name="l00303"></a><a class="code" href="classXalanDecimalFormatSymbols.html#af6b740de41f5e30ecf1f02bdbf69bc92">00303</a>     setInternationalCurrencySymbol(<span class="keyword">const</span> XalanDOMChar*  theInternationalCurrencySymbol)
<a name="l00304"></a>00304     {
<a name="l00305"></a>00305         assert(theInternationalCurrencySymbol != 0);
<a name="l00306"></a>00306 
<a name="l00307"></a>00307         m_internationalCurrencySymbol = theInternationalCurrencySymbol;
<a name="l00308"></a>00308     }
<a name="l00309"></a>00309 <span class="comment"></span>
<a name="l00310"></a>00310 <span class="comment">    /**</span>
<a name="l00311"></a>00311 <span class="comment">     * Sets the character used to represent minus sign</span>
<a name="l00312"></a>00312 <span class="comment">     * </span>
<a name="l00313"></a>00313 <span class="comment">     * @param theMinusSign character used to represent minus sign</span>
<a name="l00314"></a>00314 <span class="comment">     */</span>
<a name="l00315"></a>00315     <span class="keywordtype">void</span>
<a name="l00316"></a><a class="code" href="classXalanDecimalFormatSymbols.html#aa8998d80dd0ac263d84ad3edee8f02c8">00316</a>     setMinusSign(XalanDOMChar   theMinusSign)
<a name="l00317"></a>00317     {
<a name="l00318"></a>00318         m_minusSign = theMinusSign;
<a name="l00319"></a>00319     }
<a name="l00320"></a>00320 <span class="comment"></span>
<a name="l00321"></a>00321 <span class="comment">    /**</span>
<a name="l00322"></a>00322 <span class="comment">     * Sets the monetary decimal separator</span>
<a name="l00323"></a>00323 <span class="comment">     * </span>
<a name="l00324"></a>00324 <span class="comment">     * @param theMonetaryDecimalSeparator character used to separate decimal</span>
<a name="l00325"></a>00325 <span class="comment">     *                                    portion of currency</span>
<a name="l00326"></a>00326 <span class="comment">     */</span>
<a name="l00327"></a>00327     <span class="keywordtype">void</span>
<a name="l00328"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a57ffd1a1dee26e148e8a76dc7595a032">00328</a>     setMonetaryDecimalSeparator(XalanDOMChar    theMonetaryDecimalSeparator)
<a name="l00329"></a>00329     {
<a name="l00330"></a>00330         m_monetaryDecimalSeparator = theMonetaryDecimalSeparator;
<a name="l00331"></a>00331     }
<a name="l00332"></a>00332 <span class="comment"></span>
<a name="l00333"></a>00333 <span class="comment">    /**</span>
<a name="l00334"></a>00334 <span class="comment">     * Sets the string used for a numeric value that cannot be represented</span>
<a name="l00335"></a>00335 <span class="comment">     * as a number</span>
<a name="l00336"></a>00336 <span class="comment">     * </span>
<a name="l00337"></a>00337 <span class="comment">     * @param theNaN string representing &quot;not a number&quot; value</span>
<a name="l00338"></a>00338 <span class="comment">     */</span>
<a name="l00339"></a>00339     <span class="keywordtype">void</span>
<a name="l00340"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a24f19420ab1f9fd7e86d1f91f17a2d29">00340</a>     setNaN(<span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;    theNaN)
<a name="l00341"></a>00341     {
<a name="l00342"></a>00342         m_NaN = theNaN;
<a name="l00343"></a>00343     }
<a name="l00344"></a>00344 <span class="comment"></span>
<a name="l00345"></a>00345 <span class="comment">    /**</span>
<a name="l00346"></a>00346 <span class="comment">     * Sets the string used for a numeric value that cannot be represented</span>
<a name="l00347"></a>00347 <span class="comment">     * as a number</span>
<a name="l00348"></a>00348 <span class="comment">     * </span>
<a name="l00349"></a>00349 <span class="comment">     * @param theNaN string representing &quot;not a number&quot; value</span>
<a name="l00350"></a>00350 <span class="comment">     */</span>
<a name="l00351"></a>00351     <span class="keywordtype">void</span>
<a name="l00352"></a><a class="code" href="classXalanDecimalFormatSymbols.html#ab73e4a485f1eee3c95cc5d0e4c0efaef">00352</a>     setNaN(<span class="keyword">const</span> XalanDOMChar*  theNaN)
<a name="l00353"></a>00353     {
<a name="l00354"></a>00354         assert(theNaN != 0);
<a name="l00355"></a>00355 
<a name="l00356"></a>00356         m_NaN = theNaN;
<a name="l00357"></a>00357     }
<a name="l00358"></a>00358 <span class="comment"></span>
<a name="l00359"></a>00359 <span class="comment">    /**</span>
<a name="l00360"></a>00360 <span class="comment">     * Sets the character used to separate positive and negative subpatterns in</span>
<a name="l00361"></a>00361 <span class="comment">     * a pattern</span>
<a name="l00362"></a>00362 <span class="comment">     * </span>
<a name="l00363"></a>00363 <span class="comment">     * @param thePatternSeparator character used to separate positive and</span>
<a name="l00364"></a>00364 <span class="comment">     *                            negative subpatterns</span>
<a name="l00365"></a>00365 <span class="comment">     */</span>
<a name="l00366"></a>00366     <span class="keywordtype">void</span>
<a name="l00367"></a><a class="code" href="classXalanDecimalFormatSymbols.html#aa923495efeecbd7e32a5a16acf49f262">00367</a>     setPatternSeparator(XalanDOMChar    thePatternSeparator)
<a name="l00368"></a>00368     {
<a name="l00369"></a>00369         m_patternSeparator = thePatternSeparator;
<a name="l00370"></a>00370     }
<a name="l00371"></a>00371 <span class="comment"></span>
<a name="l00372"></a>00372 <span class="comment">    /**</span>
<a name="l00373"></a>00373 <span class="comment">     * Sets the character used for percent sign, &quot;%,&quot; for example</span>
<a name="l00374"></a>00374 <span class="comment">     * </span>
<a name="l00375"></a>00375 <span class="comment">     * @param thePercent character used for percent sign</span>
<a name="l00376"></a>00376 <span class="comment">     */</span>
<a name="l00377"></a>00377     <span class="keywordtype">void</span>
<a name="l00378"></a><a class="code" href="classXalanDecimalFormatSymbols.html#adedb5e507dd235a078b989581a92f962">00378</a>     setPercent(XalanDOMChar thePercent)
<a name="l00379"></a>00379     {
<a name="l00380"></a>00380         m_percent = thePercent;
<a name="l00381"></a>00381     }
<a name="l00382"></a>00382 <span class="comment"></span>
<a name="l00383"></a>00383 <span class="comment">    /**</span>
<a name="l00384"></a>00384 <span class="comment">     * Sets the character used for per thousand sign</span>
<a name="l00385"></a>00385 <span class="comment">     * </span>
<a name="l00386"></a>00386 <span class="comment">     * @param thePerMill character used for per thousand sign</span>
<a name="l00387"></a>00387 <span class="comment">     */</span>
<a name="l00388"></a>00388     <span class="keywordtype">void</span>
<a name="l00389"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a49e9820814316740d3cbf82e1d114d11">00389</a>     setPerMill(XalanDOMChar thePerMill)
<a name="l00390"></a>00390     {
<a name="l00391"></a>00391         m_perMill = thePerMill;
<a name="l00392"></a>00392     }
<a name="l00393"></a>00393 <span class="comment"></span>
<a name="l00394"></a>00394 <span class="comment">    /**</span>
<a name="l00395"></a>00395 <span class="comment">     * Sets the character used for zero</span>
<a name="l00396"></a>00396 <span class="comment">     * </span>
<a name="l00397"></a>00397 <span class="comment">     * @param theZeroDigit character used for zero</span>
<a name="l00398"></a>00398 <span class="comment">     */</span>
<a name="l00399"></a>00399     <span class="keywordtype">void</span>
<a name="l00400"></a><a class="code" href="classXalanDecimalFormatSymbols.html#adafa0b8359f2ffd65ad3c35180ba1be8">00400</a>     setZeroDigit(XalanDOMChar   theZeroDigit)
<a name="l00401"></a>00401     {
<a name="l00402"></a>00402         m_zeroDigit = theZeroDigit;
<a name="l00403"></a>00403     }
<a name="l00404"></a>00404 
<a name="l00405"></a>00405     <span class="keywordtype">bool</span>
<a name="l00406"></a>00406     <a class="code" href="ElemAttributeSet_8hpp.html#ae199bc16afddda1065706543e752d292">operator==</a>(<span class="keyword">const</span> <a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>&amp;     theRHS) <span class="keyword">const</span>;
<a name="l00407"></a>00407 
<a name="l00408"></a>00408     <span class="keywordtype">bool</span>
<a name="l00409"></a><a class="code" href="classXalanDecimalFormatSymbols.html#a3e0c2bda29f6e017074227674a840a31">00409</a>     <a class="code" href="XalanVector_8hpp.html#a1757270b10d1a52fb1021f5411c987a1">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>&amp;     theRHS)<span class="keyword"> const</span>
<a name="l00410"></a>00410 <span class="keyword">    </span>{
<a name="l00411"></a>00411         <span class="keywordflow">return</span> !<a class="code" href="ElemAttributeSet_8hpp.html#ae199bc16afddda1065706543e752d292">operator==</a>(theRHS);
<a name="l00412"></a>00412     }
<a name="l00413"></a>00413 
<a name="l00414"></a>00414 <span class="keyword">private</span>:
<a name="l00415"></a>00415     <span class="comment">// not implemented</span>
<a name="l00416"></a>00416     <a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>();
<a name="l00417"></a>00417     <a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>(<span class="keyword">const</span> <a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>&amp;);
<a name="l00418"></a>00418 
<a name="l00419"></a>00419     <a class="code" href="classXalanDOMString.html">XalanDOMString</a>  m_currencySymbol;
<a name="l00420"></a>00420 
<a name="l00421"></a>00421     XalanDOMChar    m_decimalSeparator;
<a name="l00422"></a>00422     XalanDOMChar    m_digit;
<a name="l00423"></a>00423     XalanDOMChar    m_groupingSeparator;
<a name="l00424"></a>00424 
<a name="l00425"></a>00425     <a class="code" href="classXalanDOMString.html">XalanDOMString</a>  m_infinity;
<a name="l00426"></a>00426     <a class="code" href="classXalanDOMString.html">XalanDOMString</a>  m_internationalCurrencySymbol;
<a name="l00427"></a>00427 
<a name="l00428"></a>00428     XalanDOMChar    m_minusSign;
<a name="l00429"></a>00429     XalanDOMChar    m_monetaryDecimalSeparator;
<a name="l00430"></a>00430 
<a name="l00431"></a>00431     <a class="code" href="classXalanDOMString.html">XalanDOMString</a>  m_NaN;
<a name="l00432"></a>00432 
<a name="l00433"></a>00433     XalanDOMChar    m_patternSeparator;
<a name="l00434"></a>00434     XalanDOMChar    m_percent;
<a name="l00435"></a>00435     XalanDOMChar    m_perMill;
<a name="l00436"></a>00436     XalanDOMChar    m_zeroDigit;
<a name="l00437"></a>00437 };
<a name="l00438"></a>00438 
<a name="l00439"></a>00439 
<a name="l00440"></a>00440 
<a name="l00441"></a>00441 XALAN_CPP_NAMESPACE_END
<a name="l00442"></a>00442 
<a name="l00443"></a>00443 
<a name="l00444"></a>00444 
<a name="l00445"></a>00445 <span class="preprocessor">#endif  // XALANDECIMALFORMATSYMBOLS_HEADER_GUARD_1357924680</span>
</pre></div></div>
</div>
<p align="center"><a href="graph_legend.html">Interpreting class diagrams</a></p>
<p><font color="#000000" face="arial,helvetica,sanserif" size="-1">
<i><a href="http://www.doxygen.org/">Doxygen</a> and 
<a href="http://www.graphviz.org/">GraphViz</a> are 
used to generate this API documentation from the Xalan-C header files.</i></font></p>

<table border="0" cellpadding="0" cellspacing="0" width="80%">
 <tr>
  <td width="80%" valign="top">
	<p align="center"><b>Xalan-C++ XSLT Processor Version 1.11</b><br/>
	Copyright &copy; 1999-2012 The Apache Software Foundation.<br/>
	All Rights Reserved.</p>
  </td>
 </tr>
 <tr>
  <td width="100%">
	<p align="center"><img src="asf_logo_wide.gif" width="268" height="25" align="bottom" border="0" alt="Apache Logo">
  </td>
 </tr>
</table>
</body>
</html>
