Aspose.Tasks for C++
ExtendedAttributeDefinition.h
1 #pragma once
2 //-----------------------------------------------------------------------
3 // <copyright file="ExtendedAttributeDefinition.cs" company="Aspose Pty Ltd">
4 // Copyright (c) 2002-2024 Aspose Pty Ltd. All Rights Reserved.
5 // </copyright>
6 //-----------------------------------------------------------------------
7 
8 #include <system/string.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 enum class CalculationType;
18 namespace Connectivity
19 {
20 class MpdExtendedAttributeDefinitionMapper;
21 class MpdUtils;
22 class MspExtendedAttribute;
23 class MspExtendedAttributeDefinitionMapper;
24 class MspExtendedAttributeValuesMapper;
25 } // namespace Connectivity
26 enum class CustomFieldType;
27 class Duration;
28 enum class ElementType;
29 class ExtendedAttribute;
30 class ExtendedAttributeDefinitionCollection;
31 class ExtendedAttributeDefinitionComparer;
32 enum class ExtendedAttributeResource;
33 enum class ExtendedAttributeTask;
34 namespace Filters
35 {
36 class ExtendedAttributeDefinitionFieldIdFilter;
37 class ExtendedAttributeDefinitionGuidFilter;
38 } // namespace Filters
39 class Formula;
40 class GraphicalIndicatorsInfo;
41 namespace IO
42 {
43 namespace Html
44 {
45 class HtmlReadingUtils;
46 } // namespace Html
47 namespace Mpx
48 {
49 class MpxUtils;
50 } // namespace Mpx
51 namespace MSProject
52 {
53 class CustomFieldTypeReader;
54 class ExtendedAttributeValueConverter;
55 namespace Metadata
56 {
57 class AssignmentExtendedAttributeFlagOffsets;
58 } // namespace Metadata
59 class MPP12ExtendedAttributeDefinitionReader;
60 class MPP12ExtendedAttributeWriter;
61 class MPP12OutlineCodeDefinitionWriter;
62 class MPP12ResourceWriter;
63 class MPP12TaskWriter;
64 class MPP14ExtendedAttributeDefinitionReader;
65 class MPP14ExtendedAttributeWriter;
66 class MPP14OutlineCodeDefinitionWriter;
67 class MPP14ResourceWriter;
68 class MPP14TaskWriter;
69 class MPP9AssignmentExtendedAttributeWriter;
70 class MPP9ExtendedAttributeDefinitionReader;
71 class MPP9ExtendedAttributeDefinitionWriter;
72 class MPP9ResourceWriter;
73 class MPPAssignmentExtendedAttributeReader;
74 class MPPAssignmentExtendedAttributeWriter;
75 class MppCustomFieldsReader;
76 class MPPExtendedAttributeReader;
77 class MPPExtendedAttributeWriter;
78 class MppFormulaReader;
79 class MPPOutlineCodeDefinitionWriter;
80 class MPPReader;
81 class MPPWriter;
82 namespace Writers
83 {
84 class MPP9TaskWriter;
85 } // namespace Writers
86 } // namespace MSProject
87 namespace Pwa
88 {
89 namespace InternalApi
90 {
91 class CustomFieldContainerWriter;
92 class ExtendedAttributeValueReader;
93 class InternalApiProjectSerializer;
94 namespace Mapping
95 {
96 class ExtendedAttributeDefinitionMapper;
97 class ExtendedAttributeDefinitionToRawValuesMapper;
98 template <typename> class ExtendedAttributeParentEntityToRawValuesMapper;
99 template <typename> class ProjectCoreEntityMapperBase;
100 } // namespace Mapping
101 enum class VarType;
102 } // namespace InternalApi
103 } // namespace Pwa
104 namespace Xer
105 {
106 class PrimaveraExtendedAttributeBuilder;
107 } // namespace Xer
108 namespace Xml
109 {
110 class ExtendedAttributeDefinitionFactory;
111 class ExtendedAttributeDefinitionReader;
112 class ExtendedAttributeDefinitionWriter;
113 class ExtendedAttributeNodeReader;
114 class ExtendedAttributeNodeWriter;
115 class OutlineCodeDefinitionXml;
116 class XmlReader;
117 class XmlWriter;
118 } // namespace Xml
119 } // namespace IO
120 class OutlineCodeDefinition;
121 class OutlineCodesSynchronizer;
122 class OutlineValue;
123 class Project;
124 namespace Rollup
125 {
126 class AverageFirstSublevelRollupCalculator;
127 class AverageRollupCalculator;
128 class DurationExtendedAttributeComparer;
129 class IRollupCalculator;
130 class MinMaxRollupCalculator;
131 class RollupCalculatorFactory;
132 class SumRollupCalculator;
133 } // namespace Rollup
134 enum class RollupType;
135 namespace Saving
136 {
137 class HtmlUtils;
138 class MpxSavingUtils;
139 } // namespace Saving
140 enum class SummaryRowsCalculationType;
141 class TaskFieldsFormulaParser;
142 namespace Util
143 {
144 class CalculatedExtendedAttributeUtils;
145 class ExtendedAttributeChecker;
146 namespace Fields
147 {
148 class FieldHelperInternal;
149 } // namespace Fields
150 } // namespace Util
151 class Value;
152 namespace Visualization
153 {
154 template <typename> class FieldToColumnText;
155 } // namespace Visualization
156 } // namespace Tasks
157 } // namespace Aspose
158 namespace System
159 {
160 namespace Collections
161 {
162 namespace Generic
163 {
164 template <typename> class List;
165 } // namespace Generic
166 } // namespace Collections
167 class DateTime;
168 class Decimal;
169 class Guid;
170 } // namespace System
171 
172 namespace Aspose {
173 
174 namespace Tasks {
175 
176 /// <summary>
177 /// Represents an extended attribute definition associated with a project.
178 /// </summary>
179 class ASPOSE_TASKS_SHARED_CLASS ExtendedAttributeDefinition : public System::Object
180 {
182  typedef System::Object BaseType;
183 
184  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
185  ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
186 
187  friend class Aspose::Tasks::TaskFieldsFormulaParser;
188  friend class Aspose::Tasks::IO::MSProject::MPP14ExtendedAttributeWriter;
189  friend class Aspose::Tasks::Filters::ExtendedAttributeDefinitionFieldIdFilter;
190  friend class Aspose::Tasks::Filters::ExtendedAttributeDefinitionGuidFilter;
191  friend class Aspose::Tasks::IO::Pwa::InternalApi::CustomFieldContainerWriter;
192  template<typename FT0> friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ExtendedAttributeParentEntityToRawValuesMapper;
193  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ExtendedAttributeDefinitionToRawValuesMapper;
194  friend class Aspose::Tasks::IO::Pwa::InternalApi::InternalApiProjectSerializer;
195  friend class Aspose::Tasks::IO::Xml::ExtendedAttributeDefinitionFactory;
196  friend class Aspose::Tasks::ExtendedAttributeDefinitionComparer;
199  friend class Aspose::Tasks::Connectivity::MpdExtendedAttributeDefinitionMapper;
200  friend class Aspose::Tasks::Connectivity::MpdUtils;
201  friend class Aspose::Tasks::Connectivity::MspExtendedAttribute;
202  friend class Aspose::Tasks::Connectivity::MspExtendedAttributeDefinitionMapper;
203  friend class Aspose::Tasks::Connectivity::MspExtendedAttributeValuesMapper;
204  friend class Aspose::Tasks::IO::Html::HtmlReadingUtils;
205  friend class Aspose::Tasks::IO::MSProject::CustomFieldTypeReader;
206  friend class Aspose::Tasks::IO::MSProject::ExtendedAttributeValueConverter;
207  friend class Aspose::Tasks::IO::MSProject::MPPAssignmentExtendedAttributeReader;
208  friend class Aspose::Tasks::IO::MSProject::MPP12ExtendedAttributeDefinitionReader;
209  friend class Aspose::Tasks::IO::MSProject::MPPReader;
210  friend class Aspose::Tasks::IO::MSProject::MPP14ExtendedAttributeDefinitionReader;
211  friend class Aspose::Tasks::IO::MSProject::MPP12ResourceWriter;
212  friend class Aspose::Tasks::IO::MSProject::MPP9ResourceWriter;
213  friend class Aspose::Tasks::IO::MSProject::MPP14OutlineCodeDefinitionWriter;
214  friend class Aspose::Tasks::IO::MSProject::MPP14ResourceWriter;
215  friend class Aspose::Tasks::IO::MSProject::MPP14TaskWriter;
216  friend class Aspose::Tasks::IO::MSProject::MPPWriter;
217  friend class Aspose::Tasks::IO::MSProject::MPP9ExtendedAttributeDefinitionReader;
218  friend class Aspose::Tasks::IO::MSProject::MPPExtendedAttributeReader;
219  friend class Aspose::Tasks::IO::MSProject::Metadata::AssignmentExtendedAttributeFlagOffsets;
220  friend class Aspose::Tasks::IO::MSProject::MppCustomFieldsReader;
221  friend class Aspose::Tasks::IO::MSProject::MppFormulaReader;
222  friend class Aspose::Tasks::IO::MSProject::MPPAssignmentExtendedAttributeWriter;
223  friend class Aspose::Tasks::IO::MSProject::MPP12ExtendedAttributeWriter;
224  friend class Aspose::Tasks::IO::MSProject::MPPExtendedAttributeWriter;
225  friend class Aspose::Tasks::IO::MSProject::MPP12OutlineCodeDefinitionWriter;
226  friend class Aspose::Tasks::IO::MSProject::MPPOutlineCodeDefinitionWriter;
227  friend class Aspose::Tasks::IO::MSProject::MPP12TaskWriter;
228  friend class Aspose::Tasks::IO::MSProject::Writers::MPP9TaskWriter;
229  friend class Aspose::Tasks::IO::MSProject::MPP9AssignmentExtendedAttributeWriter;
230  friend class Aspose::Tasks::IO::MSProject::MPP9ExtendedAttributeDefinitionWriter;
231  friend class Aspose::Tasks::IO::Mpx::MpxUtils;
232  friend class Aspose::Tasks::IO::Xer::PrimaveraExtendedAttributeBuilder;
233  friend class Aspose::Tasks::IO::Pwa::InternalApi::ExtendedAttributeValueReader;
234  friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ExtendedAttributeDefinitionMapper;
235  template<typename FT0> friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectCoreEntityMapperBase;
236  friend class Aspose::Tasks::IO::Xml::ExtendedAttributeDefinitionReader;
237  friend class Aspose::Tasks::IO::Xml::ExtendedAttributeDefinitionWriter;
238  friend class Aspose::Tasks::IO::Xml::ExtendedAttributeNodeReader;
239  friend class Aspose::Tasks::IO::Xml::ExtendedAttributeNodeWriter;
240  friend class Aspose::Tasks::IO::Xml::OutlineCodeDefinitionXml;
241  friend class Aspose::Tasks::IO::Xml::XmlReader;
242  friend class Aspose::Tasks::IO::Xml::XmlWriter;
244  friend class Aspose::Tasks::OutlineCodesSynchronizer;
245  friend class Aspose::Tasks::Rollup::AverageFirstSublevelRollupCalculator;
246  friend class Aspose::Tasks::Rollup::AverageRollupCalculator;
247  friend class Aspose::Tasks::Rollup::DurationExtendedAttributeComparer;
248  friend class Aspose::Tasks::Rollup::MinMaxRollupCalculator;
249  friend class Aspose::Tasks::Rollup::RollupCalculatorFactory;
250  friend class Aspose::Tasks::Rollup::SumRollupCalculator;
251  friend class Aspose::Tasks::Saving::HtmlUtils;
252  friend class Aspose::Tasks::Saving::MpxSavingUtils;
253  friend class Aspose::Tasks::Util::CalculatedExtendedAttributeUtils;
254  friend class Aspose::Tasks::Util::ExtendedAttributeChecker;
255  friend class Aspose::Tasks::Util::Fields::FieldHelperInternal;
256  template<typename FT0> friend class Aspose::Tasks::Visualization::FieldToColumnText;
257 
258 public:
259 
260  /// <summary>
261  /// Gets corresponds to the project id of a custom field.
262  /// Use string representation of a constant from <see cref="Aspose::Tasks::ExtendedAttributeTask"></see> class to specify <see cref="FieldId"></see> property.
263  /// </summary>
264  /// <remarks>
265  /// Preferable way to set <see cref="FieldId"></see> property is to create <see cref="ExtendedAttributeDefinition"></see>
266  /// using one of the dedicated factory methods like <see cref="CreateTaskDefinition(ExtendedAttributeTask, string)"></see> or <see cref="CreateLookupTaskDefinition(CustomFieldType, ExtendedAttributeTask, string)"></see>.
267  /// </remarks>
268  /// <example>
269  /// <code>
270  /// customFieldDefinition.FieldId = Aspose.Tasks.ExtendedAttributeTask.Number10.ToString("D");
271  /// </code>
272  /// </example>
273  ASPOSE_TASKS_SHARED_API System::String get_FieldId() const;
274  /// <summary>
275  /// Sets corresponds to the project id of a custom field.
276  /// Use string representation of a constant from <see cref="Aspose::Tasks::ExtendedAttributeTask"></see> class to specify <see cref="FieldId"></see> property.
277  /// </summary>
278  /// <remarks>
279  /// Preferable way to set <see cref="FieldId"></see> property is to create <see cref="ExtendedAttributeDefinition"></see>
280  /// using one of the dedicated factory methods like <see cref="CreateTaskDefinition(ExtendedAttributeTask, string)"></see> or <see cref="CreateLookupTaskDefinition(CustomFieldType, ExtendedAttributeTask, string)"></see>.
281  /// </remarks>
282  /// <example>
283  /// <code>
284  /// customFieldDefinition.FieldId = Aspose.Tasks.ExtendedAttributeTask.Number10.ToString("D");
285  /// </code>
286  /// </example>
287  ASPOSE_TASKS_SHARED_API void set_FieldId(const System::String& value);
288  /// <summary>
289  /// Gets the name of a custom field.
290  /// </summary>
291  /// <remarks>Should not be set directly, instead create ExtendedAttributeDefinition using strongly typed static factory methods named like Create*Definition().</remarks>
292  ASPOSE_TASKS_SHARED_API System::String get_FieldName() const;
293  /// <summary>
294  /// Gets the type of a custom field.
295  /// </summary>
296  ASPOSE_TASKS_SHARED_API CustomFieldType get_CfType();
297  /// <summary>
298  /// Gets the Guid of a custom field.
299  /// </summary>
300  /// <remarks>
301  /// Currently supported for Xml format only.
302  /// </remarks>
303  ASPOSE_TASKS_SHARED_API System::String get_Guid() const;
304  /// <summary>
305  /// Sets the Guid of a custom field.
306  /// </summary>
307  /// <remarks>
308  /// Currently supported for Xml format only.
309  /// </remarks>
310  ASPOSE_TASKS_SHARED_API void set_Guid(const System::String& value);
311  /// <summary>
312  /// Gets the extended attribute is associated
313  /// with a task, a resource or an assignment.
314  /// </summary>
315  ASPOSE_TASKS_SHARED_API Aspose::Tasks::ElementType get_ElementType();
316  /// <summary>
317  /// Sets the extended attribute is associated
318  /// with a task, a resource or an assignment.
319  /// </summary>
320  ASPOSE_TASKS_SHARED_API void set_ElementType(Aspose::Tasks::ElementType value);
321  /// <summary>
322  /// Gets the maximum number of values you can set in a pick list.
323  /// </summary>
324  /// <remarks>
325  /// Currently supported for Xml format only.
326  /// </remarks>
327  ASPOSE_TASKS_SHARED_API int32_t get_MaxMultiValues() const;
328  /// <summary>
329  /// Sets the maximum number of values you can set in a pick list.
330  /// </summary>
331  /// <remarks>
332  /// Currently supported for Xml format only.
333  /// </remarks>
334  ASPOSE_TASKS_SHARED_API void set_MaxMultiValues(int32_t value);
335  /// <summary>
336  /// Gets a value indicating whether a custom field is user defined.
337  /// </summary>
338  /// <remarks>
339  /// Currently supported for Xml format only.
340  /// </remarks>
341  ASPOSE_TASKS_SHARED_API bool get_UserDef() const;
342  /// <summary>
343  /// Sets a value indicating whether a custom field is user defined.
344  /// </summary>
345  /// <remarks>
346  /// Currently supported for Xml format only.
347  /// </remarks>
348  ASPOSE_TASKS_SHARED_API void set_UserDef(bool value);
349  /// <summary>
350  /// Gets the alias of a custom field.
351  /// </summary>
352  ASPOSE_TASKS_SHARED_API System::String get_Alias() const;
353  /// <summary>
354  /// Sets the alias of a custom field.
355  /// </summary>
356  ASPOSE_TASKS_SHARED_API void set_Alias(const System::String& value);
357  /// <summary>
358  /// Gets the secondary PID of a custom field.
359  /// </summary>
360  ASPOSE_TASKS_SHARED_API System::String get_SecondaryPid() const;
361  /// <summary>
362  /// Sets the secondary PID of a custom field.
363  /// </summary>
364  ASPOSE_TASKS_SHARED_API void set_SecondaryPid(const System::String& value);
365  /// <summary>
366  /// Gets a value indicating whether an automatic roll down to assignments is enabled.
367  /// </summary>
368  ASPOSE_TASKS_SHARED_API bool get_AutoRollDown() const;
369  /// <summary>
370  /// Sets a value indicating whether an automatic roll down to assignments is enabled.
371  /// </summary>
372  ASPOSE_TASKS_SHARED_API void set_AutoRollDown(bool value);
373  /// <summary>
374  /// Gets the Guid of the default lookup table entry.
375  /// </summary>
376  ASPOSE_TASKS_SHARED_API System::String get_DefaultGuid() const;
377  /// <summary>
378  /// Sets the Guid of the default lookup table entry.
379  /// </summary>
380  ASPOSE_TASKS_SHARED_API void set_DefaultGuid(const System::String& value);
381  /// <summary>
382  /// Gets a Guid of the lookup table associated with a custom field.
383  /// </summary>
384  /// <remarks>
385  /// In order to create a custom field with lookup, use one of the factory methods: <see cref="CreateLookupTaskDefinition(CustomFieldType, ExtendedAttributeTask, string)"></see> or <see cref="CreateLookupResourceDefinition(CustomFieldType, ExtendedAttributeResource, string)"></see>.
386  /// </remarks>
387  ASPOSE_TASKS_SHARED_API System::String get_LookupUid() const;
388  /// <summary>
389  /// Gets the phonetic pronunciation of the alias of a custom field.
390  /// </summary>
391  /// <remarks>
392  /// Currently supported for Xml format only.
393  /// </remarks>
394  ASPOSE_TASKS_SHARED_API System::String get_PhoneticsAlias() const;
395  /// <summary>
396  /// Sets the phonetic pronunciation of the alias of a custom field.
397  /// </summary>
398  /// <remarks>
399  /// Currently supported for Xml format only.
400  /// </remarks>
401  ASPOSE_TASKS_SHARED_API void set_PhoneticsAlias(const System::String& value);
402  /// <summary>
403  /// Gets the way rollups are calculated.
404  /// </summary>
405  /// <remarks>
406  /// Writing currently supported for Xml format only.
407  /// </remarks>
408  ASPOSE_TASKS_SHARED_API Aspose::Tasks::RollupType get_RollupType() const;
409  /// <summary>
410  /// Sets the way rollups are calculated.
411  /// </summary>
412  /// <remarks>
413  /// Writing currently supported for Xml format only.
414  /// </remarks>
415  ASPOSE_TASKS_SHARED_API void set_RollupType(Aspose::Tasks::RollupType value);
416  /// <summary>
417  /// Gets the type of calculation of the custom attribute's value.
418  /// </summary>
419  ASPOSE_TASKS_SHARED_API Aspose::Tasks::CalculationType get_CalculationType() const;
420  /// <summary>
421  /// Sets the type of calculation of the custom attribute's value.
422  /// </summary>
423  ASPOSE_TASKS_SHARED_API void set_CalculationType(Aspose::Tasks::CalculationType value);
424  /// <summary>
425  /// Gets the type of calculation of the custom attribute's value for summary rows.
426  /// </summary>
427  ASPOSE_TASKS_SHARED_API Aspose::Tasks::SummaryRowsCalculationType get_SummaryRowsCalculationType() const;
428  /// <summary>
429  /// Sets the type of calculation of the custom attribute's value for summary rows.
430  /// </summary>
431  ASPOSE_TASKS_SHARED_API void set_SummaryRowsCalculationType(Aspose::Tasks::SummaryRowsCalculationType value);
432  /// <summary>
433  /// Gets the formula that Microsoft Project uses to populate a custom task field.
434  /// </summary>
435  ASPOSE_TASKS_SHARED_API System::String get_Formula();
436  /// <summary>
437  /// Sets the formula that Microsoft Project uses to populate a custom task field.
438  /// </summary>
439  ASPOSE_TASKS_SHARED_API void set_Formula(const System::String& value);
440  /// <summary>
441  /// Gets a value indicating whether the custom field values are restricted to values in the <see cref="ValueList"></see>.
442  /// </summary>
443  ASPOSE_TASKS_SHARED_API bool get_RestrictValues() const;
444  /// <summary>
445  /// Sets a value indicating whether the custom field values are restricted to values in the <see cref="ValueList"></see>.
446  /// </summary>
447  ASPOSE_TASKS_SHARED_API void set_RestrictValues(bool value);
448  /// <summary>
449  /// Gets the way value lists are sorted. Values are: 0=Descending, 1=Ascending.
450  /// </summary>
451  /// <remarks>
452  /// Currently supported for MSP 2003/2007 Xml and MSP 2003 mpp formats.
453  /// </remarks>
454  ASPOSE_TASKS_SHARED_API int32_t get_ValuelistSortOrder() const;
455  /// <summary>
456  /// Sets the way value lists are sorted. Values are: 0=Descending, 1=Ascending.
457  /// </summary>
458  /// <remarks>
459  /// Currently supported for MSP 2003/2007 Xml and MSP 2003 mpp formats.
460  /// </remarks>
461  ASPOSE_TASKS_SHARED_API void set_ValuelistSortOrder(int32_t value);
462  /// <summary>
463  /// Gets a value indicating whether new values added to a project are automatically added to the list.
464  /// </summary>
465  /// <remarks>
466  /// Currently supported for MSP 2003/2007 Xml and MSP 2003 mpp formats.
467  /// </remarks>
468  ASPOSE_TASKS_SHARED_API bool get_AppendNewValues() const;
469  /// <summary>
470  /// Sets a value indicating whether new values added to a project are automatically added to the list.
471  /// </summary>
472  /// <remarks>
473  /// Currently supported for MSP 2003/2007 Xml and MSP 2003 mpp formats.
474  /// </remarks>
475  ASPOSE_TASKS_SHARED_API void set_AppendNewValues(bool value);
476  /// <summary>
477  /// Gets the default value in the list.
478  /// </summary>
479  /// <remarks>
480  /// Currently supported for MSP 2003/2007 Xml and MSP 2003 mpp formats.
481  /// </remarks>
482  ASPOSE_TASKS_SHARED_API System::String get_Default() const;
483  /// <summary>
484  /// Sets the default value in the list.
485  /// </summary>
486  /// <remarks>
487  /// Currently supported for MSP 2003/2007 Xml and MSP 2003 mpp formats.
488  /// </remarks>
489  ASPOSE_TASKS_SHARED_API void set_Default(const System::String& value);
490  /// <summary>
491  /// Gets the List&lt;Value&gt; ValueList.
492  /// </summary>
493  /// <remarks>
494  /// When values of extended attributes are specified as properties of elements in the schema,
495  /// they may either be specified by values or by references to the values contained in this list.
496  /// Applications may assume ordering of the list by ordering specified here.
497  /// Currently supported for MSP 2003/2007 Xml and MSP 2003 mpp formats.
498  /// Do not change this list directly. Use ExtendedAttributeDefinition.AddLookupValue/RemoveLookupValue methods instead.
499  /// </remarks>
500  ASPOSE_TASKS_SHARED_API const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Value>>>& get_ValueList() const;
501  /// <summary>
502  /// Gets the secondary guid of extended attribute.
503  /// </summary>
504  /// <remarks>
505  /// This is new for MS Project 2010 property.
506  /// </remarks>
507  ASPOSE_TASKS_SHARED_API System::String get_SecondaryGuid() const;
508  /// <summary>
509  /// Sets the secondary guid of extended attribute.
510  /// </summary>
511  /// <remarks>
512  /// This is new for MS Project 2010 property.
513  /// </remarks>
514  ASPOSE_TASKS_SHARED_API void set_SecondaryGuid(const System::String& value);
515  /// <summary>
516  /// Gets the parent project for the <see cref="ExtendedAttributeDefinition"></see> instance.
517  /// </summary>
518  ASPOSE_TASKS_SHARED_API System::SharedPtr<Project> get_ParentProject() const;
519 
520  /// <summary>
521  /// Adds a value to the internal lookup list. This is a preferable way for manipulations with the <see cref="ValueList"></see>.
522  /// </summary>
523  /// <param name="value">Value to add into lookup.</param>
524  /// <remarks>
525  /// This method works only for <see cref="ExtendedAttributeDefinition"></see> instances
526  /// which have <see cref="CalculationType"></see> equals to <see cref="Tasks::CalculationType::Lookup"></see>.
527  /// </remarks>
528  /// <example>
529  /// Use this code to add new Value to lookup list:
530  /// <code>
531  /// taskTextAttr.AddLookupValue(new Value { Id = 1, Val = "Text value 1", Description = "Text value description 1" });
532  /// </code>
533  /// </example>
534  ASPOSE_TASKS_SHARED_API void AddLookupValue(const System::SharedPtr<Value>& value);
535  /// <summary>
536  /// Removes a value from the internal lookup list. This is a preferable way for manipulations with the <see cref="ValueList"></see>.
537  /// </summary>
538  /// <param name="value">Value to remove from lookup.</param>
539  /// <remarks>
540  /// This method works only for <see cref="ExtendedAttributeDefinition"></see> instances
541  /// which have <see cref="CalculationType"></see> equals to <see cref="Tasks::CalculationType::Lookup"></see>.
542  /// </remarks>
543  ASPOSE_TASKS_SHARED_API void RemoveLookupValue(const System::SharedPtr<Value>& value);
544  /// <summary>
545  /// Creates a new extended attribute with the field ID which equals to this object's field ID value.
546  /// </summary>
547  /// <returns>returns created instance of the <see cref="ExtendedAttribute"></see> class with the fieldID which equals to this object's fieldID value.</returns>
548  ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttribute> CreateExtendedAttribute();
549  /// <summary>
550  /// Creates a new extended attribute with the field ID which equals to this object's field ID value and the specified text value.
551  /// </summary>
552  /// <param name="textValue">The specified text value.</param>
553  /// <returns>returns created instance of the <see cref="ExtendedAttribute"></see> class with the fieldID which equals to this object's fieldID value.</returns>
554  /// <exception cref="InvalidOperationException">If current <see cref="CfType"></see> is not 'Text'</exception>
555  ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttribute> CreateExtendedAttribute(const System::String& textValue);
556  /// <summary>
557  /// Creates a new extended attribute with the field ID which equals to this object's field ID value and the specified numeric value.
558  /// </summary>
559  /// <param name="numericValue">The specified numeric value.</param>
560  /// <returns>returns created instance of the <see cref="ExtendedAttribute"></see> class with the fieldID which equals to this object's fieldID value.</returns>
561  /// <exception cref="InvalidOperationException">If current <see cref="CfType"></see> is not 'Number' or 'Cost'</exception>
562  ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttribute> CreateExtendedAttribute(System::Decimal numericValue);
563  /// <summary>
564  /// Creates a new extended attribute with the field ID which equals to this object's field ID value and the specified date value.
565  /// </summary>
566  /// <param name="dateTimeValue">The specified date time value.</param>
567  /// <returns>returns created instance of the <see cref="ExtendedAttribute"></see> class with the fieldID which equals to this object's fieldID value.</returns>
568  /// <exception cref="InvalidOperationException">If current <see cref="CfType"></see> is not 'Date', 'Start' or 'Finish'</exception>
569  ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttribute> CreateExtendedAttribute(System::DateTime dateTimeValue);
570  /// <summary>
571  /// Creates a new extended attribute with the field ID which equals to this object's field ID value and the specified duration value.
572  /// </summary>
573  /// <param name="durationValue">The specified duration value.</param>
574  /// <returns>returns created instance of the <see cref="ExtendedAttribute"></see> class with the fieldID which equals to this object's fieldID value.</returns>
575  /// <exception cref="InvalidOperationException">If current <see cref="CfType"></see> is not 'Duration'</exception>
576  ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttribute> CreateExtendedAttribute(Duration durationValue);
577  /// <summary>
578  /// Creates a new extended attribute with the field ID which equals to this object's field ID value and the specified flag value.
579  /// </summary>
580  /// <param name="flagValue">The specified flag value.</param>
581  /// <returns>returns created instance of the <see cref="ExtendedAttribute"></see> class with the fieldID which equals to this object's fieldID value.</returns>
582  /// <exception cref="InvalidOperationException">If current <see cref="CfType"></see> is not 'Flag'</exception>
583  ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttribute> CreateExtendedAttribute(bool flagValue);
584  /// <summary>
585  /// Creates new extended attribute linked with specified <see cref="Value"></see> item.
586  /// </summary>
587  /// <param name="lookupValue">The specified <see cref="Value"></see> item.</param>
588  /// <remarks>
589  /// <paramref name="lookupValue"></paramref> should be previously added to the <see cref="ExtendedAttributeDefinition"></see> using <see cref="AddLookupValue"></see> method.
590  /// </remarks>
591  /// <returns>returns created instance of the <see cref="ExtendedAttribute"></see> class linked with specified <see cref="Value"></see> item.</returns>
592  /// <example>
593  /// Use this code to create new <see cref="ExtendedAttribute"></see> using specific value:
594  /// <code>
595  /// taskTextAttr.AddLookupValue(value1);
596  /// taskTextAttr.AddLookupValue(value2);
597  /// var extendedAttribute = taskTextAttr.CreateExtendedAttribute(value2);
598  /// </code>
599  /// </example>
600  ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttribute> CreateExtendedAttribute(const System::SharedPtr<Value>& lookupValue);
601  /// <summary>
602  /// Factory method which creates a simple extended attribute definition, which Microsoft Project shows as "None".
603  /// It has <see cref="CalculationType"></see> equals to <see cref="Tasks::CalculationType::None"></see> and can be used in Tasks only.
604  /// You are required to specify <paramref name="customFieldType"></paramref>, <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref> when calling this method.
605  /// </summary>
606  /// <param name="customFieldType">The specified <see cref="CustomFieldType"></see> type.</param>
607  /// <param name="fieldId">The specified <see cref="ExtendedAttributeTask"></see> field ID.</param>
608  /// <param name="alias">The specified <see cref="System::String"></see> alias.</param>
609  /// <returns>Created instance of the <see cref="ExtendedAttributeDefinition"></see> class with specified <paramref name="customFieldType"></paramref>, <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref>.</returns>
610  /// <example>
611  /// Use this example to create a custom text field definition:
612  /// <code>
613  /// var taskTextAttr = ExtendedAttributeDefinition.CreateTaskDefinition(CustomFieldType.Text, ExtendedAttributeTask.Text27, "My custom field");
614  /// project.ExtendedAttributes.Add(taskTextAttr);
615  /// </code>
616  /// </example>
617  static ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttributeDefinition> CreateTaskDefinition(CustomFieldType customFieldType, ExtendedAttributeTask fieldId, const System::String& alias);
618  /// <summary>
619  /// Factory method which creates a simple extended attribute definition, which Microsoft Project shows as "None".
620  /// It has <see cref="CalculationType"></see> equals to <see cref="Tasks::CalculationType::None"></see> and can be used in Tasks only.
621  /// You are required to specify <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref> when calling this method.
622  /// The field type is inferred from field id.
623  /// </summary>
624  /// <param name="fieldId">The specified <see cref="ExtendedAttributeTask"></see> field ID.</param>
625  /// <param name="alias">The specified <see cref="System::String"></see> alias.</param>
626  /// <returns>Created instance of the <see cref="ExtendedAttributeDefinition"></see> class with specified <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref>.</returns>
627  /// <example>
628  /// Use this example to create a custom text field definition:
629  /// <code>
630  /// var taskTextAttr = ExtendedAttributeDefinition.CreateTaskDefinition(ExtendedAttributeTask.Text27, "My custom field");
631  /// project.ExtendedAttributes.Add(taskTextAttr);
632  /// </code>
633  /// </example>
634  static ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttributeDefinition> CreateTaskDefinition(ExtendedAttributeTask fieldId, const System::String& alias);
635  /// <summary>
636  /// Factory method which creates a simple extended attribute definition, which Microsoft Project shows as "None".
637  /// It has <see cref="CalculationType"></see> equals to <see cref="Tasks::CalculationType::None"></see> and can be used in Resource only.
638  /// You are required to specify <paramref name="customFieldType"></paramref>, <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref> when call this method.
639  /// </summary>
640  /// <param name="customFieldType">The specified <see cref="CustomFieldType"></see> type.</param>
641  /// <param name="fieldId">The specified <see cref="ExtendedAttributeResource"></see> field ID.</param>
642  /// <param name="alias">The specified <see cref="System::String"></see> alias.</param>
643  /// <returns>Created instance of the <see cref="ExtendedAttributeDefinition"></see> class with specified <paramref name="customFieldType"></paramref>, <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref>.</returns>
644  /// <example>
645  /// Use this example to create a custom text field definition:
646  /// <code>
647  /// var resourceTextAttr = ExtendedAttributeDefinition.CreateResourceDefinition(CustomFieldType.Text, ExtendedAttributeResource.Text27, "My custom field");
648  /// project.ExtendedAttributes.Add(resourceTextAttr);
649  /// </code>
650  /// </example>
651  static ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttributeDefinition> CreateResourceDefinition(CustomFieldType customFieldType, ExtendedAttributeResource fieldId, const System::String& alias);
652  /// <summary>
653  /// Factory method which creates a simple extended attribute definition, which Microsoft Project shows as "None".
654  /// It has <see cref="CalculationType"></see> equals to <see cref="Tasks::CalculationType::None"></see> and can be used in Resource only.
655  /// You are required to specify <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref> when call this method.
656  /// The field type is inferred from field id.
657  /// </summary>
658  /// <param name="fieldId">The specified <see cref="ExtendedAttributeResource"></see> field ID.</param>
659  /// <param name="alias">The specified <see cref="System::String"></see> alias.</param>
660  /// <returns>Created instance of the <see cref="ExtendedAttributeDefinition"></see> class with specified <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref>.</returns>
661  /// <example>
662  /// Use this example to create a custom text field definition:
663  /// <code>
664  /// var resourceTextAttr = ExtendedAttributeDefinition.CreateResourceDefinition(ExtendedAttributeResource.Text27, "My custom field");
665  /// project.ExtendedAttributes.Add(resourceTextAttr);
666  /// </code>
667  /// </example>
668  static ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttributeDefinition> CreateResourceDefinition(ExtendedAttributeResource fieldId, const System::String& alias);
669  /// <summary>
670  /// Factory method which creates an extended attribute definition with lookup.
671  /// It has <see cref="CalculationType"></see> equals to <see cref="Tasks::CalculationType::Lookup"></see> and can be used in Tasks only.
672  /// You are required to specify <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref> when call this method.
673  /// The field type is inferred from field id.
674  /// </summary>
675  /// <param name="fieldId">The specified <see cref="ExtendedAttributeTask"></see> field ID.</param>
676  /// <param name="alias">The specified <see cref="System::String"></see> alias.</param>
677  /// <returns>Created instance of the <see cref="ExtendedAttributeDefinition"></see> class with specified <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref>.</returns>
678  /// <example>
679  /// Use this example to create a custom field definition for a task with lookup and then fill it with text values:
680  /// <code>
681  /// var taskTextAttr = ExtendedAttributeDefinition.CreateLookupTaskDefinition(ExtendedAttributeTask.Text27, "My custom field");
682  /// taskTextAttr.AddLookupValue(new Value { Id = 1, Val = "Text value 1", Description = "Text value description 1" });
683  /// taskTextAttr.AddLookupValue(new Value { Id = 2, Val = "Text value 2", Description = "Text value description 2" });
684  /// project.ExtendedAttributes.Add(taskTextAttr);
685  /// </code>
686  /// </example>
687  static ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttributeDefinition> CreateLookupTaskDefinition(ExtendedAttributeTask fieldId, const System::String& alias);
688  /// <summary>
689  /// Factory method which creates an extended attribute definition with lookup.
690  /// It has <see cref="CalculationType"></see> equals to <see cref="Tasks::CalculationType::Lookup"></see> and can be used in Tasks only.
691  /// You are required to specify <paramref name="customFieldType"></paramref>, <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref> when call this method.
692  /// </summary>
693  /// <param name="customFieldType">The specified <see cref="CustomFieldType"></see> type.</param>
694  /// <param name="fieldId">The specified <see cref="ExtendedAttributeTask"></see> field ID.</param>
695  /// <param name="alias">The specified <see cref="System::String"></see> alias.</param>
696  /// <returns>Created instance of the <see cref="ExtendedAttributeDefinition"></see> class with specified <paramref name="customFieldType"></paramref>, <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref>.</returns>
697  /// <example>
698  /// Use this example to create a custom field definition for a task with lookup and then fill it with text values:
699  /// <code>
700  /// var taskTextAttr = ExtendedAttributeDefinition.CreateLookupTaskDefinition(CustomFieldType.Text, ExtendedAttributeTask.Text27, "My custom field");
701  /// taskTextAttr.AddLookupValue(new Value { Id = 1, Val = "Text value 1", Description = "Text value description 1" });
702  /// taskTextAttr.AddLookupValue(new Value { Id = 2, Val = "Text value 2", Description = "Text value description 2" });
703  /// project.ExtendedAttributes.Add(taskTextAttr);
704  /// </code>
705  /// </example>
706  static ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttributeDefinition> CreateLookupTaskDefinition(CustomFieldType customFieldType, ExtendedAttributeTask fieldId, const System::String& alias);
707  /// <summary>
708  /// Factory method which creates an extended attribute definition with lookup.
709  /// It has <see cref="CalculationType"></see> equals to <see cref="Tasks::CalculationType::Lookup"></see> and can be used in Resources only.
710  /// You are required to specify <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref> when call this method.
711  /// The field type is inferred from field id.
712  /// </summary>
713  /// <param name="fieldId">The specified <see cref="ExtendedAttributeResource"></see> field ID.</param>
714  /// <param name="alias">The specified <see cref="System::String"></see> alias.</param>
715  /// <returns>Created instance of the <see cref="ExtendedAttributeDefinition"></see> class with specified <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref>.</returns>
716  /// <example>
717  /// Use this example to create a custom field definition for a resource with lookup and then fill it with text values:
718  /// <code>
719  /// var resourceTextAttr = ExtendedAttributeDefinition.CreateLookupResourceDefinition(ExtendedAttributeResource.Text27, "My custom field");
720  /// resourceTextAttr.AddLookupValue(new Value { Id = 1, Val = "Text value 1", Description = "Text value description 1" });
721  /// resourceTextAttr.AddLookupValue(new Value { Id = 2, Val = "Text value 2", Description = "Text value description 2" });
722  /// project.ExtendedAttributes.Add(resourceTextAttr);
723  /// </code>
724  /// </example>
725  static ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttributeDefinition> CreateLookupResourceDefinition(ExtendedAttributeResource fieldId, const System::String& alias);
726  /// <summary>
727  /// Factory method which creates an extended attribute definition with lookup.
728  /// It has <see cref="CalculationType"></see> equals to <see cref="Tasks::CalculationType::Lookup"></see> and can be used in Resources only.
729  /// You are required to specify <paramref name="customFieldType"></paramref>, <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref> when call this method.
730  /// </summary>
731  /// <param name="customFieldType">The specified <see cref="CustomFieldType"></see> type.</param>
732  /// <param name="fieldId">The specified <see cref="ExtendedAttributeResource"></see> field ID.</param>
733  /// <param name="alias">The specified <see cref="System::String"></see> alias.</param>
734  /// <returns>Created instance of the <see cref="ExtendedAttributeDefinition"></see> class with specified <paramref name="customFieldType"></paramref>, <paramref name="fieldId"></paramref> and <paramref name="alias"></paramref>.</returns>
735  /// <example>
736  /// Use this example to create a custom field definition for a resource with lookup and then fill it with text values:
737  /// <code>
738  /// var resourceTextAttr = ExtendedAttributeDefinition.CreateLookupResourceDefinition(CustomFieldType.Text, ExtendedAttributeResource.Text27, "My custom field");
739  /// resourceTextAttr.AddLookupValue(new Value { Id = 1, Val = "Text value 1", Description = "Text value description 1" });
740  /// resourceTextAttr.AddLookupValue(new Value { Id = 2, Val = "Text value 2", Description = "Text value description 2" });
741  /// project.ExtendedAttributes.Add(resourceTextAttr);
742  /// </code>
743  /// </example>
744  static ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttributeDefinition> CreateLookupResourceDefinition(CustomFieldType customFieldType, ExtendedAttributeResource fieldId, const System::String& alias);
745  /// <summary>
746  /// Returns a flag indicating whether this instance is equal to the specified object.
747  /// </summary>
748  /// <param name="obj">the specified object to compare to this instance.</param>
749  /// <returns>a flag indicating whether this instance is equal to the specified object.</returns>
750  ASPOSE_TASKS_SHARED_API bool Equals(System::SharedPtr<System::Object> obj) override;
751  /// <summary>
752  /// Returns a hash code for the instance of the <see cref="ExtendedAttributeDefinition"></see> class.
753  /// </summary>
754  /// <returns>a hash code for this object.</returns>
755  ASPOSE_TASKS_SHARED_API int32_t GetHashCode() const override;
756 
757 protected:
758 
759  /// <summary>
760  /// Gets the name of a custom field.
761  /// </summary>
762  /// <remarks>Should not be set directly, instead create ExtendedAttributeDefinition using strongly typed static factory methods named like Create*Definition().</remarks>
763  ASPOSE_TASKS_SHARED_API void set_FieldName(const System::String& value);
764  /// <summary>
765  /// Gets the type of a custom field.
766  /// </summary>
767  ASPOSE_TASKS_SHARED_API void set_CfType(CustomFieldType value);
768  /// <summary>
769  /// Gets a Guid of the lookup table associated with a custom field.
770  /// </summary>
771  /// <remarks>
772  /// In order to create a custom field with lookup, use one of the factory methods: <see cref="CreateLookupTaskDefinition(CustomFieldType, ExtendedAttributeTask, string)"></see> or <see cref="CreateLookupResourceDefinition(CustomFieldType, ExtendedAttributeResource, string)"></see>.
773  /// </remarks>
774  ASPOSE_TASKS_SHARED_API void set_LookupUid(const System::String& value);
775  /// <summary>
776  /// Get os sets a graphical indicators info assosiated with the extended attribute.
777  /// </summary>
778  ASPOSE_TASKS_SHARED_API const System::SharedPtr<GraphicalIndicatorsInfo>& get_GraphicalIndicator() const;
779  /// <summary>
780  /// Get os sets a graphical indicators info assosiated with the extended attribute.
781  /// </summary>
782  ASPOSE_TASKS_SHARED_API void set_GraphicalIndicator(const System::SharedPtr<GraphicalIndicatorsInfo>& value);
783  /// <summary>
784  /// Gets the List&lt;Value&gt; ValueList.
785  /// </summary>
786  /// <remarks>
787  /// When values of extended attributes are specified as properties of elements in the schema,
788  /// they may either be specified by values or by references to the values contained in this list.
789  /// Applications may assume ordering of the list by ordering specified here.
790  /// Currently supported for MSP 2003/2007 Xml and MSP 2003 mpp formats.
791  /// Do not change this list directly. Use ExtendedAttributeDefinition.AddLookupValue/RemoveLookupValue methods instead.
792  /// </remarks>
793  ASPOSE_TASKS_SHARED_API void set_ValueList(const System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Value>>>& value);
794  /// <summary>
795  /// Gets the parent project for the <see cref="ExtendedAttributeDefinition"></see> instance.
796  /// </summary>
797  ASPOSE_TASKS_SHARED_API void set_ParentProject(const System::SharedPtr<Project>& value);
798  ASPOSE_TASKS_SHARED_API bool get_IsEnterprise() const;
799  ASPOSE_TASKS_SHARED_API void set_IsEnterprise(bool value);
800  /// <summary>
801  /// Gets type for enterprise fields whose AttributeDefinition is not available.
802  /// </summary>
803  ASPOSE_TASKS_SHARED_API IO::Pwa::InternalApi::VarType get_EnterpriseFieldType() const;
804  /// <summary>
805  /// Sets type for enterprise fields whose AttributeDefinition is not available.
806  /// </summary>
807  ASPOSE_TASKS_SHARED_API void set_EnterpriseFieldType(IO::Pwa::InternalApi::VarType value);
808  ASPOSE_TASKS_SHARED_API int32_t get_FieldIdParsed() const;
809  ASPOSE_TASKS_SHARED_API bool get_IsOutlineCode();
810  ASPOSE_TASKS_SHARED_API System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<OutlineValue>>> get_OutlineValues();
811  ASPOSE_TASKS_SHARED_API System::SharedPtr<Rollup::IRollupCalculator> get_RollupCalculator();
812  ASPOSE_TASKS_SHARED_API bool get_IsNumeric();
813  ASPOSE_TASKS_SHARED_API bool get_CanCalculateRollup() const;
814  ASPOSE_TASKS_SHARED_API void set_CanCalculateRollup(bool value);
815 
816  /// <summary>
817  /// Initializes a new instance of the <see cref="ExtendedAttributeDefinition"></see> class.
818  /// </summary>
819  ASPOSE_TASKS_SHARED_API ExtendedAttributeDefinition();
820 
821  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(ExtendedAttributeDefinition, CODEPORTING_ARGS());
822  /// <summary>
823  /// Creates a new extended attribute linked with specified <see cref="OutlineValue"></see> item from <see cref="OutlineCodeDefinition"></see> lookup table.
824  /// </summary>
825  /// <param name="outlineValue">The specified <see cref="OutlineValue"></see> item.</param>
826  /// <returns>returns created instance of the <see cref="ExtendedAttribute"></see> class linked with specified <see cref="OutlineValue"></see> item.</returns>
827  ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttribute> CreateExtendedAttribute(const System::SharedPtr<OutlineValue>& outlineValue);
828  ASPOSE_TASKS_SHARED_API bool IsLookup();
829  static ASPOSE_TASKS_SHARED_API System::SharedPtr<ExtendedAttributeDefinition> CreateAttributeDefinition(const System::SharedPtr<Project>& project, int32_t fieldId);
830  ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::Formula> GetFormula();
831  ASPOSE_TASKS_SHARED_API void SetFormula(const System::SharedPtr<Aspose::Tasks::Formula>& value);
832  ASPOSE_TASKS_SHARED_API bool IsNameMatch(const System::String& name);
833 
834  virtual ASPOSE_TASKS_SHARED_API ~ExtendedAttributeDefinition();
835 
836  #ifdef ASPOSE_GET_SHARED_MEMBERS
837  ASPOSE_TASKS_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
838  #endif
839 
840 
841 private:
842 
843  System::WeakPtr<Project> parentProject;
844  System::String fieldID;
845  CustomFieldType customFieldType;
846  Aspose::Tasks::ElementType elementType;
847  System::SharedPtr<Aspose::Tasks::Formula> formula;
848  System::SharedPtr<Rollup::IRollupCalculator> rollupCalculator;
849  Aspose::Tasks::RollupType rollupType;
850  System::String pr_FieldName;
851  System::String pr_Guid;
852  int32_t pr_MaxMultiValues;
853  bool pr_UserDef;
854  System::String pr_Alias;
855  System::String pr_SecondaryPid;
856  bool pr_AutoRollDown;
857  System::String pr_DefaultGuid;
858  System::String pr_LookupUid;
859  System::String pr_PhoneticsAlias;
860  Aspose::Tasks::CalculationType pr_CalculationType;
861  Aspose::Tasks::SummaryRowsCalculationType pr_SummaryRowsCalculationType;
862  System::SharedPtr<GraphicalIndicatorsInfo> pr_GraphicalIndicator;
863  bool pr_RestrictValues;
864  int32_t pr_ValuelistSortOrder;
865  bool pr_AppendNewValues;
866  System::String pr_Default;
867  System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Value>>> pr_ValueList;
868  System::String pr_SecondaryGuid;
869  bool pr_IsEnterprise;
870  IO::Pwa::InternalApi::VarType pr_EnterpriseFieldType;
871  int32_t pr_FieldIdParsed;
872 
873  ASPOSE_TASKS_SHARED_API void set_FieldIdParsed(int32_t value);
874 
875  bool pr_CanCalculateRollup;
876 
877  void CreateRollupExtendedAttributesForNonLeafTasks();
878  void UpdateAfterRollupChange();
879  static System::SharedPtr<ExtendedAttributeDefinition> CreateLookupDefinitionInternal(CustomFieldType customFieldType, const System::String& alias);
880  static System::Guid ConvertPidToFieldGuid(int32_t pid);
881 
882 };
883 
884 } // namespace Tasks
885 } // namespace Aspose
886 
887 
Represents duration in a project.
Definition: Duration.h:163
Represents a collection of ExtendedAttributeDefinition objects.
Definition: ExtendedAttributeDefinitionCollection.h:75
Represents an extended attribute definition associated with a project.
Definition: ExtendedAttributeDefinition.h:180
System::String get_SecondaryPid() const
Gets the secondary PID of a custom field.
System::String get_Guid() const
Gets the Guid of a custom field.
static System::SharedPtr< ExtendedAttributeDefinition > CreateTaskDefinition(ExtendedAttributeTask fieldId, const System::String &alias)
Factory method which creates a simple extended attribute definition, which Microsoft Project shows as...
System::String get_Default() const
Gets the default value in the list.
System::SharedPtr< ExtendedAttribute > CreateExtendedAttribute(System::Decimal numericValue)
Creates a new extended attribute with the field ID which equals to this object's field ID value and t...
System::String get_SecondaryGuid() const
Gets the secondary guid of extended attribute.
Aspose::Tasks::RollupType get_RollupType() const
Gets the way rollups are calculated.
static System::SharedPtr< ExtendedAttributeDefinition > CreateResourceDefinition(ExtendedAttributeResource fieldId, const System::String &alias)
Factory method which creates a simple extended attribute definition, which Microsoft Project shows as...
bool Equals(System::SharedPtr< System::Object > obj) override
Returns a flag indicating whether this instance is equal to the specified object.
int32_t GetHashCode() const override
Returns a hash code for the instance of the ExtendedAttributeDefinition class.
System::String get_DefaultGuid() const
Gets the Guid of the default lookup table entry.
int32_t get_MaxMultiValues() const
Gets the maximum number of values you can set in a pick list.
void set_AppendNewValues(bool value)
Sets a value indicating whether new values added to a project are automatically added to the list.
void set_SummaryRowsCalculationType(Aspose::Tasks::SummaryRowsCalculationType value)
Sets the type of calculation of the custom attribute's value for summary rows.
System::String get_LookupUid() const
Gets a Guid of the lookup table associated with a custom field.
void set_Alias(const System::String &value)
Sets the alias of a custom field.
System::SharedPtr< ExtendedAttribute > CreateExtendedAttribute(bool flagValue)
Creates a new extended attribute with the field ID which equals to this object's field ID value and t...
Aspose::Tasks::ElementType get_ElementType()
Gets the extended attribute is associated with a task, a resource or an assignment.
System::SharedPtr< ExtendedAttribute > CreateExtendedAttribute(const System::SharedPtr< Value > &lookupValue)
Creates new extended attribute linked with specified Value item.
void set_MaxMultiValues(int32_t value)
Sets the maximum number of values you can set in a pick list.
static System::SharedPtr< ExtendedAttributeDefinition > CreateResourceDefinition(CustomFieldType customFieldType, ExtendedAttributeResource fieldId, const System::String &alias)
Factory method which creates a simple extended attribute definition, which Microsoft Project shows as...
System::String get_FieldId() const
Gets corresponds to the project id of a custom field. Use string representation of a constant from As...
System::SharedPtr< ExtendedAttribute > CreateExtendedAttribute()
Creates a new extended attribute with the field ID which equals to this object's field ID value.
void set_DefaultGuid(const System::String &value)
Sets the Guid of the default lookup table entry.
const System::SharedPtr< System::Collections::Generic::List< System::SharedPtr< Value > > > & get_ValueList() const
Gets the List<Value> ValueList.
void set_AutoRollDown(bool value)
Sets a value indicating whether an automatic roll down to assignments is enabled.
void set_ValuelistSortOrder(int32_t value)
Sets the way value lists are sorted. Values are: 0=Descending, 1=Ascending.
void set_PhoneticsAlias(const System::String &value)
Sets the phonetic pronunciation of the alias of a custom field.
void set_Default(const System::String &value)
Sets the default value in the list.
Aspose::Tasks::CalculationType get_CalculationType() const
Gets the type of calculation of the custom attribute's value.
void set_ElementType(Aspose::Tasks::ElementType value)
Sets the extended attribute is associated with a task, a resource or an assignment.
bool get_RestrictValues() const
Gets a value indicating whether the custom field values are restricted to values in the ValueList.
void set_FieldId(const System::String &value)
Sets corresponds to the project id of a custom field. Use string representation of a constant from As...
bool get_UserDef() const
Gets a value indicating whether a custom field is user defined.
void set_CalculationType(Aspose::Tasks::CalculationType value)
Sets the type of calculation of the custom attribute's value.
void set_Guid(const System::String &value)
Sets the Guid of a custom field.
CustomFieldType get_CfType()
Gets the type of a custom field.
static System::SharedPtr< ExtendedAttributeDefinition > CreateTaskDefinition(CustomFieldType customFieldType, ExtendedAttributeTask fieldId, const System::String &alias)
Factory method which creates a simple extended attribute definition, which Microsoft Project shows as...
System::String get_PhoneticsAlias() const
Gets the phonetic pronunciation of the alias of a custom field.
System::SharedPtr< ExtendedAttribute > CreateExtendedAttribute(const System::String &textValue)
Creates a new extended attribute with the field ID which equals to this object's field ID value and t...
void set_UserDef(bool value)
Sets a value indicating whether a custom field is user defined.
System::SharedPtr< ExtendedAttribute > CreateExtendedAttribute(System::DateTime dateTimeValue)
Creates a new extended attribute with the field ID which equals to this object's field ID value and t...
void set_RestrictValues(bool value)
Sets a value indicating whether the custom field values are restricted to values in the ValueList.
System::String get_Alias() const
Gets the alias of a custom field.
static System::SharedPtr< ExtendedAttributeDefinition > CreateLookupTaskDefinition(ExtendedAttributeTask fieldId, const System::String &alias)
Factory method which creates an extended attribute definition with lookup. It has CalculationType equ...
System::String get_Formula()
Gets the formula that Microsoft Project uses to populate a custom task field.
void set_SecondaryPid(const System::String &value)
Sets the secondary PID of a custom field.
System::SharedPtr< Project > get_ParentProject() const
Gets the parent project for the ExtendedAttributeDefinition instance.
void set_Formula(const System::String &value)
Sets the formula that Microsoft Project uses to populate a custom task field.
void RemoveLookupValue(const System::SharedPtr< Value > &value)
Removes a value from the internal lookup list. This is a preferable way for manipulations with the Va...
static System::SharedPtr< ExtendedAttributeDefinition > CreateLookupResourceDefinition(ExtendedAttributeResource fieldId, const System::String &alias)
Factory method which creates an extended attribute definition with lookup. It has CalculationType equ...
int32_t get_ValuelistSortOrder() const
Gets the way value lists are sorted. Values are: 0=Descending, 1=Ascending.
Aspose::Tasks::SummaryRowsCalculationType get_SummaryRowsCalculationType() const
Gets the type of calculation of the custom attribute's value for summary rows.
void set_SecondaryGuid(const System::String &value)
Sets the secondary guid of extended attribute.
static System::SharedPtr< ExtendedAttributeDefinition > CreateLookupResourceDefinition(CustomFieldType customFieldType, ExtendedAttributeResource fieldId, const System::String &alias)
Factory method which creates an extended attribute definition with lookup. It has CalculationType equ...
static System::SharedPtr< ExtendedAttributeDefinition > CreateLookupTaskDefinition(CustomFieldType customFieldType, ExtendedAttributeTask fieldId, const System::String &alias)
Factory method which creates an extended attribute definition with lookup. It has CalculationType equ...
void set_RollupType(Aspose::Tasks::RollupType value)
Sets the way rollups are calculated.
void AddLookupValue(const System::SharedPtr< Value > &value)
Adds a value to the internal lookup list. This is a preferable way for manipulations with the ValueLi...
bool get_AppendNewValues() const
Gets a value indicating whether new values added to a project are automatically added to the list.
System::SharedPtr< ExtendedAttribute > CreateExtendedAttribute(Duration durationValue)
Creates a new extended attribute with the field ID which equals to this object's field ID value and t...
bool get_AutoRollDown() const
Gets a value indicating whether an automatic roll down to assignments is enabled.
System::String get_FieldName() const
Gets the name of a custom field.
Represents extended attributes.
Definition: ExtendedAttribute.h:138
Represents an outline code definition.
Definition: OutlineCodeDefinition.h:84
Definition: Asn.h:13