diff options
Diffstat (limited to 'sources/shiboken6/ApiExtractor/abstractmetafield.h')
-rw-r--r-- | sources/shiboken6/ApiExtractor/abstractmetafield.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/sources/shiboken6/ApiExtractor/abstractmetafield.h b/sources/shiboken6/ApiExtractor/abstractmetafield.h new file mode 100644 index 000000000..0fa858791 --- /dev/null +++ b/sources/shiboken6/ApiExtractor/abstractmetafield.h @@ -0,0 +1,88 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef ABSTRACTMETAFIELD_H +#define ABSTRACTMETAFIELD_H + +#include "abstractmetalang_typedefs.h" +#include "parser/codemodel_enums.h" +#include "typesystem_enums.h" +#include "modifications_typedefs.h" +#include "typesystem_typedefs.h" +#include "enclosingclassmixin.h" + +#include <QtCore/QSharedDataPointer> + +#include <optional> + +QT_FORWARD_DECLARE_CLASS(QDebug) + +class Documentation; +class AbstractMetaFieldData; + +class AbstractMetaField : public EnclosingClassMixin +{ +public: + AbstractMetaField(); + AbstractMetaField(const AbstractMetaField &); + AbstractMetaField &operator=(const AbstractMetaField &); + AbstractMetaField(AbstractMetaField &&) noexcept; + AbstractMetaField &operator=(AbstractMetaField &&) noexcept; + ~AbstractMetaField(); + + FieldModificationList modifications() const; + + bool isModifiedRemoved() const; + bool generateOpaqueContainer() const; + + const AbstractMetaType &type() const; + void setType(const AbstractMetaType &type); + + QString name() const; + void setName(const QString &name); + + Access access() const; + void setAccess(Access a); + bool isPrivate() const { return access() == Access::Private; } + bool isProtected() const { return access() == Access::Protected; } + + bool isStatic() const; + void setStatic(bool s); + + QString qualifiedCppName() const; + + // Names under which the field will be registered to Python. + QStringList definitionNames() const; + + QString originalName() const; + void setOriginalName(const QString& name); + + const Documentation &documentation() const; + void setDocumentation(const Documentation& doc); + + bool isGetterEnabled() const; // Modifications + void setGetterEnabled(bool e); + bool isSetterEnabled() const; // Modifications + void setSetterEnabled(bool e); + + bool canGenerateGetter() const; + bool canGenerateSetter() const; + + TypeSystem::SnakeCase snakeCase() const; + + static std::optional<AbstractMetaField> + find(const AbstractMetaFieldList &haystack, QStringView needle); + +#ifndef QT_NO_DEBUG_STREAM + void formatDebug(QDebug &d) const; +#endif +private: + QSharedDataPointer<AbstractMetaFieldData> d; +}; + +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug d, const AbstractMetaField *af); +QDebug operator<<(QDebug d, const AbstractMetaField &af); +#endif + +#endif // ABSTRACTMETAFIELD_H |