// Copyright (C) 2023 basysKom GmbH, opensource@basyskom.com // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #pragma once #include "xmlelement.h" #include class Field; class StructuredType : public XmlElement { public: StructuredType(const QString &name, const QString &baseType); ~StructuredType(); QString baseType() const; void setBaseType(const QString &baseType); void addField(Field *field); void print() const override; void accept(Visitor *visitor) override; QList fields() const; void setFields(const QList &fields); bool containsBitMask() const; void setContainsBitMask(bool containsBitMask); bool isBuiltInType() const; void setIsBuiltInType(bool isBuiltInType); bool hasSwitchfield() const; void setHasSwitchfield(bool hasSwitchfield); bool hasUnion() const; void setHasUnion(bool hasUnion); QString targetNamespace() const; void setTargetNamespace(const QString &targetNamespace); bool recursive() const; void setRecursive(bool recursive); private: bool m_containsBitMask{false}; bool m_isBuiltInType{false}; bool m_hasSwitchfield{false}; bool m_hasUnion{false}; bool m_recursive{false}; QString m_baseType; QString m_targetNamespace; QList m_fields; };