search/mag_sel search/close
RevisionGroupCollection.h
1 // Copyright 2001-2021 Aspose Pty Ltd. All Rights Reserved.
3 //
4 // This file is part of Aspose.Words. The source code in this file
5 // is only intended as a supplement to the documentation, and is provided
6 // "as is", without warranty of any kind, either expressed or implied.
9 #pragma once
10 
11 #include <system/collections/list.h>
12 #include <system/collections/ienumerable.h>
13 #include <system/array.h>
14 #include <cstdint>
15 
16 #include <Aspose.Words.Cpp/aspose_words_api_defs.h>
17 
18 namespace System { namespace Collections { namespace Generic { template <typename> class IEnumerator; } } }
19 namespace Aspose { namespace Words { class RevisionGroup; } }
20 namespace Aspose { namespace Words { class RevisionCollection; } }
21 namespace Aspose { namespace Words { class DocumentBase; } }
22 namespace Aspose { namespace Words { namespace Revisions { enum class EditRevisionType; } } }
23 namespace Aspose { namespace Words { enum class NodeType; } }
24 namespace Aspose { namespace Words { namespace Revisions { class FormatRevision; } } }
25 namespace Aspose { namespace Words { namespace Tables { class Table; } } }
26 namespace Aspose { namespace Words { class WordAttrCollection; } }
27 namespace Aspose { namespace Words { class Node; } }
28 namespace Aspose { namespace Words { namespace Revisions { class EditRevision; } } }
29 namespace Aspose { namespace Words { class MoveRangeStart; } }
30 namespace Aspose { namespace Words { namespace Revisions { class ITrackableNode; } } }
31 namespace Aspose { namespace Words { class ParaPr; } }
32 namespace Aspose { namespace Words { class Paragraph; } }
33 
34 namespace Aspose {
35 
36 namespace Words {
37 
65 class ASPOSE_WORDS_SHARED_CLASS RevisionGroupCollection final : public System::Collections::Generic::IEnumerable<System::SharedPtr<Aspose::Words::RevisionGroup>>
66 {
69 
70  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
71  ASPOSE_WORDS_SHARED_RTTI_INFO_DECL();
72 
74 
75 public:
76 
78 
80 
82 
83 public:
84 
102  ASPOSE_WORDS_SHARED_API int32_t get_Count();
103 
162 
173  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::RevisionGroup> idx_get(int32_t index);
174 
175  ASPOSE_WORDS_SHARED_API iterator begin() noexcept;
176 
177  ASPOSE_WORDS_SHARED_API iterator end() noexcept;
178 
179  ASPOSE_WORDS_SHARED_API const_iterator begin() const noexcept;
180 
181  ASPOSE_WORDS_SHARED_API const_iterator end() const noexcept;
182 
183  ASPOSE_WORDS_SHARED_API const_iterator cbegin() const noexcept;
184 
185  ASPOSE_WORDS_SHARED_API const_iterator cend() const noexcept;
186 
187 protected:
188 
189  RevisionGroupCollection(System::SharedPtr<Aspose::Words::DocumentBase> doc);
190 
191  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(RevisionGroupCollection, CODEPORTING_ARGS(System::SharedPtr<Aspose::Words::DocumentBase> doc));
192 
193  virtual ASPOSE_WORDS_SHARED_API ~RevisionGroupCollection();
194 
195 private:
196 
197  static System::ArrayPtr<int32_t>& gEffectKeys();
198  static System::ArrayPtr<int32_t>& gIgnoreKeys();
199 
200  System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Aspose::Words::RevisionGroup>>> mItems;
201 
202  void CollectEditRevisions(System::SharedPtr<Aspose::Words::DocumentBase> doc, Aspose::Words::Revisions::EditRevisionType type);
203  void CollectMoveRevisions(System::SharedPtr<Aspose::Words::DocumentBase> doc);
204  void CollectFormatRevisions(System::SharedPtr<Aspose::Words::DocumentBase> doc, Aspose::Words::NodeType nodeType);
205  void CollectTableRevisions(System::SharedPtr<Aspose::Words::DocumentBase> doc);
206  static System::SharedPtr<Aspose::Words::Revisions::FormatRevision> GetFormatRevision(System::SharedPtr<Aspose::Words::Tables::Table> table);
207  static System::SharedPtr<Aspose::Words::WordAttrCollection> GetPr(System::SharedPtr<Aspose::Words::Node> node, Aspose::Words::NodeType desiredNodeType);
208  System::SharedPtr<Aspose::Words::Node> ExtractRevisionGroup(System::SharedPtr<Aspose::Words::Node> node, System::SharedPtr<Aspose::Words::Revisions::EditRevision> revision);
209  System::SharedPtr<Aspose::Words::Node> ExtractRevisionGroup(System::SharedPtr<Aspose::Words::Node> node, System::SharedPtr<Aspose::Words::Revisions::FormatRevision> revision, Aspose::Words::NodeType desiredNodeType);
210  System::SharedPtr<Aspose::Words::Node> ExtractMoveRevisionGroup(System::SharedPtr<Aspose::Words::MoveRangeStart> moveStartNode);
211  static System::SharedPtr<Aspose::Words::Revisions::EditRevision> GetEditRevision(System::SharedPtr<Aspose::Words::Revisions::ITrackableNode> trackable, Aspose::Words::Revisions::EditRevisionType type);
212  static System::SharedPtr<Aspose::Words::ParaPr> CalculateListRevision(System::SharedPtr<Aspose::Words::Paragraph> p);
213  static bool AreEqual(System::SharedPtr<Aspose::Words::Revisions::FormatRevision> formatRevision1, System::SharedPtr<Aspose::Words::Revisions::FormatRevision> formatRevision2);
214  static bool AreEqual(System::SharedPtr<Aspose::Words::Revisions::EditRevision> editRevision1, System::SharedPtr<Aspose::Words::Revisions::EditRevision> editRevision2);
215  static System::SharedPtr<Aspose::Words::Node> NextNode(System::SharedPtr<Aspose::Words::Node> node);
216  static bool IsIgnorableNode(System::SharedPtr<Aspose::Words::Node> node);
217  static System::SharedPtr<Aspose::Words::Node> DeepestNode(System::SharedPtr<Aspose::Words::Node> node);
218 
219 };
220 
221 }
222 }