Xalan-C++ API Reference  1.12.0
Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
xalanc::XercesDocumentWrapper Class Reference

#include <xalanc/XercesParserLiaison/XercesDocumentWrapper.hpp>

Inheritance diagram for xalanc::XercesDocumentWrapper:
[legend]
Collaboration diagram for xalanc::XercesDocumentWrapper:
[legend]

Classes

class  BuildWrapperTreeWalker
 

Public Types

typedef XalanVector< XalanNode * > NodeVectorType
 
- Public Types inherited from xalanc::XalanNode
enum  NodeType {
  UNKNOWN_NODE = 0, ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3,
  CDATA_SECTION_NODE = 4, ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7,
  COMMENT_NODE = 8, DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11,
  NOTATION_NODE = 12
}
 
typedef unsigned long IndexType
 

Public Member Functions

 XercesDocumentWrapper (MemoryManager &theManager, const DOMDocument_Type *theXercesDocument, bool threadSafe=true, bool buildWrapper=true, bool buildMaps=false)
 Constructor for XercesDocumentWrapper. More...
 
MemoryManager & getMemoryManager () const
 
virtual ~XercesDocumentWrapper ()
 
virtual const XalanDOMStringgetNodeName () const
 Gets the name of this node, depending on its type. More...
 
virtual const XalanDOMStringgetNodeValue () const
 Gets the value of this node, depending on its type. More...
 
virtual NodeType getNodeType () const
 An enum value representing the type of the underlying object. More...
 
virtual XalanNodegetParentNode () const
 Gets the parent of this node. More...
 
virtual const XalanNodeListgetChildNodes () const
 Gets a NodeList that contains all children of this node. More...
 
virtual XalanNodegetFirstChild () const
 Gets the first child of this node. More...
 
virtual XalanNodegetLastChild () const
 Gets the last child of this node. More...
 
virtual XalanNodegetPreviousSibling () const
 Gets the node immediately preceding this node. More...
 
virtual XalanNodegetNextSibling () const
 Gets the node immediately following this node. More...
 
virtual const XalanNamedNodeMapgetAttributes () const
 Gets a NamedNodeMap containing the attributes of this node (if it is an Element) or null otherwise. More...
 
virtual XalanDocumentgetOwnerDocument () const
 Gets the Document object associated with this node. More...
 
virtual const XalanDOMStringgetNamespaceURI () const
 Get the namespace URI of this node, or null if it is unspecified. More...
 
virtual const XalanDOMStringgetPrefix () const
 Get the namespace prefix of this node, or null if it is unspecified. More...
 
virtual const XalanDOMStringgetLocalName () const
 Returns the local part of the qualified name of this node. More...
 
virtual bool isIndexed () const
 Determine if the document is node-order indexed. More...
 
virtual IndexType getIndex () const
 Get the node's index. More...
 
virtual XalanElementgetDocumentElement () const
 Return a reference to the root element of the document. More...
 
virtual XalanElementgetElementById (const XalanDOMString &elementId) const
 Returns the Element whose ID is given by elementId. More...
 
void destroyWrapper ()
 Destroy the entire bridge structure that connects the Xerces document to this XercesDocumentWrapper instance. More...
 
void rebuildWrapper ()
 Rebuild the entire bridge structure that connects the Xerces document to this XercesDocumentWrapper instance. More...
 
XalanNodemapNode (const DOMNodeType *theXercesNode) const
 Map a Xerces node to the corresponding wrapper node. More...
 
XalanAttrmapNode (const DOMAttrType *theXercesNode) const
 Map a Xerces node to the corresponding wrapper node. More...
 
XalanElementmapNode (const DOMElementType *theXercesNode) const
 Map a Xerces node to the corresponding wrapper node. More...
 
const DOMNodeTypemapNode (XalanNode *theXalanNode) const
 Map a XalanNode to the corresponding Xerces node. More...
 
const DOMDocument_TypegetXercesDocument () const
 Get the Xerces DOMDocument that this XercesDocument represents. More...
 
void buildWrapperNodes ()
 Build the entire bridge structure. More...
 
