com.aspose.words
Class CompositeNode

java.lang.Object
  extended by Node
      extended by com.aspose.words.CompositeNode
All Implemented Interfaces:
java.lang.Iterable, java.lang.Cloneable
Direct Known Subclasses:
BuildingBlock, DocumentBase, InlineStory, Paragraph, Section, ShapeBase, Story

public abstract class CompositeNode 
extends Node

Base class for nodes that can contain other nodes.

A document is represented as a tree of nodes, similar to DOM or XmlDocument.

For more info see the Composite design pattern.

The CompositeNode class:


Property Getters/Setters Summary
NodeCollectiongetChildNodes()
           Gets all immediate child nodes of this node.
intgetCount()
           Gets the number of immediate children of this node.
DocumentBasegetDocument()→ inherited from Node
           Gets the document to which this node belongs.
NodegetFirstChild()
           Gets the first child of the node.
booleanhasChildNodes()
           Returns true if this node has any child nodes.
booleanisComposite()
           Returns true as this node can have child nodes.
NodegetLastChild()
           Gets the last child of the node.
NodegetNextSibling()→ inherited from Node
           Gets the node immediately following this node.
abstract intgetNodeType()→ inherited from Node
           Gets the type of this node. The value of the property is NodeType integer constant.
CompositeNodegetParentNode()→ inherited from Node
           Gets the immediate parent of this node.
NodegetPreviousSibling()→ inherited from Node
           Gets the node immediately preceding this node.
RangegetRange()→ inherited from Node
           Returns a Range object that represents the portion of a document that is contained in this node.
 
Method Summary
abstract booleanaccept(DocumentVisitor visitor)→ inherited from Node
           Accepts a visitor.
NodeappendChild(Node newChild)
           Adds the specified node to the end of the list of child nodes for this node.
NodedeepClone(boolean isCloneChildren)→ inherited from Node
           Creates a duplicate of the node.
CompositeNodegetAncestor(int ancestorType)→ inherited from Node
           Gets the first ancestor of the specified NodeType.
CompositeNodegetAncestor(java.lang.Class ancestorType)→ inherited from Node
           Gets the first ancestor of the specified object type.
NodegetChild(int nodeType, int index, boolean isDeep)
           Returns an Nth child node that matches the specified type.
NodeCollectiongetChildNodes(int nodeType, boolean isDeep)
           Returns a live collection of child nodes that match the specified type.
CompositeNodegetContainer()
          Reserved for internal use.
NodegetNextMatchingNode(aspose.obfuscated.type curNode)
          Reserved for internal use.
java.lang.StringgetText()
           Gets the text of this node and of all its children.
intindexOf(Node child)
           Returns the index of the specified child node in the child node array.
NodeinsertAfter(Node newChild, Node refChild)
           Inserts the specified node immediately after the specified reference node.
NodeinsertBefore(Node newChild, Node refChild)
           Inserts the specified node immediately before the specified reference node.
java.util.Iteratoriterator()
           Provides support for the for each style iteration over the child nodes of this node.
NodenextPreOrder(Node rootNode)→ inherited from Node
           Gets next node according to the pre-order tree traversal algorithm.
NodeprependChild(Node newChild)
           Adds the specified node to the beginning of the list of child nodes for this node.
NodepreviousPreOrder(Node rootNode)→ inherited from Node
           Gets the previous node according to the pre-order tree traversal algorithm.
voidremove()→ inherited from Node
           Removes itself from the parent.
voidremoveAllChildren()
           Removes all the child nodes of the current node.
NoderemoveChild(Node oldChild)
           Removes the specified child node.
voidremoveSmartTags()
           Removes all Aspose.Words.Markup.SmartTag descendant nodes of the current node.
NodeListselectNodes(java.lang.String xpath)
           Selects a list of nodes matching the XPath expression.
NodeselectSingleNode(java.lang.String xpath)
           Selects the first Node that matches the XPath expression.
java.lang.StringtoString(int saveFormat)→ inherited from Node
           Exports the content of the node into a string in the specified format.
java.lang.StringtoTxt()→ inherited from Node
           Exports the content of the node into a string in plain text format.
 

Property Getters/Setters Detail

getChildNodes

public NodeCollection getChildNodes()
Gets all immediate child nodes of this node.

Note, ChildNodes is equivalent to calling GetChildNodes(NodeType.Any, false) and creates and returns a new collection every time it is accessed.

If there are no child nodes, this property returns an empty collection.


getCount

public int getCount()
Gets the number of immediate children of this node.

getDocument

→ inherited from Node
public DocumentBase getDocument()
Gets the document to which this node belongs.

