00001 /* 00002 * Copyright 1999-2004 The Apache Software Foundation. 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 #if !defined(XALAN_NUMBERINGRESOURCEBUNDLE_HEADER_GUARD) 00018 #define XALAN_NUMBERINGRESOURCEBUNDLE_HEADER_GUARD 00019 00020 00021 00022 // Base include file. Must be first. 00023 #include <xalanc/XSLT/XSLTDefinitions.hpp> 00024 00025 00026 00027 #include <xalanc/Include/XalanVector.hpp> 00028 00029 00030 00031 #include <xalanc/PlatformSupport/DOMStringHelper.hpp> 00032 00033 00034 00035 XALAN_CPP_NAMESPACE_BEGIN 00036 00037 XALAN_USES_MEMORY_MANAGER(XalanDOMCharVectorType) 00038 00039 class XalanNumberingResourceBundle 00040 { 00041 public: 00042 00043 typedef unsigned long NumberType; 00044 00045 typedef XalanVector<NumberType> NumberTypeVectorType; 00046 typedef XalanVector<XalanDOMCharVectorType> DigitsTableVectorType; 00047 00048 // Enum to describe language orientation. (English is left-to-right, 00049 // Hebrew is right-to-left, etc.) 00050 enum eOrientation { eLeftToRight, eRightToLeft, eTopToBottom, eBottomToTop }; 00051 00052 // Enum to describe how numbering is done. 00053 enum eNumberingMethod { eAdditive, eMultiplicativeAdditive }; 00054 00055 // Enum to describe the where the multiplier goes. 00056 enum eMultiplierOrder { eFollows, ePrecedes }; 00057 00058 00059 XalanNumberingResourceBundle( 00060 const XalanDOMString& theLanguage, 00061 const XalanDOMString& theUILanguage, 00062 const XalanDOMString& theHelpLanguage, 00063 const XalanDOMCharVectorType& theAlphabet, 00064 const XalanDOMCharVectorType& theTraditionalAlphabet, 00065 eOrientation theOrientation, 00066 eNumberingMethod theNumberingMethod, 00067 eMultiplierOrder theMultiplierOrder, 00068 NumberType theMaxNumericalValue, 00069 const NumberTypeVectorType& theNumberGroups, 00070 const NumberTypeVectorType& theMultipliers, 00071 const XalanDOMCharVectorType& theZeroChar, 00072 const XalanDOMCharVectorType& theMultiplierChars, 00073 const DigitsTableVectorType& theDigitsTable, 00074 const NumberTypeVectorType& theDigitsTableTable, 00075 MemoryManagerType& theManager); 00076 00077 explicit 00078 XalanNumberingResourceBundle(MemoryManagerType& theManager); 00079 00080 XalanNumberingResourceBundle(const XalanNumberingResourceBundle& theSource, 00081 MemoryManagerType& theManager); 00082 00083 ~XalanNumberingResourceBundle(); 00084 00085 MemoryManagerType& 00086 getMemoryManager() 00087 { 00088 return m_language.getMemoryManager(); 00089 } 00090 00091 bool 00092 operator==(const XalanNumberingResourceBundle& theRHS) const 00093 { 00094 return equals(m_language, theRHS.m_language); 00095 } 00096 00097 const XalanDOMString& 00098 getLanguage() const 00099 { 00100 return m_language; 00101 } 00102 00103 const XalanDOMString& 00104 getUILanguage() const 00105 { 00106 return m_uiLanguage; 00107 } 00108 00109 const XalanDOMString& 00110 getHelpLanguage() const 00111 { 00112 return m_helpLanguage; 00113 } 00114 00115 const XalanDOMCharVectorType& 00116 getAlphabet() const 00117 { 00118 return m_alphabet; 00119 } 00120 00121 const XalanDOMCharVectorType& 00122 getTraditionalAlphabet() const 00123 { 00124 return m_traditionalAlphabet; 00125 } 00126 00127 eOrientation 00128 getOrientation() const 00129 { 00130 return m_orientation; 00131 } 00132 00133 eNumberingMethod 00134 getNumberingMethod() const 00135 { 00136 return m_numberingMethod; 00137 } 00138 00139 eMultiplierOrder 00140 getMultiplierOrder() const 00141 { 00142 return m_multiplierOrder; 00143 } 00144 00145 NumberType 00146 getMaxNumericalValue() const 00147 { 00148 return m_maxNumericalValue; 00149 } 00150 00151 const NumberTypeVectorType& 00152 getNumberGroups() const 00153 { 00154 return m_numberGroups; 00155 } 00156 00157 const NumberTypeVectorType& 00158 getMultipliers() const 00159 { 00160 return m_multipliers; 00161 } 00162 00163 const XalanDOMCharVectorType& 00164 getZeroChar() const 00165 { 00166 return m_zeroChar; 00167 } 00168 00169 const XalanDOMCharVectorType& 00170 getMultiplierChars() const 00171 { 00172 return m_multiplierChars; 00173 } 00174 00175 const DigitsTableVectorType& 00176 getDigitsTable() const 00177 { 00178 return m_digitsTable; 00179 } 00180 00181 const NumberTypeVectorType& 00182 getDigitsTableTable() const 00183 { 00184 return m_digitsTableTable; 00185 } 00186 00187 void 00188 swap(XalanNumberingResourceBundle& theOther); 00189 00190 private: 00191 00192 XalanDOMString m_language; 00193 00194 XalanDOMString m_uiLanguage; 00195 00196 XalanDOMString m_helpLanguage; 00197 00198 XalanDOMCharVectorType m_alphabet; 00199 00200 XalanDOMCharVectorType m_traditionalAlphabet; 00201 00202 eOrientation m_orientation; 00203 00204 eNumberingMethod m_numberingMethod; 00205 00206 eMultiplierOrder m_multiplierOrder; 00207 00208 NumberType m_maxNumericalValue; 00209 00210 NumberTypeVectorType m_numberGroups; 00211 00212 NumberTypeVectorType m_multipliers; 00213 00214 XalanDOMCharVectorType m_zeroChar; 00215 00216 XalanDOMCharVectorType m_multiplierChars; 00217 00218 DigitsTableVectorType m_digitsTable; 00219 00220 NumberTypeVectorType m_digitsTableTable; 00221 }; 00222 00223 00224 00225 XALAN_CPP_NAMESPACE_END 00226 00227 00228 00229 #endif // XALAN_NUMBERINGRESOURCEBUNDLE_HEADER_GUARD
Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.
Xalan-C++ XSLT Processor Version 1.10 |
|