Xalan-C++ API Documentation

The Xalan-C++ XSL Transformer Version 1.0

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

XPathExecutionContextDefault Class Reference

A basic implementation of the class XPathExecutionContext. More...

#include <XPathExecutionContextDefault.hpp>

Inheritance diagram for XPathExecutionContextDefault:

XPathExecutionContext ExecutionContext Collaboration diagram for XPathExecutionContextDefault:

List of all members.

Public Types

Public Methods

Protected Types

Protected Methods

Protected Attributes

Static Protected Attributes


Detailed Description

A basic implementation of the class XPathExecutionContext.


Member Typedef Documentation

typedef XObjectArgVectorStackType::iterator XPathExecutionContextDefault::ArgVectorStackIteratorType

typedef std::vector<MutableNodeRefList*> XPathExecutionContextDefault::NodeRefListCacheType

typedef std::deque<XObjectArgVectorType> XPathExecutionContextDefault::XObjectArgVectorStackType


Enumeration Value Documentation

XPathExecutionContextDefault::eArgVectorStackMax = 25 [protected]

XPathExecutionContextDefault::eCachedArgVectorDefaultSize = 10 [protected]

XPathExecutionContextDefault::eMutableNodeRefListCacheMax = 50 [protected]


Constructor & Destructor Documentation

explicit XPathExecutionContextDefault::XPathExecutionContextDefault ( XPathEnvSupport & theXPathEnvSupport,
XPathSupport & theXPathSupport,
XObjectFactory & theXObjectFactory,
XalanNode * theCurrentNode = 0,
const NodeRefListBase * theContextNodeList = 0,
const PrefixResolver * thePrefixResolver = 0)

Construct an XPathExecutionContextDefault object.

Parameters:
theXpathEnvSupport   XPath environment support class instance
theXPathSupport   XPath support class instance
theXobjectFactory   factory class instance for XObjects
theCurrentNode   current node in the source tree
theContextNodeList   node list for current context
thePrefixResolver   pointer to prefix resolver to use

virtual XPathExecutionContextDefault::~XPathExecutionContextDefault () [virtual]


Member Function Documentation

virtual void XPathExecutionContextDefault::associateXLocatorToNode ( const XalanNode * node,
XLocator * xlocator) [virtual]

Associate an XLocator provider to a node.

This makes the association based on the root of the tree that is the node's parent.

Parameters:
node   node for association
xlocator   locator to associate with node

Reimplemented from XPathExecutionContext.

virtual MutableNodeRefList* XPathExecutionContextDefault::borrowMutableNodeRefList () [virtual]

Borrow a cached MutableNodeRefList.

Returns:
A pointer the to node list.

Reimplemented from XPathExecutionContext.

virtual MutableNodeRefList* XPathExecutionContextDefault::createMutableNodeRefList () const [virtual]

Create a MutableNodeRefList with the appropriate context.

Returns:
pointer to node list created

Reimplemented from XPathExecutionContext.

virtual XObject* XPathExecutionContextDefault::createNodeSet ( XalanNode & theNode) [virtual]

Convenience function for creating a node set with the supplied node as the only member.

Parameters:
node   The node queried
Returns:
a pointer to the XObject instance.

Reimplemented from XPathExecutionContext.

virtual bool XPathExecutionContextDefault::elementAvailable ( const XalanDOMString & theNamespace,
const XalanDOMString & elementName) const [virtual]

Determine if an external element is available.

Parameters:
theNamespace   namespace for the element
elementName   name of extension element
Returns:
whether the given element is available or not

Reimplemented from XPathExecutionContext.

virtual void XPathExecutionContextDefault::error ( const XalanDOMString & msg,
const XalanNode * sourceNode = 0,
const XalanNode * styleNode = 0) const [virtual]

Tell the user of an error, and probably throw an exception.

Parameters:
msg   text of message to output
sourceNode   node in source where error occurred
styleNode   node in stylesheet where error occurred

Reimplemented from XPathExecutionContext.

virtual const XObject* XPathExecutionContextDefault::extFunction ( const XalanDOMString & theNamespace,
const XalanDOMString & functionName,
XalanNode * context,
const XObjectArgVectorType & argVec) [virtual]

Handle an extension function.

Parameters:
theNamespace   namespace of function
functionName   extension function name
argVec   vector of arguments to function
Returns:
pointer to XObject result

Reimplemented from XPathExecutionContext.

