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