CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
string_builder.h
1
2#ifndef _aspose_system_text_string_builder_h_
3#define _aspose_system_text_string_builder_h_
4
5#include <system/exceptions.h>
6#include <system/string.h>
7#include <system/array.h>
8#include <system/enum.h>
9#include <system/convert.h>
10
11namespace System { namespace Text {
12
16class ASPOSECPP_SHARED_CLASS StringBuilder: public Object
17{
18public:
20 ASPOSECPP_SHARED_API StringBuilder();
23 ASPOSECPP_SHARED_API StringBuilder(int capacity);
26 ASPOSECPP_SHARED_API StringBuilder(const String& str);
30 ASPOSECPP_SHARED_API StringBuilder(const String& value, int capacity);
36 ASPOSECPP_SHARED_API StringBuilder(const String& value, int startIndex, int length, int capacity);
38 ASPOSECPP_SHARED_API ~StringBuilder();
39
42 ASPOSECPP_SHARED_API int get_Length() const;
45 ASPOSECPP_SHARED_API void set_Length(int len);
48 ASPOSECPP_SHARED_API int get_Capacity() const;
51 ASPOSECPP_SHARED_API void set_Capacity(int capacity);
52
56 ASPOSECPP_SHARED_API char_t operator[](int index) const;
60 ASPOSECPP_SHARED_API char_t idx_get(int index) const;
64 ASPOSECPP_SHARED_API void idx_set(int index, char_t c);
65
69 ASPOSECPP_SHARED_API StringBuilder* Append(char_t c);
74 ASPOSECPP_SHARED_API StringBuilder* Append(char_t c, int count);
78 ASPOSECPP_SHARED_API StringBuilder* Append(const ArrayPtr<char_t>& arr);
84 ASPOSECPP_SHARED_API StringBuilder* Append(const ArrayPtr<char_t>& arr, int startIndex, int charCount);
88 ASPOSECPP_SHARED_API StringBuilder* Append(const String& str);
94 ASPOSECPP_SHARED_API StringBuilder* Append(const String& str, int startIndex, int charCount);
99 template <class T> StringBuilder* Append(const SharedPtr<T>& obj) { return Append(obj == nullptr ? String::Empty : obj->ToString()); }
103 ASPOSECPP_SHARED_API StringBuilder* Append(const SharedPtr<StringBuilder>& builder);
104
108 ASPOSECPP_SHARED_API StringBuilder* Append(float f);
112 ASPOSECPP_SHARED_API StringBuilder* Append(double df);
116 ASPOSECPP_SHARED_API StringBuilder* Append(int i);
121 template<typename T>
122 typename std::enable_if<std::is_arithmetic<T>::value, StringBuilder*>::type Append(T value)
123 {
124 Append(Convert::ToString(value));
125 return this;
126 }
131 template<class E>
132 typename std::enable_if< std::is_enum<E>::value, StringBuilder*>::type Append(E e)
133 {
134 // If you got error here it means that enum E was translated without metainformation
135 // Add [CodePorting.Translator.Cs2Cpp.CppEnumEnableMetadata] attribute to fix the problem.
136 return Append(Enum<E>::GetName(e));
137 }
138
144 template<class... TArgs>
145 StringBuilder* AppendFormat(const String& format, const TArgs&... args)
146 {
147 return Append(String::Format(format, args...));
148 }
155 template<class... TArgs>
156 StringBuilder* AppendFormat(const SharedPtr<IFormatProvider> &fp, const String& format, const TArgs&... args)
157 {
158 return Append(String::Format(fp, format, args...));
159 }
160
163 ASPOSECPP_SHARED_API StringBuilder* AppendLine();
167 ASPOSECPP_SHARED_API StringBuilder* AppendLine(const String& str);
168
171 ASPOSECPP_SHARED_API StringBuilder* Clear();
172
177 ASPOSECPP_SHARED_API StringBuilder* Insert(int startIndex, const String& str);
183 ASPOSECPP_SHARED_API StringBuilder* Insert(int32_t index, const String& value, int32_t count);
188 ASPOSECPP_SHARED_API StringBuilder* Insert(int startIndex, char_t ch);
195 ASPOSECPP_SHARED_API StringBuilder* Insert(int index, const System::ArrayPtr<char_t>& chars, int startIndex, int charCount);
201 template<typename T>
202 typename std::enable_if<std::is_arithmetic<T>::value, StringBuilder*>::type Insert(int startIndex, T value)
203 {
204 Insert(startIndex, Convert::ToString(value));
205 return this;
206 }
207
212 ASPOSECPP_SHARED_API StringBuilder* Replace(const String& oldString, const String& newString);
219 ASPOSECPP_SHARED_API StringBuilder* Replace(const String& oldString, const String& newString, int position, int count);
224 ASPOSECPP_SHARED_API StringBuilder* Replace(char_t oldChar, char_t newChar);
231 ASPOSECPP_SHARED_API StringBuilder* Replace(char_t oldChar, char_t newChar, int startIndex, int count);
232
237 ASPOSECPP_SHARED_API StringBuilder* Remove(int startIndex, int length);
238
241 ASPOSECPP_SHARED_API String ToString() const override;
246 ASPOSECPP_SHARED_API String ToString(int startIndex, int length) const;
247
253 ASPOSECPP_SHARED_API void CopyTo(int sourceIndex, System::ArrayPtr<char_t> const& destination, int destinationIndex, int count);
254
255private:
257 System::Detail::UnicodeStringHolder m_storage;
262 void CheckBounds(int index, int count) const;
263};
264
265}}
266
267#endif // _aspose_system_text_string_builder_h_
Base class that enables using methods available for System.Object class in C#. All non-trivial classe...
Definition: object.h:62
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
String class used across the library. Is a substitute for C# System.String when translating code....
Definition: string.h:122
static String Format(const SharedPtr< IFormatProvider > &fp, const String &format, const Args &... args)
Formats string in C# style.
Definition: string.h:1405
static const String Empty
Empty string.
Definition: string.h:894
Buffer to accumulate string part by part. This type can be allocated either in stack as value type or...
Definition: string_builder.h:17
void idx_set(int index, char_t c)
Sets character at specified position.
String ToString() const override
Gets string currently contained in builder.
StringBuilder * Append(char_t c, int count)
Adds characters to builder.
StringBuilder * Replace(const String &oldString, const String &newString, int position, int count)
Replaces substring through the builder's range.
StringBuilder * Remove(int startIndex, int length)
Removes fragment from builder.
std::enable_if< std::is_arithmetic< T >::value, StringBuilder * >::type Append(T value)
Adds arithmetic value to builder.
Definition: string_builder.h:122
StringBuilder * Clear()
Removes all characters from the builder.
char_t idx_get(int index) const
Gets character at specified position.
StringBuilder * Append(float f)
Adds floating point value to builder.
StringBuilder(const String &str)
Constructor.
StringBuilder * Replace(char_t oldChar, char_t newChar, int startIndex, int count)
Replaces character through the builder's range.
char_t operator[](int index) const
Gets character at specified position.
StringBuilder * Append(const ArrayPtr< char_t > &arr)
Adds characters array to builder.
StringBuilder * Insert(int startIndex, const String &str)
Inserts string into builder's fixed position.
StringBuilder * AppendLine(const String &str)
Appends string followed by new line character to builder.
std::enable_if< std::is_arithmetic< T >::value, StringBuilder * >::type Insert(int startIndex, T value)
Inserts value into builder's fixed position.
Definition: string_builder.h:202
StringBuilder(const String &value, int capacity)
Constructor.
StringBuilder * Append(const ArrayPtr< char_t > &arr, int startIndex, int charCount)
Adds characters array slice to builder.
StringBuilder * Insert(int index, const System::ArrayPtr< char_t > &chars, int startIndex, int charCount)
Inserts characters into builder's fixed position.
void set_Length(int len)
Trunkates or extends string builder to specified length.
StringBuilder * Append(char_t c)
Adds character to builder.
String ToString(int startIndex, int length) const
Gets substring currently contained in builder.
std::enable_if< std::is_enum< E >::value, StringBuilder * >::type Append(E e)
Adds enum value string representation to builder.
Definition: string_builder.h:132
StringBuilder(int capacity)
Constructor.
int get_Capacity() const
Gets current capacity of string builder.
StringBuilder * Insert(int startIndex, char_t ch)
Inserts character into builder's fixed position.
StringBuilder * AppendFormat(const String &format, const TArgs &... args)
Appends formated string to builder.
Definition: string_builder.h:145
StringBuilder * Append(const SharedPtr< StringBuilder > &builder)
Adds builder's content to builder.
StringBuilder * AppendLine()
Appends new line character to builder.
StringBuilder * Append(const String &str, int startIndex, int charCount)
Adds string slice to builder.
int get_Length() const
Gets length of string currently in builder.
void CopyTo(int sourceIndex, System::ArrayPtr< char_t > const &destination, int destinationIndex, int count)
Copies builder's data into existing array positions.
StringBuilder * Insert(int32_t index, const String &value, int32_t count)
Inserts repeated string into builder's fixed position.
StringBuilder * Append(int i)
Adds integer value to builder.
StringBuilder(const String &value, int startIndex, int length, int capacity)
Constructor.
StringBuilder * Replace(char_t oldChar, char_t newChar)
Replaces character through the builder.
StringBuilder * Append(const SharedPtr< T > &obj)
Adds object's string representation to builder.
Definition: string_builder.h:99
StringBuilder * AppendFormat(const SharedPtr< IFormatProvider > &fp, const String &format, const TArgs &... args)
Appends formated string to builder.
Definition: string_builder.h:156
StringBuilder * Append(const String &str)
Adds string to builder.
StringBuilder * Replace(const String &oldString, const String &newString)
Replaces substring through the builder.
void set_Capacity(int capacity)
Sets current capacity of string builder.
StringBuilder * Append(double df)
Adds floating point value to builder.
@ Text
Defines color adjustment information for text.
Definition: db_command.h:9
static String ToString(int8_t value)
Converts the specified value to its string representation.
Provides methods that perform some operations on values of enum type. This is a static type with no i...
Definition: enum.h:158