Revision control
++ // 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"
++
++ class Field : public XmlElement
++ {
++ public:
++ Field(const QString &name, const QString &typeName, const QString &lengthField = QString());
++ ~Field() override = default;
++
++ void print() const override;
++ virtual void accept(Visitor *visitor) override;
++
++ QString typeName() const;
++ QString typeNameSecondPart() const;
++ void setTypeName(const QString &typeName);
++
++ QString lengthField() const;
++ void setLengthField(const QString &lengthField);
++
++ bool hasLengthField() const;
++ void setHasLengthField(bool hasLengthField);
++
++ bool needContainer() const;
++ void setNeedContainer(bool needContainer);
++
++ bool isInStructuredTypeBitMask() const;
++ void setIsInStructuredTypeBitMask(bool isInStructuredTypeBitMask);
++
++ int length() const;
++ void setLength(int length);
++
++ QString switchField() const;
++ void setSwitchField(const QString &switchField);
++
++ int switchValue() const;
++ void setSwitchValue(int switchValue);
++
++ bool isUnion() const;
++ void setIsUnion(bool isUnion);
++
++ bool recursive() const;
++ void setRecursive(bool recursive);
++
++ bool isEnum() const;
++ void setIsEnum(bool newIsEnum);
++ private:
++ bool m_hasLengthField{false};
++ bool m_needContainer{false};
++ bool m_isInStructuredTypeBitMask{false};
++ bool m_isUnion{false};
++ int m_length;
++ int m_switchValue{0};
++ bool m_recursive{false};
++ bool m_isEnum{false};
++ QString m_lengthField;
++ QString m_switchField;
++ QString m_typeName;
++ };