search/mag_sel search/close
FieldInfo.h
1 // Copyright 2001-2021 Aspose Pty Ltd. All Rights Reserved.
3 //
4 // This file is part of Aspose.Words. The source code in this file
5 // is only intended as a supplement to the documentation, and is provided
6 // "as is", without warranty of any kind, either expressed or implied.
9 #pragma once
10 
11 #include <system/string.h>
12 #include <cstdint>
13 
14 #include <Aspose.Words.Cpp/Fields/FieldSwitchType.h>
15 #include <Aspose.Words.Cpp/Fields/IFieldCodeTokenInfoProvider.h>
16 #include <Aspose.Words.Cpp/Fields/IFieldCode.h>
17 #include <Aspose.Words.Cpp/Fields/Field.h>
18 #include <Aspose.Words.Cpp/aspose_words_api_defs.h>
19 
20 namespace Aspose { namespace Words { namespace Fields { class FieldUpdateAction; } } }
21 namespace Aspose { namespace Words { namespace Fields { class IFieldInfoResultProvider; } } }
22 namespace Aspose { namespace Words { namespace Fields { class FieldCode; } } }
23 
24 namespace Aspose {
25 
26 namespace Words {
27 
28 namespace Fields {
29 
63 class ASPOSE_WORDS_SHARED_CLASS FieldInfo : public Aspose::Words::Fields::Field, public Aspose::Words::Fields::IFieldCodeTokenInfoProvider
64 {
65  typedef FieldInfo ThisType;
67  typedef Aspose::Words::Fields::IFieldCodeTokenInfoProvider BaseType1;
68 
69  typedef ::System::BaseTypesInfo<BaseType, BaseType1> ThisTypeBaseTypesInfo;
70  ASPOSE_WORDS_SHARED_RTTI_INFO_DECL();
71 
72 private:
73 
74  class FieldCodeDecorator : public Aspose::Words::Fields::IFieldCode
75  {
76  typedef FieldCodeDecorator ThisType;
77  typedef Aspose::Words::Fields::IFieldCode BaseType;
78 
79  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
80  RTTI_INFO_DECL();
81 
82  public:
83 
84  FieldCodeDecorator(System::SharedPtr<Aspose::Words::Fields::FieldCode> fieldCode);
85 
86  System::String GetArgumentAsString(int32_t authorNameArgumentIndex) override;
87  bool HasSwitch(System::String switchName) override;
88 
89  private:
90 
92 
93  };
94 
95 public:
96 
130  ASPOSE_WORDS_SHARED_API System::String get_InfoType();
131 
133  ASPOSE_WORDS_SHARED_API void set_InfoType(System::String value);
134 
168  ASPOSE_WORDS_SHARED_API System::String get_NewValue();
169 
171  ASPOSE_WORDS_SHARED_API void set_NewValue(System::String value);
172 
173  ASPOSE_WORDS_SHARED_API Aspose::Words::Fields::FieldSwitchType GetSwitchType(System::String switchName) override;
174 
175 protected:
176 
177  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Fields::FieldUpdateAction> UpdateCore() override;
178 
179  virtual ASPOSE_WORDS_SHARED_API ~FieldInfo();
180 
181 private:
182 
183  static const int32_t InfoTypeArgumentIndex;
184  static const int32_t NewValueArgumentIndex;
185 
186  static const System::String& UnknownInfoTypeError();
188 
189 };
190 
191 }
192 }
193 }