DOM::Node Struct Reference

#include <DOM.hpp>

Inheritance diagram for DOM::Node:

DOM::Attr DOM::CharacterData DOM::Document DOM::DocumentFragment DOM::DocumentType DOM::Element DOM::EntityReference DOM::Comment DOM::Text DOM::CDATASection List of all members.

Detailed Description

This structure is here to ensure DOM compatibility.


Public Member Functions

const NodeappendChild (const Node *newNode)
 Append a child to the children list.
virtual const NamedNodeMapattributes () const
 Get the attributes (if this node is an Element).
NodeListchildNodes () const
 Get the child nodes.
NodecloneNode (bool deepCloning) const throw ()
 Clone this node This methods returns a duplicate for this node, but the returned node has no parent.
const NodefirstChild () const
 Get the first child pointer.
const NodefirstChildOfType (const NodeType::Type type) const
 Get the first child pointer of the given type.
const uint32 getChildrenCount () const throw ()
 Get the children count.
const uint16 getNodeType () const
 Get the node type as the DOM 2.0 standard requires it.
bool hasAttributes () const throw ()
 Does this node has attribute ?
bool hasChildNodes () const throw ()
 Does this node has children ?
const NodeinsertBefore (const Node *newNode, const Node *refNode)
 Insert a node before the given node.
const NodelastChild () const
 Get the last child pointer.
virtual DOMString localName () const
 Get the local name.
virtual DOMString namespaceURI () const
 Get the namespace URI (if specified).
const NodenextSibling () const
 Get the next node in the same current child level.
virtual DOMString nodeName () const
 Get the node name.
virtual void nodeValue (const DOMString &newValue)
 Set the node value.
virtual DOMString nodeValue () const
 Get the node value.
void normalize () throw ()
 Normalize this tree so that the tree will never have 2 adjacent Text child, or an empty Text child This is used to the tree structure is kept as minimal (normalized).
const DOM::DocumentownerDocument () const
 Get the owner document.
const NodeparentNode () const
 Get the parent node.
void prefix (const DOMString &) const
 Set the prefix.
virtual DOMString prefix () const
 Get the prefix.
const NodepreviousSibling () const
 Get the previous node in the same current child level.
const NoderemoveChild (const Node *oldNode)
 Remove a child.
const NodereplaceChild (const Node *newNode, const Node *oldNode)
 Replace a child node by another node.
virtual void returnToAllocator (const volatile HTML::Elements::Allocators::BaseAllocator *allocator)
 Return this node to the allocator.
void setTreeNode (DOMTree::Node *newTreeNode) const
 Set the reference correctly.
void Suicide ()
 Make this node commit suicide itself.
virtual ~Node ()
 Virtually destruct a node.

Static Public Member Functions

static bool isSupported (const DOMString &feature, const DOMString &version)
 Tell if the given features is supported.

Public Attributes

const NodeType::Type nodeType
 The node type.

Protected Member Functions

virtual NodeClone (bool deepCopy) const throw ()
 The clone implementation.
const DOMTree::NodegetTreeNode () const
 Get the underlying tree node.
DOMTree::NodegetTreeNode ()
 Get the underlying tree node.
 Node (const NodeType::Type &type, DOMTree::Node *ref=0)
 Construct a node from its type.

Classes

struct  NodeType
 The node type as defined in DOM Level 2. More...


Constructor & Destructor Documentation

DOM::Node::Node ( const NodeType::Type type,
DOMTree::Node ref = 0 
) [inline, protected]

Construct a node from its type.

virtual DOM::Node::~Node (  )  [inline, virtual]

Virtually destruct a node.


Member Function Documentation

const Node* DOM::Node::appendChild ( const Node newNode  )  [inline]

Append a child to the children list.

Parameters:
newNode the new node to append to the list
Returns:
the node added

virtual const NamedNodeMap* DOM::Node::attributes (  )  const [inline, virtual]

Get the attributes (if this node is an Element).

Returns:
0 if this node is not an element, or the NamedNodeMap pointer else

Reimplemented in DOM::Element.

NodeList* DOM::Node::childNodes (  )  const [inline]

Get the child nodes.

Returns:
a pointer on a newly created NodeList object that can be used to access the child nodes

virtual Node* DOM::Node::Clone ( bool  deepCopy  )  const throw () [inline, protected, virtual]

The clone implementation.

Reimplemented in DOM::Text, DOM::Attr, DOM::Element, and DOM::Comment.

Node* DOM::Node::cloneNode ( bool  deepCloning  )  const throw () [inline]

Clone this node This methods returns a duplicate for this node, but the returned node has no parent.

This is a very long process.

Warning:
Cloning is Node type dependent, please refer to http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html for implication
Parameters:
deepCloning Does the cloning should also clone childrens
Returns:
the cloned node

const Node* DOM::Node::firstChild (  )  const [inline]

Get the first child pointer.

Returns:
the first child Node pointer or 0 if no child is available

const Node* DOM::Node::firstChildOfType ( const NodeType::Type  type  )  const [inline]

Get the first child pointer of the given type.

Parameters:
type The child type to look for
Returns:
the first child Node pointer of the given type or 0 if no child of this type is available

const uint32 DOM::Node::getChildrenCount (  )  const throw () [inline]

Get the children count.

Returns:
the number of children if known

