ImagingTools Core SDK
CSdlEnumConverter.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// ACF includes
6#include <icomp/TReferenceMember.h>
7
8// ImtCore includes
9#include <imtsdl/CSdlEnum.h>
10
11
12namespace imtsdl
13{
14
15
16class CSdlEnumConverter
17{
18
19
20public:
21 enum ConversionType
22 {
23 CT_AS_IS,
24 CT_UPPER_CAMEL_CASE,
25 CT_LOWER_CAMEL_CASE,
26 CT_UPPER_SNAKE_CASE,
27 CT_LOWER_SNAKE_CASE,
28 CT_UPPER_KEBAB_CASE,
29 CT_LOWER_KEBAB_CASE
30 };
31
32 // static variables
37 static ConversionType s_defaultConversionType;
38
39 // conversion methods
40 [[nodiscard]] static QString ConvertEnumValueToStringEquivalent(const QString& enumValue, ConversionType conversionType = s_defaultConversionType);
41
42 // generate methods
43 static void WriteConversionFromEnum(
44 QTextStream& stream,
45 const CSdlEnum& sdlEnum,
46 const QString& sourceVariableName,
47 const QString& targetVariableName,
48 const QString& relatedNamespace,
49 uint hIndents = 1);
50 static void WriteEnumConversionFromString(
51 QTextStream& stream,
52 const CSdlEnum& sdlEnum,
53 const QString& sourceVariableName,
54 const QString& targetVariableName,
55 const QString& relatedNamespace,
56 uint hIndents = 1);
57};
58
59
60} // namespace imtsdl