## Xalan-C++ API Documentation

### The Xalan C++ XSLT Processor Version 1.9

Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

# ElemNumber Class Reference

Inheritance diagram for ElemNumber:

[legend]
Collaboration diagram for ElemNumber:

[legend]
List of all members.

## Public Types

- typedef CountersTable::CountType CountType
- typedef XalanVector< CountType > CountTypeArrayType
- enum eLevel { eSingle, eMultiple, eAny }

## Public Member Functions

- ElemNumber (StylesheetConstructionContext &constructionContext, Stylesheet &stylesheetTree, const AttributeListType &atts, int lineNumber, int columnNumber, unsigned long id)
    Construct an object corresponding to an "xsl:number" element.
- virtual ~ElemNumber ()
- virtual const XalanDOMString & getElementName () const
    Get a string for the name of the element.
- virtual const ElemTemplateElement * startElement (StylesheetExecutionContext &executionContext) const
    Completes "pre-processing" before any sub-elements are invoked (i.e.
- unsigned long getID () const
- XalanNode * getPreviousNode (StylesheetExecutionContext &executionContext, XalanNode *pos) const
    Get the previous node to be counted.
- XalanNode * getTargetNode (StylesheetExecutionContext &executionContext, XalanNode *sourceNode) const
    Get the target node that will be counted..
- virtual const XPath * getXPath (unsigned int index=0) const
    Get XPath pattern/expression of one of the element atribute.

## Static Public Member Functions

- void initialize (MemoryManagerType &theManager)
    Perform static initialization.
- void terminate ()
    Perform static shut down.
- ElemNumber * create (MemoryManagerType &theManager, StylesheetConstructionContext &constructionContext, Stylesheet &stylesheetTree, const AttributeListType &atts, int lineNumber, int columnNumber, unsigned long id)

## Protected Member Functions

- 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 matches the pattern (including the context handed in).
- 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 matches the pattern (including the context handed in).
- const XPath * getCountMatchPattern (StylesheetExecutionContext &executionContext, XalanNode *contextNode) const
    Get the count match pattern, or a default value.
- 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 attributes.
- void getCountString (StylesheetExecutionContext &executionContext, const MutableNodeRefList &ancestors, CountersTable &ctable, CountType numberList[], NodeRefListBase::size_type numberListLength, XalanDOMString &theResult) const
- void getMatchingAncestors (StylesheetExecutionContext &executionContext, XalanNode *node, bool stopAtFirstFound, MutableNodeRefList &ancestors) const
    Get the ancestors, up to the root, that match the pattern.
- XalanNumberFormat * getNumberFormatter (StylesheetExecutionContext &executionContext) const
    Get a formatter.
- void formatNumberList (StylesheetExecutionContext &executionContext, const CountType theList[], NodeRefListBase::size_type theListLength, XalanDOMString &formattedNumber) const
    Format an array of integrals into a formatted string.

## Static Protected Member Functions

- 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 ...
- 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 ...
- void tradAlphaCount (CountType val, XalanDOMString &theResult)
    Convert a long integer into traditional alphabetic counting, in other words count using the traditional numbering.
- void long2roman (CountType val, bool prefixesAreOK, XalanDOMString &theResult)
    Convert an integral into roman numerals.

## Member Typedef Documentation

typedef CountersTable::CountType ElemNumber::CountType

typedef XalanVector<CountType> ElemNumber::CountTypeArrayType

## Member Enumeration Documentation

enum ElemNumber::eLevel

Enumeration values:

  eSingle |
  eMultiple |
  eAny |

## Constructor & Destructor Documentation

ElemNumber::ElemNumber | ( | StylesheetConstructionContext & | constructionContext,
|  | Stylesheet & | stylesheetTree,
|  | const AttributeListType & | atts,
|  | int | lineNumber,
|  | int | columnNumber,
|  | unsigned long | id
| ) |

Construct an object corresponding to an "xsl:number" element.

Parameters:

  constructionContext | context for construction of object
  stylesheetTree | stylesheet containing element
  atts | list of attributes for element
  lineNumber | line number in document
  columnNumber | column number in document
  id | The unique ID within the stylesheet for this xsl:number element

virtual ElemNumber::~ElemNumber | ( |  | ) | `[virtual]`

## Member Function Documentation

ElemNumber* ElemNumber::create | ( | MemoryManagerType & | theManager,
|  | StylesheetConstructionContext & | constructionContext,
|  | Stylesheet & | stylesheetTree,
|  | const AttributeListType & | atts,
|  | int | lineNumber,
|  | int | columnNumber,
|  | unsigned long | id
| ) | `[static]`

XalanNode* ElemNumber::findAncestor | ( | StylesheetExecutionContext & | executionContext,
|  | const XPath * | fromMatchPattern,
|  | const XPath * | countMatchPattern,
|  | XalanNode * | context
| ) | const`[protected]`

Given a 'from' pattern (ala xsl:number), a match pattern and a context, find the first ancestor that matches the pattern (including the context handed in).

Parameters:

  executionContext | The current execution context
  matchPatternString | The match pattern.
  matchPatternString | The count match pattern.
  node | The context node

Returns:
  A pointer to the matched node.

XalanNode* ElemNumber::findPrecedingOrAncestorOrSelf | ( | StylesheetExecutionContext & | executionContext,
|  | const XPath * | fromMatchPattern,
|  | const XPath * | countMatchPattern,
|  | XalanNode * | context
| ) | const`[protected]`

Given a 'from' pattern (ala xsl:number), a match pattern and a context, find the first ancestor that matches the pattern (including the context handed in).

Parameters:

  executionContext | The current execution context
  matchPatternString | The match pattern.
  matchPatternString | The count match pattern.
  node | The context node

Returns:
  A pointer to the matched node.

void ElemNumber::formatNumberList | ( | StylesheetExecutionContext & | executionContext,
|  | const CountType | theList[],
|  | NodeRefListBase::size_type | theListLength,
|  | XalanDOMString & | formattedNumber
| ) | const`[protected]`

Format an array of integrals into a formatted string.

Parameters:

  executionContext | The current execution context.
  theList | Array of one or more integer numbers.
  theListLength | The length of the array.
  formattedNumber | The formatted number result.

const XPath* ElemNumber::getCountMatchPattern | ( | StylesheetExecutionContext & | executionContext,
|  | XalanNode * | contextNode
| ) | const`[protected]`

| Get the count match pattern, or a default value.

void ElemNumber::getCountString | ( | StylesheetExecutionContext & | executionContext,
|  | const MutableNodeRefList & | ancestors,
|  | CountersTable & | ctable,
|  | CountType | numberList[],
|  | NodeRefListBase::size_type | numberListLength,
|  | XalanDOMString & | theResult
| ) | const`[protected]`

void ElemNumber::getCountString | ( | StylesheetExecutionContext & | executionContext,
|  | XalanDOMString & | theResult
| ) | const`[protected]`

| Given an XML source node, get the count according to the parameters set up by the xsl:number attributes.

virtual const XalanDOMString& ElemNumber::getElementName | ( |  | ) | const`[virtual]`

Get a string for the name of the element.

Useful for debugging purposes, and error reporting.

Returns:
  A string containing the name of the element.

Implements ElemTemplateElement.

unsigned long ElemNumber::getID | ( |  | ) | const

void ElemNumber::getMatchingAncestors | ( | StylesheetExecutionContext & | executionContext,
|  | XalanNode * | node,
|  | bool | stopAtFirstFound,
|  | MutableNodeRefList & | ancestors
| ) | const`[protected]`

Get the ancestors, up to the root, that match the pattern.

Parameters:

  patterns | if non-0, count only nodes that match this pattern, if 0 count all ancestors.
  executionContext | The current execution context.
  node | Count this node and it's ancestors.
  stopAtFirstFound | If true, only get the first matching ancestor
  ancestors | The ancestors that match the pattern.

XalanNumberFormat* ElemNumber::getNumberFormatter | ( | StylesheetExecutionContext & | executionContext | ) | const`[protected]`

Get a formatter.

Parameters:

  executionContext | The current execution context.

Returns:
  A new XalanNumberFormat instance. The caller owns the memory.

XalanNode* ElemNumber::getPreviousNode | ( | StylesheetExecutionContext & | executionContext,
|  | XalanNode * | pos
| ) | const

| Get the previous node to be counted.

XalanNode* ElemNumber::getTargetNode | ( | StylesheetExecutionContext & | executionContext,
|  | XalanNode * | sourceNode
| ) | const

| Get the target node that will be counted..

virtual const XPath* ElemNumber::getXPath | ( | unsigned int | index = 0 | ) | const`[virtual]`

Get XPath pattern/expression of one of the element atribute.

number of the attribute. If an attribute has more then one attribute with pattern/expression,the order of the returned expressions are undefined

Returns:
  pointer or null

Reimplemented from ElemTemplateElement.

void ElemNumber::initialize | ( | MemoryManagerType & | theManager | ) | `[static]`

| Perform static initialization. See class XSLTInit.

void ElemNumber::int2alphaCount | ( | CountType | val,
|  | const XalanDOMChar | table[],
|  | XalanDOMString::size_type | length,
|  | XalanDOMString & | theResult
| ) | `[static, protected]`

Convert an integral into alphabetic counting, in other words count using the sequence A B C ...

Z AA AB AC.... etc.

Parameters:

  val | Value to convert -- must be greater than zero.
  table | a table containing one character for each digit in the radix
  length | the table length
  result | returns the stringrepresenting alpha count of number.

See also:
  XSLTEngineImpl#DecimalToRoman

Note that the radix of the conversion is inferred from the size of the table.

void ElemNumber::int2singlealphaCount | ( | CountType | val,
|  | const XalanDOMString & | table,
|  | XalanDOMString & | theResult
| ) | `[static, protected]`

Convert an intergral into alphabetic counting, in other words count using the sequence A B C ...

Z.

Parameters:

  val | Value to convert -- must be greater than zero.
  table | a table containing one character for each digit in the radix
  theResult | A string representing alpha count of number.

See also:
  XSLTEngineImpl#DecimalToRoman

Note that the radix of the conversion is inferred from the size of the table.

void ElemNumber::long2roman | ( | CountType | val,
|  | bool | prefixesAreOK,
|  | XalanDOMString & | theResult
| ) | `[static, protected]`

Convert an integral into roman numerals.

Parameters:

  val | Value to convert.
  prefixesAreOK | true to enable prefix notation (e.g. 4 = "IV"), false to disable prefix notation (e.g. 4 = "IIII").
  theResult | The formatted Roman numeral string.

See also:
  DecimalToRoman

  m_romanConvertTable

virtual const ElemTemplateElement* ElemNumber::startElement | ( | StylesheetExecutionContext & | executionContext | ) | const`[virtual]`

Completes "pre-processing" before any sub-elements are invoked (i.e.

children, attribute sets and templates). If there are no sub-elements it executes the primary function of the element.

Parameters:

  executionContext | context to execute this element

Reimplemented from ElemTemplateElement.

void ElemNumber::terminate | ( |  | ) | `[static]`

| Perform static shut down. See class XSLTInit.

void ElemNumber::tradAlphaCount | ( | CountType | val,
|  | XalanDOMString & | theResult
| ) | `[static, protected]`

Convert a long integer into traditional alphabetic counting, in other words count using the traditional numbering.

Parameters:

  val | Value to convert -- must be greater than zero.
  table | a table containing one character for each digit in the radix

Returns:
  String representing alpha count of number.

See also:
  XSLProcessor#DecimalToRoman

Note that the radix of the conversion is inferred from the size of the table.

The documentation for this class was generated from the following file:

- ElemNumber.hpp

Interpreting class diagrams

Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.

Xalan-C++ XSLT Processor Version 1.9 Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.