Aspose.Tasks for C++
PrimaveraProjectProperties.h
1 #pragma once
2 //-----------------------------------------------------------------------
3 // <copyright file="PrimaveraProjectProperties.cs" company="Aspose Pty Ltd">
4 // Copyright (c) 2002-2024 Aspose Pty Ltd. All Rights Reserved.
5 // </copyright>
6 //-----------------------------------------------------------------------
7 
8 #include <system/array.h>
9 #include <cstdint>
10 
11 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
12 
13 namespace Aspose
14 {
15 namespace Tasks
16 {
17 namespace IO
18 {
19 namespace PrimaveraXml
20 {
21 class PrimaveraProjectNodeReader;
22 class PrimaveraProjectScheduleOptionsNodeReader;
23 class PrimaveraReader;
24 } // namespace PrimaveraXml
25 namespace Xer
26 {
27 class XerScheduleOptionsReader;
28 } // namespace Xer
29 } // namespace IO
30 namespace Primavera
31 {
32 enum class PrimaveraRelationshipLagCalendar;
33 } // namespace Primavera
34 class Project;
35 } // namespace Tasks
36 } // namespace Aspose
37 
38 namespace Aspose {
39 
40 namespace Tasks {
41 
42 /// <summary>
43 /// Represents Primavera-specific properties for a project read from Primavera files (XER of P6XML).
44 /// </summary>
45 class ASPOSE_TASKS_SHARED_CLASS PrimaveraProjectProperties final : public System::Object
46 {
48  typedef System::Object BaseType;
49 
50  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
51  ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
52 
53  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraProjectNodeReader;
54  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraProjectScheduleOptionsNodeReader;
55  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraReader;
56  friend class Aspose::Tasks::IO::Xer::XerScheduleOptionsReader;
57 
58 public:
59 
60  /// <summary>
61  /// Gets an options which defines which calendar to use for scheduling Relationship Lag in Primavera projects
62  /// </summary>
63  ASPOSE_TASKS_SHARED_API Primavera::PrimaveraRelationshipLagCalendar get_RelationshipLagCalendar() const;
64  /// <summary>
65  /// Gets a flag which defines whether activity finish dates should be scheduled as the expected finish dates.
66  /// </summary>
67  ASPOSE_TASKS_SHARED_API bool get_UseExpectedFinishDates() const;
68  /// <summary>
69  /// Gets a flag which defines whether activities should me marked as critical when scheduling the project.
70  /// </summary>
71  ASPOSE_TASKS_SHARED_API bool get_MakeOpenEndedActivitiesCritical() const;
72  /// <summary>
73  /// Gets a flag which defines whether to ignore activity relationships between projects.
74  /// </summary>
75  ASPOSE_TASKS_SHARED_API bool get_IgnoreOtherProjectRelationships() const;
76  /// <summary>
77  /// Gets Id of the current baseline project.
78  /// Is applicable to projects read from Primavera XML files containing exported baselines.
79  /// </summary>
80  ASPOSE_TASKS_SHARED_API int32_t get_CurrentBaselineProjectId() const;
81  /// <summary>
82  /// Gets array of baseline projects of current project.
83  /// Is applicable to projects read from Primavera XML files containing exported baselines.
84  /// </summary>
85  ASPOSE_TASKS_SHARED_API const System::ArrayPtr<System::SharedPtr<Project>>& get_BaselineProjects() const;
86 
87 protected:
88 
89  /// <summary>
90  /// Gets an options which defines which calendar to use for scheduling Relationship Lag in Primavera projects
91  /// </summary>
92  ASPOSE_TASKS_SHARED_API void set_RelationshipLagCalendar(Primavera::PrimaveraRelationshipLagCalendar value);
93  /// <summary>
94  /// Gets a flag which defines whether activity finish dates should be scheduled as the expected finish dates.
95  /// </summary>
96  ASPOSE_TASKS_SHARED_API void set_UseExpectedFinishDates(bool value);
97  /// <summary>
98  /// Gets a flag which defines whether activities should me marked as critical when scheduling the project.
99  /// </summary>
100  ASPOSE_TASKS_SHARED_API void set_MakeOpenEndedActivitiesCritical(bool value);
101  /// <summary>
102  /// Gets a flag which defines whether to ignore activity relationships between projects.
103  /// </summary>
104  ASPOSE_TASKS_SHARED_API void set_IgnoreOtherProjectRelationships(bool value);
105  /// <summary>
106  /// Gets Id of the current baseline project.
107  /// Is applicable to projects read from Primavera XML files containing exported baselines.
108  /// </summary>
109  ASPOSE_TASKS_SHARED_API void set_CurrentBaselineProjectId(int32_t value);
110  /// <summary>
111  /// Gets array of baseline projects of current project.
112  /// Is applicable to projects read from Primavera XML files containing exported baselines.
113  /// </summary>
114  ASPOSE_TASKS_SHARED_API void set_BaselineProjects(const System::ArrayPtr<System::SharedPtr<Project>>& value);
115 
116  ASPOSE_TASKS_SHARED_API PrimaveraProjectProperties();
117 
118  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(PrimaveraProjectProperties, CODEPORTING_ARGS());
119  #ifdef ASPOSE_GET_SHARED_MEMBERS
120  ASPOSE_TASKS_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
121  #endif
122 
123 
124 private:
125 
126  Primavera::PrimaveraRelationshipLagCalendar pr_RelationshipLagCalendar;
127  bool pr_UseExpectedFinishDates;
128  bool pr_MakeOpenEndedActivitiesCritical;
129  bool pr_IgnoreOtherProjectRelationships;
130  int32_t pr_CurrentBaselineProjectId;
131  System::ArrayPtr<System::SharedPtr<Project>> pr_BaselineProjects;
132 
133 };
134 
135 } // namespace Tasks
136 } // namespace Aspose
137 
138 
Represents Primavera-specific properties for a project read from Primavera files (XER of P6XML).
Definition: PrimaveraProjectProperties.h:46
bool get_MakeOpenEndedActivitiesCritical() const
Gets a flag which defines whether activities should me marked as critical when scheduling the project...
bool get_UseExpectedFinishDates() const
Gets a flag which defines whether activity finish dates should be scheduled as the expected finish da...
int32_t get_CurrentBaselineProjectId() const
Gets Id of the current baseline project. Is applicable to projects read from Primavera XML files cont...
Primavera::PrimaveraRelationshipLagCalendar get_RelationshipLagCalendar() const
Gets an options which defines which calendar to use for scheduling Relationship Lag in Primavera proj...
const System::ArrayPtr< System::SharedPtr< Project > > & get_BaselineProjects() const
Gets array of baseline projects of current project. Is applicable to projects read from Primavera XML...
bool get_IgnoreOtherProjectRelationships() const
Gets a flag which defines whether to ignore activity relationships between projects.
Definition: Asn.h:13