Represents a collection of nodes of a specific type. More...
#include "Aspose.Words.Cpp/Model/Nodes/NodeCollection.h"
Inherits INodeCollection, and System::Collections::Generic::IEnumerable< System::SharedPtr< Aspose::Words::Node > >.
Inherited by Aspose::Words::BuildingBlocks::BuildingBlockCollection, Aspose::Words::CommentCollection, Aspose::Words::HeaderFooterCollection, Aspose::Words::ParagraphCollection, Aspose::Words::RunCollection, Aspose::Words::SectionCollection, Aspose::Words::Tables::CellCollection, Aspose::Words::Tables::RowCollection, and Aspose::Words::Tables::TableCollection.
Public Member Functions | |
int32_t | get_Count () |
Gets the number of nodes in the collection. More... | |
System::SharedPtr< Aspose::Words::CompositeNode > | get_Container () |
System::SharedPtr< Aspose::Words::Node > | idx_get (int32_t index) |
Retrieves a node at the given index. More... | |
void | Add (System::SharedPtr< Aspose::Words::Node > node) |
Adds a node to the end of the collection. More... | |
void | Insert (int32_t index, System::SharedPtr< Aspose::Words::Node > node) |
Inserts a node into the collection at the specified index. More... | |
void | Remove (System::SharedPtr< Aspose::Words::Node > node) |
Removes the node from the collection and from the document. More... | |
void | RemoveAt (int32_t index) |
Removes the node at the specified index from the collection and from the document. More... | |
void | Clear () |
Removes all nodes from this collection and from the document. More... | |
bool | Contains (System::SharedPtr< Aspose::Words::Node > node) |
Determines whether a node is in the collection. More... | |
int32_t | IndexOf (System::SharedPtr< Aspose::Words::Node > node) |
Returns the zero-based index of the specified node. More... | |
System::ArrayPtr< System::SharedPtr< Aspose::Words::Node > > | ToArray () |
Copies all nodes from the collection to a new array of nodes. More... | |
System::SharedPtr< System::Collections::Generic::IEnumerator< System::SharedPtr< Aspose::Words::Node > > > | GetEnumerator () |
System::SharedPtr< Aspose::Words::Node > | GetNextMatchingNode (System::SharedPtr< Aspose::Words::Node > &curNode) |
![]() | |
Object () | |
Creates object. Initializes all internal data structures. More... | |
virtual | ~Object () |
Destroys object. Frees all internal data structures. More... | |
Object (Object const &x) | |
Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More... | |
Object & | operator= (Object const &x) |
Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More... | |
Object * | SharedRefAdded () |
Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More... | |
int | SharedRefRemovedSafe () |
Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More... | |
int | RemovedSharedRefs (int count) |
Decreases shared reference count by specified value. More... | |
Detail::SmartPtrCounter * | WeakRefAdded () |
Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More... | |
void | WeakRefRemoved () |
Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More... | |
Detail::SmartPtrCounter * | GetCounter () |
Gets reference counter data structure associated with the object. More... | |
int | SharedCount () const |
Gets current value of shared refernce counter. More... | |
void | Lock () |
Implements C# lock() statement locking. Call directly or use LockContext sentry object. More... | |
void | Unlock () |
Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More... | |
virtual bool | Equals (ptr obj) |
Compares objects using C# Object.Equals semantics. More... | |
virtual int | GetHashCode () const |
Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More... | |
virtual String | ToString () ASPOSE_CONST |
Analog of C# Object.ToString() method. Enables converting custom objects to string. More... | |
virtual ptr | MemberwiseClone () const |
Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More... | |
virtual const TypeInfo & | GetType () const |
Gets actual type of object. Analog of C# System.Object.GetType() call. More... | |
virtual bool | Is (const TypeInfo &targetType) const |
Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More... | |
virtual void | SetTemplateWeakPtr (unsigned int argument) |
Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More... | |
Additional Inherited Members | |
![]() | |
typedef IEnumerator< System::SharedPtr< Aspose::Words::Node > > | IEnumeratorType |
Enumerator type. More... | |
![]() | |
typedef SmartPtr< Object > | ptr |
Alias for smart pointer type. More... | |
typedef System::Details::SharedMembersType | shared_members_type |
structure to keep list of shared pointers contained in object. More... | |
![]() | |
static bool | ReferenceEquals (ptr const &objA, ptr const &objB) |
Compares objects by reference. More... | |
template<typename T > | |
static std::enable_if<!IsSmartPtr< T >::value, bool >::type | ReferenceEquals (T const &objA, T const &objB) |
Compares objects by reference. More... | |
template<typename T > | |
static std::enable_if<!IsSmartPtr< T >::value, bool >::type | ReferenceEquals (T const &objA, std::nullptr_t) |
Reference-compares value type object with nullptr. More... | |
template<typename T1 , typename T2 > | |
static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type | Equals (T1 const &objA, T2 const &objB) |
Compares reference type objects in C# style. More... | |
template<typename T1 , typename T2 > | |
static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type | Equals (T1 const &objA, T2 const &objB) |
Compares value type objects in C# style. More... | |
static const TypeInfo & | Type () |
Impleemnts C# typeof(System.Object) construct. More... | |
template<> | |
bool | Equals (float const &objA, float const &objB) |
template<> | |
bool | Equals (double const &objA, double const &objB) |
template<> | |
bool | ReferenceEquals (String const &str, std::nullptr_t) |
template<> | |
bool | ReferenceEquals (String const &str1, String const &str2) |
Represents a collection of nodes of a specific type.
NodeCollection does not own the nodes it contains, rather, is just a selection of nodes of the specified type, but the nodes are stored in the tree under their respective parent nodes.
NodeCollection supports indexed access, iteration and provides add and remove methods.
The NodeCollection collection is "live", i.e. changes to the children of the node object that it was created from are immediately reflected in the nodes returned by the NodeCollection properties and methods.
NodeCollection is returned by Aspose::Words::CompositeNode::GetChildNodes(Aspose::Words::NodeType, bool) and also serves as a base class for typed node collections such as Aspose::Words::SectionCollection, Aspose::Words::ParagraphCollection etc.
NodeCollection can be "flat" and contain only immediate children of the node it was created from, or it can be "deep" and contain all descendant children.
void Aspose::Words::NodeCollection::Add | ( | System::SharedPtr< Aspose::Words::Node > | node | ) |
Adds a node to the end of the collection.
The node is inserted as a child into the node object from which the collection was created.
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 Aspose::Words::DocumentBase::ImportNode(System::SharedPtr<Aspose::Words::Node>, bool, Aspose::Words::ImportFormatMode) to import the node to the current document. The imported node can then be inserted into the current document.
node | The node to be added to the end of the collection. |
T:System.NotSupportedException | The NodeCollection is a "deep" collection. |
void Aspose::Words::NodeCollection::Clear | ( | ) |
Removes all nodes from this collection and from the document.
bool Aspose::Words::NodeCollection::Contains | ( | System::SharedPtr< Aspose::Words::Node > | node | ) |
Determines whether a node is in the collection.
This method performs a linear search; therefore, the average execution time is proportional to Count.
node | The node to locate. |
System::SharedPtr<Aspose::Words::CompositeNode> Aspose::Words::NodeCollection::get_Container | ( | ) |
int32_t Aspose::Words::NodeCollection::get_Count | ( | ) |
Gets the number of nodes in the collection.
|
virtual |
Gets enumerator.
Implements System::Collections::Generic::IEnumerable< System::SharedPtr< Aspose::Words::Node > >.
System::SharedPtr<Aspose::Words::Node> Aspose::Words::NodeCollection::GetNextMatchingNode | ( | System::SharedPtr< Aspose::Words::Node > & | curNode | ) |
System::SharedPtr<Aspose::Words::Node> Aspose::Words::NodeCollection::idx_get | ( | int32_t | index | ) |
Retrieves a node at the given index.
index | An index into the collection of nodes. |
The index is zero-based.
Negative indexes are allowed and indicate access from the back of the collection. For example -1 means the last item, -2 means the second before last and so on.
If index is greater than or equal to the number of items in the list, this returns a null reference.
If index is negative and its absolute value is greater than the number of items in the list, this returns a null reference.
int32_t Aspose::Words::NodeCollection::IndexOf | ( | System::SharedPtr< Aspose::Words::Node > | node | ) |
Returns the zero-based index of the specified node.
node | The node to locate. |
This method performs a linear search; therefore, the average execution time is proportional to Count.
void Aspose::Words::NodeCollection::Insert | ( | int32_t | index, |
System::SharedPtr< Aspose::Words::Node > | node | ||
) |
Inserts a node into the collection at the specified index.
The node is inserted as a child into the node object from which the collection was created.
If the index is equal to or greater than Count, the node is added at the end of the collection.
If the index is negative and its absolute value is greater than Count, the node is added at the end of the collection.
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 Aspose::Words::DocumentBase::ImportNode(System::SharedPtr<Aspose::Words::Node>, bool, Aspose::Words::ImportFormatMode) to import the node to the current document. The imported node can then be inserted into the current document.
index | The zero-based index of the node. Negative indexes are allowed and indicate access from the back of the list. For example -1 means the last node, -2 means the second before last and so on. |
node | The node to insert. |
T:System.NotSupportedException | The NodeCollection is a "deep" collection. |
void Aspose::Words::NodeCollection::Remove | ( | System::SharedPtr< Aspose::Words::Node > | node | ) |
Removes the node from the collection and from the document.
node | The node to remove. |
void Aspose::Words::NodeCollection::RemoveAt | ( | int32_t | index | ) |
Removes the node at the specified index from the collection and from the document.
index | The zero-based index of the node. Negative indexes are allowed and indicate access from the back of the list. For example -1 means the last node, -2 means the second before last and so on. |
System::ArrayPtr<System::SharedPtr<Aspose::Words::Node> > Aspose::Words::NodeCollection::ToArray | ( | ) |
Copies all nodes from the collection to a new array of nodes.
You should not be adding/removing nodes while iterating over a collection of nodes because it invalidates the iterator and requires refreshes for live collections.
To be able to add/remove nodes during iteration, use this method to copy nodes into a fixed-size array and then iterate over the array.