## Xalan-C++ API Documentation

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

Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members

# ElemNumber Class Reference

`#include <ElemNumber.hpp>`

Inheritance diagram for ElemNumber

Collaboration diagram for ElemNumber:

List of all members.

## Public Types

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

## Public Methods

- ElemNumber ( StylesheetConstructionContext& constructionContext, Stylesheet& stylesheetTree, const AttributeListType& atts, int lineNumber, int columnNumber, unsigned long id)
    Construct an object corresponding to an "xsl:number" element. More...
- virtual ~ElemNumber ()
- virtual const XalanDOMString& getElementName () const
    Get a string for the name of the element. More...
- virtual void execute (StylesheetExecutionContext& executionContext) const
    Execute the element's primary function. More...
- 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. More...

## Static Public Methods

- void initialize ()
    Perform static initialization. More...
- void terminate ()
    Perform static shut down. More...

## Protected Methods

- 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). More...
- 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). More...
- 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. More...
- XalanNumberFormat* getNumberFormatter (StylesheetExecutionContext& executionContext) const
    Get a formatter. More...
- void formatNumberList ( StylesheetExecutionContext& executionContext, const CountType theList[], NodeRefListBase::size_type theListLength, XalanDOMString& formattedNumber) const
    Format an array of integrals into a formatted string. More...

## Static Protected Methods

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

## Member Typedef Documentation

typedef CountersTable::CountType ElemNumber::CountType

typedef std::vector<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

virtual void ElemNumber::execute ( | StylesheetExecutionContext & executionContext ) const`[virtual]`

Execute the element's primary function.

Subclasses of this function may recursively execute down the element tree.

Parameters:

  executionContext | The current execution context

Reimplemented from ElemTemplateElement.

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.

Reimplemented from 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.

@index 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 ( | )`[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

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.7 Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.