The node always belongs to a document even if it has just been created and not yet added to the tree, or if it has been removed from the tree.


getFirstChild

public Node getFirstChild()
Gets the first child of the node. If there is no first child node, a null is returned.

hasChildNodes

public boolean hasChildNodes()
Returns true if this node has any child nodes.

isComposite

public boolean isComposite()
Returns true as this node can have child nodes.

getLastChild

public Node getLastChild()
Gets the last child of the node. If there is no last child node, a null is returned.

getNextSibling

→ inherited from Node
public Node getNextSibling()
Gets the node immediately following this node. If there is no next node, a null is returned.

getNodeType

→ inherited from Node
public abstract int getNodeType()
Gets the type of this node. The value of the property is NodeType integer constant.

getParentNode

→ inherited from Node
public CompositeNode getParentNode()
Gets the immediate parent of this node.

If a node has just been created and not yet added to the tree, or if it has been removed from the tree, the parent is null.


getPreviousSibling

→ inherited from Node
public Node getPreviousSibling()
Gets the node immediately preceding this node. If there is no preceding node, a null is returned.

getRange

→ inherited from Node
public Range getRange()
Returns a Range object that represents the portion of a document that is contained in this node.

Method Detail

accept

→ inherited from Node
public abstract boolean accept(DocumentVisitor visitor)
                            throws java.lang.Exception
Accepts a visitor.

Enumerates over this node and all of its children. Each node calls a corresponding method on DocumentVisitor.

For more info see the Visitor design pattern.

Parameters:
visitor - The visitor that will visit the nodes.
Returns:
True if all nodes were visited; false if DocumentVisitor stopped the operation before visiting all nodes.

appendChild

public Node appendChild(Node newChild)
Adds the specified node to the end of the list of child nodes for this node.

If the newChild is already in the tree, it is first removed.

If the node being inserted was created from another document, you should use DocumentBase.importNode(com.aspose.words.Node,boolean,int) to import the node to the current document. The imported node can then be inserted into the current document.

Parameters:
newChild - The node to add.
Returns:
The node added.

deepClone

→ inherited from Node
public Node deepClone(boolean isCloneChildren)
Creates a duplicate of the node.

This method serves as a copy constructor for nodes. The cloned node has no parent, but belongs to the same document as the original node.

This method always performs a deep copy of the node. The isCloneChildren parameter specifies whether to perform copy all child nodes as well.

Parameters:
isCloneChildren - True to recursively clone the subtree under the specified node; false to clone only the node itself.
Returns:
The cloned node.

getAncestor

→ inherited from Node
public CompositeNode getAncestor(int ancestorType)
Gets the first ancestor of the specified NodeType.
Parameters:
ancestorType - A NodeType value. The node type of the ancestor to retrieve.
Returns:
The ancestor of the specified type or null if no ancestor of this type was found.

getAncestor

→ inherited from Node
public CompositeNode getAncestor(java.lang.Class ancestorType)
Gets the first ancestor of the specified object type.

The ancestor type matches if it is equal to ancestorType or derived from ancestorType.

Parameters:
ancestorType - The object type of the ancestor to retrieve.
Returns:
The ancestor of the specified type or null if no ancestor of this type was found.

getChild

public Node getChild(int nodeType, int index, boolean isDeep)
Returns an Nth child node that matches the specified type.

If index is out of range, a null is returned.

Note that markup nodes (NodeType.STRUCTURED_DOCUMENT_TAG and NodeType.SMART_TAG) are traversed even when isDeep = false and GetChild is invoked for non-markup node type. For example if the first run in a para is wrapped in a StructuredDocumentTag, it will still be returned by GetChild(NodeType.Run, 0, false).
Parameters:
nodeType - A NodeType value. Specifies the type of the child node.
index - Zero based index of the child node to select. Negative indexes are also allowed and indicate access from the end, that is -1 means the last node.
isDeep - True to select from all child nodes recursively. False to select only among immediate children. See remarks for more info.
Returns:
The child node that matches the criteria or null if no matching node is found.

getChildNodes

public NodeCollection getChildNodes(int nodeType, boolean isDeep)
Returns a live collection of child nodes that match the specified type.

The collection of nodes returned by this method is always live.

A live collection is always in sync with the document. For example, if you selected all sections in a document and enumerate through the collection deleting the sections, the section is removed from the collection immediately when it is removed from the document.

Parameters:
nodeType - A NodeType value. Specifies the type of nodes to select.
isDeep - True to select from all child nodes recursively. False to select only among immediate children.
Returns:
A live collection of child nodes of the specified type.

getContainer

public CompositeNode getContainer()
Reserved for internal use.