const XalanDOMStringgetPooledString (const XalanDOMString &theString) const
 Get a pooled string. More...
 
const XalanDOMStringgetPooledString (const XalanDOMChar *theString, XalanDOMString::size_type theLength=XalanDOMString::npos) const
 Get a pooled string. More...
 
bool getMappingMode () const
 
- Public Member Functions inherited from xalanc::XalanDocument
 XalanDocument ()
 
virtual ~XalanDocument ()
 
- Public Member Functions inherited from xalanc::XalanNode
 XalanNode ()
 
virtual ~XalanNode ()
 

Static Public Member Functions

static XercesDocumentWrappercreate (MemoryManager &theManager, const DOMDocument_Type *theXercesDocument, bool threadSafe, bool buildWrapper, bool buildMaps)
 

Friends

class XercesWrapperNavigator
 
class BuildWrapperTreeWalker
 

Additional Inherited Members

- Protected Member Functions inherited from xalanc::XalanDocument
 XalanDocument (const XalanDocument &theSource)
 
XalanDocumentoperator= (const XalanDocument &theSource)
 
bool operator== (const XalanDocument &theRHS) const
 
- Protected Member Functions inherited from xalanc::XalanNode
 XalanNode (const XalanNode &theSource)
 
XalanNodeoperator= (const XalanNode &theSource)
 
bool operator== (const XalanNode &theRHS) const
 

Detailed Description

Definition at line 77 of file XercesDocumentWrapper.hpp.

Member Typedef Documentation

◆ NodeVectorType

Definition at line 274 of file XercesDocumentWrapper.hpp.

Constructor & Destructor Documentation

◆ XercesDocumentWrapper()

xalanc::XercesDocumentWrapper::XercesDocumentWrapper ( MemoryManager &  theManager,
const DOMDocument_Type theXercesDocument,
bool  threadSafe = true,
bool  buildWrapper = true,
bool  buildMaps = false 
)

Constructor for XercesDocumentWrapper.

If the document will be shared amongst multiple threads of execution, the parameter buildWrapper must be true. Otherwise, the bridge nodes will be built on demand, a process which is not synchronized. This could cause serious problems if multiple threads tried to visit an unbuilt node at the same time.

Parameters
theXercesDocumentThe Xerces document to bridge
threadSafeIf true, the tree can safely be shared amongst multiple threads. (Also implies buildWrapper == true)
buildWrapperIf true, all of the bridge nodes will be built during construction.
buildMapsIf true, a map of Xerces to Xalan nodes will be built, even if the bridge is built

◆ ~XercesDocumentWrapper()

virtual xalanc::XercesDocumentWrapper::~XercesDocumentWrapper ( )
virtual

Member Function Documentation

◆ buildWrapperNodes()

void xalanc::XercesDocumentWrapper::buildWrapperNodes ( )

Build the entire bridge structure.

This should be done before any processing begins, if the tree will be shared amongst multiple threads.

◆ create()

static XercesDocumentWrapper* xalanc::XercesDocumentWrapper::create ( MemoryManager &  theManager,
const DOMDocument_Type theXercesDocument,
bool  threadSafe,
bool  buildWrapper,
bool  buildMaps 
)
static

◆ destroyWrapper()

void xalanc::XercesDocumentWrapper::destroyWrapper ( )

Destroy the entire bridge structure that connects the Xerces document to this XercesDocumentWrapper instance.

This will invalidate any pointers to any nodes in the document (except, of course, the document itself).

◆ getAttributes()

virtual const XalanNamedNodeMap* xalanc::XercesDocumentWrapper::getAttributes ( ) const
virtual

Gets a NamedNodeMap containing the attributes of this node (if it is an Element) or null otherwise.

Implements xalanc::XalanDocument.

◆ getChildNodes()

virtual const XalanNodeList* xalanc::XercesDocumentWrapper::getChildNodes ( ) const
virtual

Gets a NodeList that contains all children of this node.

If there are no children, this is a NodeList containing no nodes.

Implements xalanc::XalanDocument.

◆ getDocumentElement()

virtual XalanElement* xalanc::XercesDocumentWrapper::getDocumentElement ( ) const
virtual

