src/xalanc/XalanDOM/XalanNode.hpp (72 lines of code) (raw):

/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #if !defined(XALANNODE_HEADER_GUARD_1357924680) #define XALANNODE_HEADER_GUARD_1357924680 #include <xalanc/XalanDOM/XalanDOMDefinitions.hpp> namespace XALAN_CPP_NAMESPACE { class XalanDOMString; class XalanDocument; class XalanNamedNodeMap; class XalanNodeList; class XALAN_DOM_EXPORT XalanNode { public: XalanNode(); virtual ~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; /** * Gets the name of this node, depending on its type. */ virtual const XalanDOMString& getNodeName() const = 0; /** * Gets the value of this node, depending on its type. */ virtual const XalanDOMString& getNodeValue() const = 0; /** * An enum value representing the type of the underlying object. */ virtual NodeType getNodeType() const = 0; /** * Gets the parent of this node. * * If there is no such node, this returns a null pointer. */ virtual XalanNode* getParentNode() const = 0; /** * Gets a XalanNodeList that contains all children of this node. * * If there are no children, this is a XalanNodeList containing no nodes. */ virtual const XalanNodeList* getChildNodes() const = 0; /** * Gets the first child of this node. * * If there is no such node, this returns a null pointer. */ virtual XalanNode* getFirstChild() const = 0; /** * Gets the last child of this node. * * If there is no such node, this returns a null pointer. */ virtual XalanNode* getLastChild() const = 0; /** * Gets the node immediately preceding this node. * * If there is no such node, this returns a null pointer. */ virtual XalanNode* getPreviousSibling() const = 0; /** * Gets the node immediately following this node. * * If there is no such node, this returns a null pointer. */ virtual XalanNode* getNextSibling() const = 0; /** * Gets a XalanNamedNodeMap containing the attributes of this node (if it * is an XalanElement) or a null pointer otherwise. */ virtual const XalanNamedNodeMap* getAttributes() const = 0; /** * Gets the XalanDocument object associated with this node. This may * be a null pointer. */ virtual XalanDocument* getOwnerDocument() const = 0; /** * Get the namespace URI of this node. */ virtual const XalanDOMString& getNamespaceURI() const = 0; /** * Get the namespace prefix of this node. */ virtual const XalanDOMString& getPrefix() const = 0; /** * Returns the local part of the qualified name of this node. */ virtual const XalanDOMString& getLocalName() const = 0; /** * Determine if the document is node-order indexed. * * @return true if the document is indexed, otherwise false. */ virtual bool isIndexed() const = 0; /** * Get the node's index. Valid only if the owner document * reports that the document is node-order indexed. * * @return The index value, or 0 if the node is not indexed. */ virtual IndexType getIndex() const = 0; protected: XalanNode(const XalanNode& theSource); XalanNode& operator=(const XalanNode& theSource); bool operator==(const XalanNode& theRHS) const; }; } #endif // !defined(XALANNODE_HEADER_GUARD_1357924680)