getNextMatchingNode

public Node getNextMatchingNode(aspose.obfuscated.type curNode)
Reserved for internal use.

getText

public java.lang.String getText()
Gets the text of this node and of all its children.

The returned string includes all control and special characters as described in ControlChar.


indexOf

public int indexOf(Node child)
Returns the index of the specified child node in the child node array. Returns -1 if the node is not found in the child nodes.

insertAfter

public Node insertAfter(Node newChild, Node refChild)
Inserts the specified node immediately after the specified reference node.

If refChild is null, inserts newChild at the beginning of the list of child nodes.

If the newChild is already in the tree, it is first removed.

If the node being inserted was created from another document, you should use DocumentBase.importNode(com.aspose.words.Node,boolean,int) to import the node to the current document. The imported node can then be inserted into the current document.

Parameters:
newChild - The Node to insert.
refChild - The Node that is the reference node. The newNode is placed after the refNode.
Returns:
The inserted node.

insertBefore

public Node insertBefore(Node newChild, Node refChild)
Inserts the specified node immediately before the specified reference node.

If refChild is null, inserts newChild at the end of the list of child nodes.

If the newChild is already in the tree, it is first removed.

If the node being inserted was created from another document, you should use DocumentBase.importNode(com.aspose.words.Node,boolean,int) to import the node to the current document. The imported node can then be inserted into the current document.

Parameters:
newChild - The Node to insert.
refChild - The Node that is the reference node. The newChild is placed before this node.
Returns:
The inserted node.

iterator

public java.util.Iterator iterator()
Provides support for the for each style iteration over the child nodes of this node.

nextPreOrder

→ inherited from Node
public Node nextPreOrder(Node rootNode)
Gets next node according to the pre-order tree traversal algorithm.
Parameters:
rootNode - The top node (limit) of traversal.
Returns:
Next node in pre-order order. Null if reached the rootNode.

prependChild

public Node prependChild(Node newChild)
Adds the specified node to the beginning of the list of child nodes for this node.

If the newChild is already in the tree, it is first removed.

If the node being inserted was created from another document, you should use DocumentBase.importNode(com.aspose.words.Node,boolean,int) to import the node to the current document. The imported node can then be inserted into the current document.

Parameters:
newChild - The node to add.
Returns:
The node added.

previousPreOrder

→ inherited from Node
public Node previousPreOrder(Node rootNode)
Gets the previous node according to the pre-order tree traversal algorithm.
Parameters:
rootNode - The top node (limit) of traversal.
Returns:
Previous node in pre-order order. Null if reached the rootNode.

remove

→ inherited from Node
public void remove()
Removes itself from the parent.

removeAllChildren

public void removeAllChildren()
Removes all the child nodes of the current node.

removeChild

public Node removeChild(Node oldChild)
Removes the specified child node.

The parent of oldChild is set to null after the node is removed.

Parameters:
oldChild - The node to remove.
Returns:
The removed node.

removeSmartTags

public void removeSmartTags()
Removes all Aspose.Words.Markup.SmartTag descendant nodes of the current node. This method does not remove the content of the smart tags.

selectNodes

public NodeList selectNodes(java.lang.String xpath)
Selects a list of nodes matching the XPath expression.

Only expressions with element names are supported at the moment. Expressions that use attribute names are not supported.

Parameters:
xpath - The XPath expression.
Returns:
A list of nodes matching the XPath query.

selectSingleNode

public Node selectSingleNode(java.lang.String xpath)
Selects the first Node that matches the XPath expression.

Only expressions with element names are supported at the moment. Expressions that use attribute names are not supported.

Parameters:
xpath - The XPath expression.
Returns:
The first Node that matches the XPath query or null if no matching node is found.

toString

→ inherited from Node
public java.lang.String toString(int saveFormat)
               throws java.lang.Exception
Exports the content of the node into a string in the specified format.
Returns:
The content of the node in the specified format.
Parameters:
saveFormat - A SaveFormat value.

toTxt

→ inherited from Node
public java.lang.String toTxt()
            throws java.lang.Exception
Exports the content of the node into a string in plain text format.

This method removes field codes and Microsoft Word control characters, uses CrLf (or any other) combination of characters to mark ends of paragraphs in the resulting string. It produces a different result from getText() which just gets the text from the node without removing field codes or special characters.

Returns:
The content of the node in plain text format.
See Also:
#Error Cref: P:Aspose.Words.Saving.TxtSaveOptions.ParagraphBreak, #Error Cref: P:Aspose.Words.Saving.TxtSaveOptions.ExportHeadersFooters

See Also:
          Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
          Aspose.Words Support Forum - our preferred method of support.