virtual XalanDOMString XPathExecutionContextDefault::findURIFromDoc ( const XalanDocument * owner) const [virtual]

Given a DOM Document, tell what URI was used to parse it.

Needed for relative resolution.

Parameters:
owner   source document
Returns:
document URI

Reimplemented from XPathExecutionContext.

virtual bool XPathExecutionContextDefault::functionAvailable ( const XalanDOMString & theNamespace,
const XalanDOMString & functionName) const [virtual]

Determine if a function is available.

For standard function availability, theNamespace should be an empty string.

Parameters:
theNamespace   namespace for the function
functionName   name of the function
Returns:
whether the function is available or not

Reimplemented from XPathExecutionContext.

virtual const NodeRefListBase& XPathExecutionContextDefault::getContextNodeList () const [virtual]

Retrieve node list for current context.

Returns:
node list

Reimplemented from XPathExecutionContext.

virtual unsigned int XPathExecutionContextDefault::getContextNodeListLength () const [virtual]

Reimplemented from XPathExecutionContext.

virtual unsigned int XPathExecutionContextDefault::getContextNodeListPosition ( const XalanNode & contextNode) const [virtual]

Reimplemented from XPathExecutionContext.

virtual XalanNode* XPathExecutionContextDefault::getCurrentNode () const [virtual]

Retrieve the node currently being executed.

Returns:
current node

Reimplemented from XPathExecutionContext.

virtual XalanDOMString XPathExecutionContextDefault::getCurrentPattern () const [virtual]

Retrieve the current match pattern.

Returns:
current match pattern

Reimplemented from XPathExecutionContext.

virtual XalanDocument* XPathExecutionContextDefault::getDOMFactory () const [virtual]

Get a DOM document, primarily for creating result tree fragments.

Returns:
DOM document

Reimplemented from XPathExecutionContext.

virtual const XalanDecimalFormatSymbols* XPathExecutionContextDefault::getDecimalFormatSymbols ( const XalanDOMString & name) [virtual]

Retrieve the XalanDecimalFormatSymbols instance associated with the name.

Parameters:
name   the name for the lookup
Returns:
a pointer to the matching instance, or 0 if none was found

Reimplemented from XPathExecutionContext.

virtual XalanElement* XPathExecutionContextDefault::getElementByID ( const XalanDOMString & id,
const XalanDocument & doc) const [virtual]

Given a valid element id, return the corresponding element.

Parameters:
id   string representing ID
doc   document to search
Returns:
element for ID

Reimplemented from XPathExecutionContext.

virtual XalanDOMString XPathExecutionContextDefault::getLocalNameOfNode ( const XalanNode & n) const [virtual]

Returns the local name of the given node.

Parameters:
n   node queried
Returns:
local name string corresponding to 'n'

Reimplemented from XPathExecutionContext.

virtual XalanDOMString XPathExecutionContextDefault::getNameOfNode ( const XalanNode & n) const [virtual]

Retrieve the name of the node, taking into account the differences between the DOM and XSLT data models.

Parameters:
node   DOM node whose name is returned
Returns:
name of the node

Reimplemented from XPathExecutionContext.

virtual XalanDOMString XPathExecutionContextDefault::getNamespaceForPrefix ( const XalanDOMString & prefix) const [virtual]

Retrieve the URI corresponding to a namespace prefix.

Parameters:
prefix   prefix for a namespace
Returns:
URI corresponding to namespace

Reimplemented from XPathExecutionContext.

virtual XalanDOMString XPathExecutionContextDefault::getNamespaceOfNode ( const XalanNode & n) const [virtual]

Retrieve namespace corresponding to a DOM node.

Parameters:
n   DOM node queried
Returns:
namespace string corresponding to 'n'

Reimplemented from XPathExecutionContext.

virtual XalanDOMString XPathExecutionContextDefault::getNodeData ( const XalanNode & n) const [virtual]

Get node data recursively.

(Note whitespace issues.)

Parameters:
n   DOM node queried
Returns:
string of data for node 'n'

Reimplemented from XPathExecutionContext.

virtual void XPathExecutionContextDefault::getNodeSetByKey ( XalanNode * doc,
const XalanDOMString & name,
const XalanDOMString & ref,
const PrefixResolver & resolver,
MutableNodeRefList & nodelist) [virtual]

Given a valid element key, return the corresponding node list.