Return a reference to the root element of the document.

Implements xalanc::XalanDocument.

◆ getElementById()

virtual XalanElement* xalanc::XercesDocumentWrapper::getElementById ( const XalanDOMString elementId) const
virtual

Returns the Element whose ID is given by elementId.

If no such element exists, returns null. Behavior is not defined if more than one element has this ID.

Note: The DOM implementation must have information that says which attributes are of type ID. Attributes with the name "ID" are not of type ID unless so defined. Implementations that do not know whether attributes are of type ID or not are expected to return null.

Parameters
elementIdThe unique id value for an element.
Returns
The matching element.

Implements xalanc::XalanDocument.

◆ getFirstChild()

virtual XalanNode* xalanc::XercesDocumentWrapper::getFirstChild ( ) const
virtual

Gets the first child of this node.

If there is no such node, this returns null.

Implements xalanc::XalanDocument.

◆ getIndex()

virtual IndexType xalanc::XercesDocumentWrapper::getIndex ( ) const
virtual

Get the node's index.

Valid only if isIndexed() reports that the document is node-order indexed.

Returns
The index value, or 0 if the node is not indexed.

Implements xalanc::XalanDocument.

◆ getLastChild()

virtual XalanNode* xalanc::XercesDocumentWrapper::getLastChild ( ) const
virtual

Gets the last child of this node.

If there is no such node, this returns null.

Implements xalanc::XalanDocument.

◆ getLocalName()

virtual const XalanDOMString& xalanc::XercesDocumentWrapper::getLocalName ( ) const
virtual

Returns the local part of the qualified name of this node.

For nodes created with a DOM Level 1 method, such as createElement from the Document interface, it is null.

Implements xalanc::XalanDocument.

◆ getMappingMode()

bool xalanc::XercesDocumentWrapper::getMappingMode ( ) const
inline

Definition at line 358 of file XercesDocumentWrapper.hpp.

◆ getMemoryManager()

MemoryManager& xalanc::XercesDocumentWrapper::getMemoryManager ( ) const
inline

Definition at line 115 of file XercesDocumentWrapper.hpp.

◆ getNamespaceURI()

virtual const XalanDOMString& xalanc::XercesDocumentWrapper::getNamespaceURI ( ) const
virtual

Get the namespace URI of this node, or null if it is unspecified.

This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time.

For nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and nodes created with a DOM Level 1 method, such as createElement from the Document interface, this is always null.

Implements xalanc::XalanDocument.

◆ getNextSibling()

virtual XalanNode* xalanc::XercesDocumentWrapper::getNextSibling ( ) const
virtual

Gets the node immediately following this node.

If there is no such node, this returns null.

Implements xalanc::XalanDocument.

◆ getNodeName()

virtual const XalanDOMString& xalanc::XercesDocumentWrapper::getNodeName ( ) const
virtual

Gets the name of this node, depending on its type.

Implements xalanc::XalanDocument.

◆ getNodeType()

virtual NodeType xalanc::XercesDocumentWrapper::getNodeType ( ) const
virtual

An enum value representing the type of the underlying object.

Implements xalanc::XalanDocument.

◆ getNodeValue()

virtual const XalanDOMString& xalanc::XercesDocumentWrapper::getNodeValue ( ) const
virtual

Gets the value of this node, depending on its type.

Implements xalanc::XalanDocument.

◆ getOwnerDocument()

virtual XalanDocument* xalanc::XercesDocumentWrapper::getOwnerDocument ( ) const
virtual

Gets the Document object associated with this node.

This is also the Document object used to create new nodes. When this node is a Document or a DocumentType which is not used with any Document yet, this is null.

Implements xalanc::XalanDocument.

◆ getParentNode()

virtual XalanNode* xalanc::XercesDocumentWrapper::getParentNode ( ) const
virtual

Gets the parent of this node.

All nodes, except Document, DocumentFragment, and Attr may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, a null Node is returned.

Implements xalanc::XalanDocument.

◆ getPooledString() [1/2]

const XalanDOMString& xalanc::XercesDocumentWrapper::getPooledString ( const XalanDOMChar *  theString,
XalanDOMString::size_type  theLength = XalanDOMString::npos 
) const

