16 #if !defined(XALAN_ELEMNUMBER_HEADER_GUARD)
17 #define XALAN_ELEMNUMBER_HEADER_GUARD
45 XALAN_CPP_NAMESPACE_BEGIN
120 #if !defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
149 getXPath(
unsigned int index = 0)
const;
167 const XPath* fromMatchPattern,
168 const XPath* countMatchPattern,
185 const XPath* fromMatchPattern,
186 const XPath* countMatchPattern,
229 bool stopAtFirstFound,
287 const XalanDOMChar table[],
308 evaluateLetterValueAVT(
313 traditionalAlphaCount(
324 XalanDOMChar numberType,
329 const XPath* m_countMatchPattern;
330 const XPath* m_fromMatchPattern;
331 const XPath* m_valueExpr;
335 const AVT* m_format_avt;
336 const AVT* m_lang_avt;
337 const AVT* m_lettervalue_avt;
338 const AVT* m_groupingSeparator_avt;
339 const AVT* m_groupingSize_avt;
341 const unsigned long m_id;
346 static const XalanDOMChar s_atString[];
366 static const XalanDOMChar s_piString[];
371 static const XalanDOMChar s_levelString[];
376 static const XalanDOMChar s_multipleString[];
381 static const XalanDOMChar s_anyString[];
386 static const XalanDOMChar s_singleString[];
391 static const XalanDOMChar s_alphabeticString[];
396 static const XalanDOMChar s_traditionalString[];
401 static const XalanDOMChar s_errorString[];
406 static const XalanDOMChar s_alphaCountTable[];
410 static const XalanDOMChar s_elalphaCountTable[];
421 static const size_t s_romanConvertTableSize;
461 m_currentPosition = 0;
481 return m_currentPosition >= m_maxPosition ?
false :
true;
506 XALAN_CPP_NAMESPACE_END
510 #endif // XALAN_ELEMNUMBER_HEADER_GUARD
void getCountString(StylesheetExecutionContext &executionContext, XalanDOMString &theResult) const
Given an XML source node, get the count according to the parameters set up by the xsl:number attribut...
Definition: XalanNode.hpp:44
XalanNode * getPreviousNode(StylesheetExecutionContext &executionContext, XalanNode *pos) const
Get the previous node to be counted.
Structure to help in converting integrals to roman numerals.
Definition: DecimalToRoman.hpp:37
Local implementation of MutableNodeRefList.
Definition: MutableNodeRefList.hpp:44
XERCES_CPP_NAMESPACE_QUALIFIER AttributeList AttributeListType
Definition: AttributeListImpl.hpp:39
XALAN_CPP_NAMESPACE_BEGIN typedef XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager MemoryManagerType
Definition: XalanMemoryManagement.hpp:39
void getMatchingAncestors(StylesheetExecutionContext &executionContext, XalanNode *node, bool stopAtFirstFound, MutableNodeRefList &ancestors) const
Get the ancestors, up to the root, that match the pattern.
XalanNode * findAncestor(StylesheetExecutionContext &executionContext, const XPath *fromMatchPattern, const XPath *countMatchPattern, XalanNode *context) const
Given a 'from' pattern (ala xsl:number), a match pattern and a context, find the first ancestor that ...
void formatNumberList(StylesheetExecutionContext &executionContext, const CountType theList[], NodeRefListBase::size_type theListLength, XalanDOMString &formattedNumber) const
Format an array of integrals into a formatted string.
This is a table of counters, keyed by ElemNumber objects...
Definition: CountersTable.hpp:160
static void terminate()
Perform static shut down.
Definition: ElemNumber.hpp:67
Definition: ElemTemplateElement.hpp:74
Definition: StylesheetExecutionContext.hpp:104
virtual const XPath * getXPath(unsigned int index=0) const
Get XPath pattern/expression of one of the element atribute.
XalanNode * findPrecedingOrAncestorOrSelf(StylesheetExecutionContext &executionContext, const XPath *fromMatchPattern, const XPath *countMatchPattern, XalanNode *context) const
Given a 'from' pattern (ala xsl:number), a match pattern and a context, find the first ancestor that ...
Definition: XPathExecutionContext.hpp:72
XalanVector< CountType > CountTypeArrayType
Definition: ElemNumber.hpp:70
Definition: XalanNumberingResourceBundle.hpp:39
XalanNumberFormat * getNumberFormatter(StylesheetExecutionContext &executionContext) const
Get a formatter.
static void int2singlealphaCount(CountType val, const XalanDOMString &table, XalanDOMString &theResult)
Convert an intergral into alphabetic counting, in other words count using the sequence A B C ...
Definition: ElemNumber.hpp:66
Class to hold an Attribute Value Template.
Definition: AVT.hpp:52
static void int2alphaCount(CountType val, const XalanDOMChar table[], XalanDOMString::size_type length, XalanDOMString &theResult)
Convert an integral into alphabetic counting, in other words count using the sequence A B C ...
XalanNode * getTargetNode(StylesheetExecutionContext &executionContext, XalanNode *sourceNode) const
Get the target node that will be counted.
unsigned long getID() const
Definition: ElemNumber.hpp:129
ElemNumber(StylesheetConstructionContext &constructionContext, Stylesheet &stylesheetTree, const AttributeListType &atts, int lineNumber, int columnNumber, unsigned long id)
Construct an object corresponding to an "xsl:number" element.
const XPath * getCountMatchPattern(StylesheetExecutionContext &executionContext, XalanNode *contextNode) const
Get the count match pattern, or a default value.
virtual const ElemTemplateElement * startElement(StylesheetExecutionContext &executionContext) const
Completes "pre-processing" before any sub-elements are invoked (i.e.
unsigned int size_type
Definition: NodeRefListBase.hpp:56
static void initialize(MemoryManagerType &theManager)
Perform static initialization.
virtual const XalanDOMString & getElementName() const
Get a string for the name of the element.
Definition: ElemNumber.hpp:57
Definition: XalanDOMString.hpp:42
XalanDOMString::size_type length(const XalanDOMString &theString)
Get the length of a XalanDOMString.
Definition: DOMStringHelper.hpp:277
Definition: StylesheetConstructionContext.hpp:73
virtual void execute(StylesheetExecutionContext &executionContext) const
Execute the element.
eLevel
Definition: ElemNumber.hpp:63
static ElemNumber * create(MemoryManagerType &theManager, StylesheetConstructionContext &constructionContext, Stylesheet &stylesheetTree, const AttributeListType &atts, int lineNumber, int columnNumber, unsigned long id)
This class represents the base stylesheet or an "import" stylesheet.
Definition: Stylesheet.hpp:84
static void toRoman(CountType val, bool prefixesAreOK, XalanDOMString &theResult)
Convert an integral into roman numerals.
unsigned int size_type
Definition: XalanDOMString.hpp:53
Definition: ElemNumber.hpp:65
Definition: XalanVector.hpp:61
CountersTable::CountType CountType
Definition: ElemNumber.hpp:61
Counter::CountType CountType
Definition: CountersTable.hpp:164