Parameters:
doc   source document
name   name of the key, which must match the 'name' attribute on xsl:key
ref   value that must match the value found by the 'match' attribute on xsl:key
resolver   resolver for namespace resolution
nodelist   A node list to contain the nodes found

Reimplemented from XPathExecutionContext.

virtual XalanNode* XPathExecutionContextDefault::getParentOfNode ( const XalanNode & n) const [virtual]

Returns the parent of the given node.

Parameters:
n   DOM node queried
Returns:
parent node for 'n'

Reimplemented from XPathExecutionContext.

virtual const PrefixResolver* XPathExecutionContextDefault::getPrefixResolver () const [virtual]

Retrieve the resolver for namespaces.

Returns:
object for namespace resolution

Reimplemented from XPathExecutionContext.

virtual bool XPathExecutionContextDefault::getProcessNamespaces () const [virtual]

Tells if namespaces should be supported.

For optimization purposes.

Returns:
true if namespaces supported

Reimplemented from XPathExecutionContext.

virtual XalanDocument* XPathExecutionContextDefault::getSourceDocument ( const XalanDOMString & theURI) const [virtual]

Reimplemented from XPathExecutionContext.

virtual bool XPathExecutionContextDefault::getThrowFoundIndex () const [virtual]

Tells if FoundIndex should be thrown if index is found.

This is an optimization for match patterns, and is used internally by the XPath engine.

Returns:
true to throw FoundIndex

Reimplemented from XPathExecutionContext.

virtual XalanDOMString XPathExecutionContextDefault::getUnparsedEntityURI ( const XalanDOMString & theName,
const XalanDocument & theDocument) const [virtual]

The getUnparsedEntityURI function returns the URI of the unparsed entity with the specified name in the same document as the context node (see [3.3 Unparsed Entities]).

It returns the empty string if there is no such entity.

Parameters:
theName   name of entity
theDocument   document containing entity
Returns:
URI for the entity

Reimplemented from XPathExecutionContext.

virtual const XObject* XPathExecutionContextDefault::getVariable ( const QName & name) const [virtual]

Given a name, locate a variable in the current context, and return a pointer to the object.

Parameters:
theName   name of variable
Returns:
pointer to an XObject if the variable was found, 0 if it was not

Reimplemented from XPathExecutionContext.

virtual XLocator* XPathExecutionContextDefault::getXLocatorFromNode ( const XalanNode * node) const [virtual]

Get an XLocator provider keyed by node.

This gets the association based on the root of the tree that is the node's parent.

Parameters:
node   node for locator
Returns:
pointer to locator

Reimplemented from XPathExecutionContext.

virtual XObjectFactory& XPathExecutionContextDefault::getXObjectFactory () const [virtual]

Retrieve the factory object for creating XObjects.

Returns:
factory object instance

Reimplemented from XPathExecutionContext.

virtual bool XPathExecutionContextDefault::isIgnorableWhitespace ( const XalanText & node) const [virtual]

Tell if the node is ignorable whitespace.

This should be in the DOM. Return false if the parser doesn't handle this.

Parameters:
node   text node queried
Returns:
true if white space can be ignored

Reimplemented from XPathExecutionContext.

virtual bool XPathExecutionContextDefault::isNodeAfter ( const XalanNode & node1,
const XalanNode & node2) const [virtual]

Determine if a node is after another node, in document order.

Parameters:
node1   The first node
node2   The second node
Returns:
true if node1 one is after node2, or false if it is not.

Reimplemented from XPathExecutionContext.

virtual void XPathExecutionContextDefault::message ( const XalanDOMString & msg,
const XalanNode * sourceNode = 0,
const XalanNode * styleNode = 0) const [virtual]

Output a message.

Parameters:
msg   text of message to output
sourceNode   node in source where error occurred
styleNode   node in stylesheet where error occurred

Reimplemented from XPathExecutionContext.

virtual XalanDocument* XPathExecutionContextDefault::parseXML ( const XalanDOMString & urlString,
const XalanDOMString & base) const [virtual]

Provides support for XML parsing service.

Parameters:
urlString   location of the XML
base   base location for URI
Returns:
parsed document

Reimplemented from XPathExecutionContext.

virtual void XPathExecutionContextDefault::popArgVector () [virtual]

Pop the arg vector from the execution context.

Reimplemented from XPathExecutionContext.

virtual XObjectArgVectorType& XPathExecutionContextDefault::pushArgVector () [virtual]

Push an arg vector on the execution context and return a reference to it.

Must be followed by a pop.