const uint16 DOM::Node::getNodeType (  )  const [inline]

Get the node type as the DOM 2.0 standard requires it.

const DOMTree::Node* DOM::Node::getTreeNode (  )  const [inline, protected]

Get the underlying tree node.

DOMTree::Node* DOM::Node::getTreeNode (  )  [inline, protected]

Get the underlying tree node.

bool DOM::Node::hasAttributes (  )  const throw () [inline]

Does this node has attribute ?

Returns:
true if this node is an Element with attributes

bool DOM::Node::hasChildNodes (  )  const throw () [inline]

Does this node has children ?

Returns:
true if this node is parent

const Node* DOM::Node::insertBefore ( const Node newNode,
const Node refNode 
) [inline]

Insert a node before the given node.

Parameters:
newNode the new node pointer to insert before refNode
refNode the reference node to find. If refNode is 0, the newNode is appended, otherwise it Exception::NotFound is thrown
Returns:
the Node being inserted
Exceptions:
Exceptions::NotFound if the given node is not found

static bool DOM::Node::isSupported ( const DOMString feature,
const DOMString version 
) [inline, static]

Tell if the given features is supported.

Parameters:
feature the feature name
version the version number ("1.0", "2.0" etc...)
Returns:
true if the given feature is supported with the given version

const Node* DOM::Node::lastChild (  )  const [inline]

Get the last child pointer.

Returns:
the last child Node pointer or 0 if no child is available

virtual DOMString DOM::Node::localName (  )  const [inline, virtual]

Get the local name.

Todo:
implement this once I understand what it means for HTML

virtual DOMString DOM::Node::namespaceURI (  )  const [inline, virtual]

Get the namespace URI (if specified).

Todo:
implement this once I understand what it means for HTML

const Node* DOM::Node::nextSibling (  )  const [inline]

Get the next node in the same current child level.

Returns:
0 if no next Node are linked to us, or the next Node pointer else

virtual DOMString DOM::Node::nodeName (  )  const [inline, virtual]

Get the node name.

Returns:
the node name if known or "Unknown" else

Reimplemented in DOM::Text, DOM::Attr, DOM::Element, DOM::DocumentType, DOM::Comment, and DOM::Document.

virtual void DOM::Node::nodeValue ( const DOMString newValue  )  [inline, virtual]

Set the node value.

Exceptions:
Exceptions::NoModificationAllowed exception if not supported

Reimplemented in DOM::CharacterData, and DOM::Attr.

virtual DOMString DOM::Node::nodeValue (  )  const [inline, virtual]

Get the node value.

Returns:
the node value if known or empty string else

Reimplemented in DOM::CharacterData, and DOM::Attr.

void DOM::Node::normalize (  )  throw () [inline]

Normalize this tree so that the tree will never have 2 adjacent Text child, or an empty Text child This is used to the tree structure is kept as minimal (normalized).

Todo:
Perform this structure check here, the parser should never create such strange documents anyway

const DOM::Document* DOM::Node::ownerDocument (  )  const [inline]

Get the owner document.

Returns:
0 if no owner is set, or a pointer on the Document instance

const Node* DOM::Node::parentNode (  )  const [inline]

Get the parent node.

Returns:
0 if no parent are set for this node

void DOM::Node::prefix ( const DOMString  )  const [inline]

Set the prefix.

Exceptions:
Exceptions::NoModificationAllowed exception if not supported

virtual DOMString DOM::Node::prefix (  )  const [inline, virtual]

Get the prefix.

Todo:
implement this once I understand what it means for HTML

const Node* DOM::Node::previousSibling (  )  const [inline]

Get the previous node in the same current child level.

Returns:
0 if no previous Node are linked to us, or the previous Node pointer else

const Node* DOM::Node::removeChild ( const Node oldNode  )  [inline]

Remove a child.

Parameters:
oldNode the old node to remove
Exceptions:
Exceptions::NotFound if the oldNode can't be found in the child list
Returns:
the old Node being removed

const Node* DOM::Node::replaceChild ( const Node newNode,
const Node oldNode 
) [inline]

Replace a child node by another node.

Parameters:
newNode the new node pointer to replace oldNode with (if newNode is already in the child list, it is removed first)
oldNode the old node to remove
Exceptions:
Exceptions::NotFound if the oldNode can't be found in the child list
Returns:
the old Node being replaced

void DOM::Node::returnToAllocator ( const volatile HTML::Elements::Allocators::BaseAllocator allocator  )  [virtual]

Return this node to the allocator.

Parameters:
allocator The allocator to return this node to

Reimplemented in DOM::Attr, DOM::Element, and DOM::Document.

void DOM::Node::setTreeNode ( DOMTree::Node newTreeNode  )  const [inline]

Set the reference correctly.

void DOM::Node::Suicide (  )  [inline]

Make this node commit suicide itself.

Warning:
After calling this method, the pointer you might have on the node is invalidated.

Only call this method for unreachable nodes (like duplicate attribute, and removed or replaced child, and so on)...


Member Data Documentation

const NodeType::Type DOM::Node::nodeType

The node type.


The documentation for this struct was generated from the following files:

(C) An X-Ryl669 project 2007

This document describes Unlimited Zooming Interface source code. UZI stands for Unlimited Zooming Interface, and source code license is