1// Copyright (C) 2023 basysKom GmbH, opensource@basyskom.com
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include "stringidentifier.h"
5
6using namespace Qt::Literals::StringLiterals;
7
8const QString StringIdentifier::baseTypeIdentifier = u"BaseType"_s;
9const QString StringIdentifier::binaryTypeIdentifier = u"opc"_s;
10const QString StringIdentifier::bitIdentifier = u"Bit"_s;
11const QString StringIdentifier::booleanIdentifier = u"Boolean"_s;
12const QString StringIdentifier::byteIdentifier = u"Byte"_s;
13const QString StringIdentifier::sbyteIdentifier = u"SByte"_s;
14const QString StringIdentifier::byteStringIdentifier = u"ByteString"_s;
15const QString StringIdentifier::charArrayIdentifier = u"CharArray"_s;
16const QString StringIdentifier::cppIdentifier = u".cpp"_s;
17const QString StringIdentifier::datetimeIdentifier = u"DateTime"_s;
18const QString StringIdentifier::defaultByteOrderIdentifier = u"DefaultByteOrder"_s;
19const QString StringIdentifier::documentationIdentifier = u"Documentation"_s;
20const QString StringIdentifier::doubleIdentifier = u"Double"_s;
21const QString StringIdentifier::enumeratedTypeIdentifier = u"EnumeratedType"_s;
22const QString StringIdentifier::enumeratedValueIdentifier = u"EnumeratedValue"_s;
23const QString StringIdentifier::fieldIdentifier = u"Field"_s;
24const QString StringIdentifier::floatIdentifier = u"Float"_s;
25const QString StringIdentifier::guidIdentifier = u"Guid"_s;
26const QString StringIdentifier::headerIdentifier = u".h"_s;
27const QString StringIdentifier::importIdentifier = u"Import"_s;
28const QString StringIdentifier::integerIdentifier = u"Int"_s;
29const QString StringIdentifier::lengthIdentifier = u"Length"_s;
30const QString StringIdentifier::lengthFieldIdentifier = u"LengthField"_s;
31const QString StringIdentifier::lengthInBitsIdentifier = u"LengthInBits"_s;
32const QString StringIdentifier::locationIdentifier = u"Location"_s;
33const QString StringIdentifier::mainIdentifier = u"main.cpp"_s;
34const QString StringIdentifier::makelistIdentifier = u"CMakeLists.txt"_s;
35const QString StringIdentifier::nameIdentifier = u"Name"_s;
36const QString StringIdentifier::nameSpaceIdentifier = u"Namespace"_s;
37const QString StringIdentifier::namespaceZeroIdentifier = u"http://opcfoundation.org/UA/"_s;
38const QString StringIdentifier::opaqueTypeIdentifier = u"OpaqueType"_s;
39const QString StringIdentifier::projectIdentifier = u"cmakeqt6"_s;
40const QString StringIdentifier::qByteArrayIdentifier = u"QByteArray"_s;
41const QString StringIdentifier::qStringIdentifier = u"QString"_s;
42const QString StringIdentifier::uaStatusCodeIdentifier = u"StatusCode"_s;
43const QString StringIdentifier::reservedIdentifier = u"Reserved"_s;
44const QString StringIdentifier::specifiedIdentifier = u"Specified"_s;
45const QString StringIdentifier::structuredTypeIdentifier = u"StructuredType"_s;
46const QString StringIdentifier::switchFieldIdentifier = u"SwitchField"_s;
47const QString StringIdentifier::switchValueIdentifier = u"SwitchValue"_s;
48const QString StringIdentifier::targetNamespaceIdentifier = u"TargetNamespace"_s;
49const QString StringIdentifier::typeDictionaryIdentifier = u"TypeDictionary"_s;
50const QString StringIdentifier::typeNameIdentifier = u"TypeName"_s;
51const QString StringIdentifier::valueIdentifier = u"Value"_s;
52const QString StringIdentifier::xmlElementIdentifier = u"XmlElement"_s;
53const QString StringIdentifier::opcBitIdentifier = u"opc:Bit"_s;
54
55const QList<StringIdentifier::OpcUaPrecodedType> StringIdentifier::opcUaPrecodedTypes{
56 OpcUaPrecodedType(u"ApplicationRecordDataType"_s, u"QOpcUaApplicationRecordDataType"_s,
57 u"QOpcUaApplicationRecordDataType"_s),
58 OpcUaPrecodedType(u"Argument"_s, u"QOpcUaArgument"_s, u"QOpcUaArgument"_s),
59 OpcUaPrecodedType(u"AxisInformation"_s, u"QOpcUaAxisInformation"_s, u"QOpcUaAxisInformation"_s),
60 OpcUaPrecodedType(u"ComplexNumber"_s, u"QOpcUaComplexNumber"_s, u"QOpcUaComplexNumber"_s),
61 OpcUaPrecodedType(u"DoubleComplexNumber"_s, u"QOpcUaDoubleComplexNumber"_s, u"QOpcUaDoubleComplexNumber"_s),
62 OpcUaPrecodedType(u"EUInformation"_s, u"QOpcUaEUInformation"_s, u"QOpcUaEUInformation"_s),
63 OpcUaPrecodedType(u"ExpandedNodeId"_s, u"QOpcUaExpandedNodeId"_s, u"QOpcUaExpandedNodeId"_s),
64 OpcUaPrecodedType(u"ExtensionObject"_s, u"QOpcUaExtensionObject"_s, u"QOpcUaExtensionObject"_s),
65 OpcUaPrecodedType(u"LocalizedText"_s, u"QOpcUaLocalizedText"_s, u"QOpcUaLocalizedText"_s),
66 OpcUaPrecodedType(u"NodeId"_s, QString(), u"QString"_s, u"QString"_s),
67 OpcUaPrecodedType(u"QualifiedName"_s, u"QOpcUaQualifiedName"_s, u"QOpcUaQualifiedName"_s),
68 OpcUaPrecodedType(u"Range"_s, u"QOpcUaRange"_s, u"QOpcUaRange"_s),
69 OpcUaPrecodedType(u"StatusCode"_s, u"qopcuatype.h"_s, u"QOpcUa::UaStatusCode"_s),
70 OpcUaPrecodedType(u"XVType"_s, u"QOpcUaXValue"_s, u"QOpcUaXValue"_s),
71 OpcUaPrecodedType(u"DiagnosticInfo"_s, u"QOpcUaDiagnosticInfo"_s, u"QOpcUaDiagnosticInfo"_s),
72 OpcUaPrecodedType(u"StructureField"_s, u"QOpcUaStructureField"_s, u"QOpcUaStructureField"_s),
73 OpcUaPrecodedType(u"StructureDefinition"_s, u"QOpcUaStructureDefinition"_s, u"QOpcUaStructureDefinition"_s),
74 OpcUaPrecodedType(u"EnumField"_s, u"QOpcUaEnumField"_s, u"QOpcUaEnumField"_s),
75 OpcUaPrecodedType(u"EnumDefinition"_s, u"QOpcUaEnumDefinition"_s, u"QOpcUaEnumDefinition"_s),
76 OpcUaPrecodedType(u"DataValue"_s, u"QOpcUaDataValue"_s, u"QOpcUaDataValue"_s),
77 OpcUaPrecodedType(u"Variant"_s, u"QOpcUaVariant"_s, u"QOpcUaVariant"_s)
78};
79
80const QList<QString> StringIdentifier::buildInTypesWithBitMask = {u"DiagnosticInfo"_s,
81 u"LocalizedText"_s,
82 u"Variant"_s,
83 u"DataValue"_s,
84 u"Variant"_s};
85
86const QMap<QString, QString> StringIdentifier::typeNameDataTypeConverter
87 = {{u"opc:Bit"_s, u"bool"_s},
88 {u"opc:Boolean"_s, u"bool"_s},
89 {u"opc:Byte"_s, u"quint8"_s},
90 {u"opc:ByteString"_s, u"QByteArray"_s},
91 {u"opc:CharArray"_s, u"QString"_s},
92 {u"opc:DateTime"_s, u"QDateTime"_s},
93 {u"opc:Double"_s, u"double"_s},
94 {u"opc:Float"_s, u"float"_s},
95 {u"opc:Int16"_s, u"qint16"_s},
96 {u"opc:Int32"_s, u"qint32"_s},
97 {u"opc:Int64"_s, u"qint64"_s},
98 {u"opc:SByte"_s, u"qint8"_s},
99 {u"opc:String"_s, u"QString"_s},
100 {u"opc:UInt16"_s, u"quint16"_s},
101 {u"opc:UInt32"_s, u"quint32"_s},
102 {u"opc:UInt64"_s, u"quint64"_s},
103 {u"opc:Guid"_s, u"QUuid"_s},
104 {u"ua:XmlElement"_s, u"QString"_s}};
105
106const QList<QString> StringIdentifier::illegalNames
107 = {u"Boolean"_s, u"boolean"_s, u"Int16"_s, u"int16"_s, u"Float"_s, u"float"_s,
108 u"Datetime"_s, u"datetime"_s, u"byteString"_s, u"ByteString"_s, u"XmlElement"_s, u"xmlElement"_s,
109 u"byte"_s, u"Byte"_s, u"SByte"_s, u"sByte"_s, u"Int32"_s, u"int32"_s,
110 u"Int64"_s, u"int64"_s, u"Double"_s, u"double"_s, u"String"_s, u"string"_s};
111
112const QSet<QString> StringIdentifier::precodedTypesWithDebugOperator = { u"LocalizedText"_s, u"NodeId"_s, u"QualifiedName"_s };
113
114QString StringIdentifier::OpcUaPrecodedType::name() const
115{
116 return m_name;
117}
118
119QString StringIdentifier::OpcUaPrecodedType::filename() const
120{
121 return m_filename;
122}
123
124QString StringIdentifier::OpcUaPrecodedType::className() const
125{
126 return m_className;
127}
128
129QString StringIdentifier::OpcUaPrecodedType::deEncoderName() const
130{
131 return m_deEncoderName;
132}
133

source code of qtopcua/tools/datatypecodegenerator/stringidentifier.cpp