Returns:
a reference to an arg vector.

Reimplemented from XPathExecutionContext.

virtual void XPathExecutionContextDefault::reset () [virtual]

Reset the instance.

This must be called before another execution is attempted.

Reimplemented from XPathExecutionContext.

virtual bool XPathExecutionContextDefault::returnMutableNodeRefList ( MutableNodeRefList * theList) [virtual]

Return a previously borrowed MutableNodeRefList.

Parameters:
theList   A pointer the to previously borrowed node list.
Returns:
true if the list was borrowed (at therefore, destroyed), false if not.

Reimplemented from XPathExecutionContext.

virtual void XPathExecutionContextDefault::setContextNodeList ( const NodeRefListBase & theList) [virtual]

Set node list for current context.

Parameters:
theList   new node list

Reimplemented from XPathExecutionContext.

virtual void XPathExecutionContextDefault::setCurrentNode ( XalanNode * theCurrentNode) [virtual]

Change the node currently being executed.

Parameters:
theCurrentNode   new current node

Reimplemented from XPathExecutionContext.

virtual void XPathExecutionContextDefault::setCurrentPattern ( const XalanDOMString & thePattern) [virtual]

Sets the current match pattern.

Parameters:
thePattern   new match pattern

Reimplemented from XPathExecutionContext.

virtual void XPathExecutionContextDefault::setPrefixResolver ( const PrefixResolver * thePrefixResolver) [virtual]

Change the resolver for namespaces.

Parameters:
thePrefixResolver   new object for namespace resolution

Reimplemented from XPathExecutionContext.

virtual void XPathExecutionContextDefault::setSourceDocument ( const XalanDOMString & theURI,
XalanDocument * theDocument) [virtual]

Associate a document with a given URI.

Parameters:
theURI   document URI
theDocument   source document

Reimplemented from XPathExecutionContext.

virtual void XPathExecutionContextDefault::setThrowFoundIndex ( bool fThrow) [virtual]

Changes whether FoundIndex should be thrown if index is found.

This is an optimization for match patterns, and is used internally by the XPath engine.

Parameters:
fThrow   true to throw FoundIndex

Reimplemented from XPathExecutionContext.

virtual bool XPathExecutionContextDefault::shouldStripSourceNode ( const XalanNode & node) [virtual]

Tells, through the combination of the default-space attribute on xsl:stylesheet, xsl:strip-space, xsl:preserve-space, and the xml:space attribute, whether or not extra whitespace should be stripped from the node.

Literal elements from template elements should not be tested with this function.

Parameters:
textNode   text node from the source tree
Returns:
true if the text node should be stripped of extra whitespace

Reimplemented from XPathExecutionContext.

virtual void XPathExecutionContextDefault::warn ( const XalanDOMString & msg,
const XalanNode * sourceNode = 0,
const XalanNode * styleNode = 0) const [virtual]

Tell the user of an warning, and probably throw an exception.

Parameters:
msg   text of message to output
sourceNode   node in source where error occurred
styleNode   node in stylesheet where error occurred

Reimplemented from XPathExecutionContext.


Member Data Documentation

XObjectArgVectorStackType XPathExecutionContextDefault::m_argVectorsStack [protected]

ArgVectorStackIteratorType XPathExecutionContextDefault::m_argVectorsStackPosition [protected]

NodeRefListCacheType XPathExecutionContextDefault::m_availableCachedNodeLists [protected]

NodeRefListCacheType XPathExecutionContextDefault::m_busyCachedNodeLists [protected]

const NodeRefListBase * XPathExecutionContextDefault::m_contextNodeList [protected]

XalanNode * XPathExecutionContextDefault::m_currentNode [protected]

XalanDOMString XPathExecutionContextDefault::m_currentPattern [protected]

const PrefixResolver * XPathExecutionContextDefault::m_prefixResolver [protected]

bool XPathExecutionContextDefault::m_throwFoundIndex [protected]

XObjectFactory & XPathExecutionContextDefault::m_xobjectFactory [protected]

XPathEnvSupport & XPathExecutionContextDefault::m_xpathEnvSupport [protected]

XPathSupport & XPathExecutionContextDefault::m_xpathSupport [protected]

const NodeRefList XPathExecutionContextDefault::s_dummyList [static, protected]


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

Interpreting class diagrams

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

Xalan-C++ XSL Transformer Version 1.0
Copyright © 2000 The Apache Software Foundation. All Rights Reserved.