Get a pooled string.

If the string is not in the pool, add it.

Parameters
theStringThe string to pool.
theLengthThe length of the string. If XalanDOMString::npos, the string is assumed to be null-terminated.
Returns
A const reference to the pooled string.

◆ getPooledString() [2/2]

const XalanDOMString& xalanc::XercesDocumentWrapper::getPooledString ( const XalanDOMString theString) const

Get a pooled string.

If the string is not in the pool, add it.

Parameters
theStringThe string to pool.
Returns
A const reference to the pooled string.

◆ getPrefix()

virtual const XalanDOMString& xalanc::XercesDocumentWrapper::getPrefix ( ) const
virtual

Get the namespace prefix of this node, or null if it is unspecified.

Implements xalanc::XalanDocument.

◆ getPreviousSibling()

virtual XalanNode* xalanc::XercesDocumentWrapper::getPreviousSibling ( ) const
virtual

Gets the node immediately preceding this node.

If there is no such node, this returns null.

Implements xalanc::XalanDocument.

◆ getXercesDocument()

const DOMDocument_Type* xalanc::XercesDocumentWrapper::getXercesDocument ( ) const
inline

Get the Xerces DOMDocument that this XercesDocument represents.

Returns
the Xerces DOMDocument instance.

Definition at line 261 of file XercesDocumentWrapper.hpp.

◆ isIndexed()

virtual bool xalanc::XercesDocumentWrapper::isIndexed ( ) const
virtual

Determine if the document is node-order indexed.

Returns
true if the document is indexed, otherwise false.

Implements xalanc::XalanDocument.

◆ mapNode() [1/4]

XalanAttr* xalanc::XercesDocumentWrapper::mapNode ( const DOMAttrType theXercesNode) const

Map a Xerces node to the corresponding wrapper node.

If the constructor for the instance was called with the threadSafe or buildWrapper parameter equal to true, this call will fail.

Parameters
theXercesNodeThe Xerces instance to map
Returns
The pointer to the corresponding XalanNode instance, or 0 if the node could not be mapped.

◆ mapNode() [2/4]

XalanElement* xalanc::XercesDocumentWrapper::mapNode ( const DOMElementType theXercesNode) const

Map a Xerces node to the corresponding wrapper node.

If the constructor for the instance was called with the threadSafe or buildWrapper parameter equal to true, this call will fail.

Parameters
theXercesNodeThe Xerces instance to map
Returns
The pointer to the corresponding XalanNode instance, or 0 if the node could not be mapped.

◆ mapNode() [3/4]

XalanNode* xalanc::XercesDocumentWrapper::mapNode ( const DOMNodeType theXercesNode) const

Map a Xerces node to the corresponding wrapper node.

If the constructor for the instance was called with the threadSafe or buildWrapper parameter equal to true, this call will fail.

Parameters
theXercesNodeThe Xerces instance to map
Returns
The pointer to the corresponding XalanNode instance, or 0 if the node could not be mapped.

◆ mapNode() [4/4]

const DOMNodeType* xalanc::XercesDocumentWrapper::mapNode ( XalanNode theXalanNode) const

Map a XalanNode to the corresponding Xerces node.

If the node not owned by this document, the function will throw XalanDOMException with the code WRONG_DOCUMENT_ERR.

Parameters
theXalanNodeThe Xalan instance to map
Returns
The pointer to the corresponding XalanNode instance, or 0 if the node could not be mapped.

◆ rebuildWrapper()

void xalanc::XercesDocumentWrapper::rebuildWrapper ( )

Rebuild the entire bridge structure that connects the Xerces document to this XercesDocumentWrapper instance.

This destroys the bridge before rebuilding.

Friends And Related Function Documentation

◆ BuildWrapperTreeWalker

friend class BuildWrapperTreeWalker
friend

Definition at line 466 of file XercesDocumentWrapper.hpp.

◆ XercesWrapperNavigator

friend class XercesWrapperNavigator
friend

Definition at line 81 of file XercesDocumentWrapper.hpp.


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