summaryrefslogtreecommitdiffstats
path: root/src/qdoc/node.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qdoc/node.h')
-rw-r--r--src/qdoc/node.h403
1 files changed, 0 insertions, 403 deletions
diff --git a/src/qdoc/node.h b/src/qdoc/node.h
deleted file mode 100644
index 584c8d144..000000000
--- a/src/qdoc/node.h
+++ /dev/null
@@ -1,403 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef NODE_H
-#define NODE_H
-
-#include "access.h"
-#include "doc.h"
-#include "enumitem.h"
-#include "importrec.h"
-#include "parameters.h"
-#include "relatedclass.h"
-#include "usingclause.h"
-
-#include <QtCore/qdir.h>
-#include <QtCore/qlist.h>
-#include <QtCore/qmap.h>
-#include <QtCore/qpair.h>
-#include <QtCore/qstringlist.h>
-
-QT_BEGIN_NAMESPACE
-
-class Aggregate;
-class ClassNode;
-class CollectionNode;
-class EnumNode;
-class ExampleNode;
-class FunctionNode;
-class Node;
-class QDocDatabase;
-class QmlTypeNode;
-class PageNode;
-class PropertyNode;
-class QmlPropertyNode;
-class SharedCommentNode;
-class Tree;
-class TypedefNode;
-
-typedef QMap<QString, FunctionNode *> FunctionMap;
-typedef QList<Node *> NodeList;
-typedef QList<ClassNode *> ClassList;
-typedef QList<Node *> NodeVector;
-typedef QMap<QString, Node *> NodeMap;
-typedef QMap<QString, NodeMap> NodeMapMap;
-typedef QMultiMap<QString, Node *> NodeMultiMap;
-typedef QMap<QString, NodeMultiMap> NodeMultiMapMap;
-typedef QMap<QString, CollectionNode *> CNMap;
-typedef QMultiMap<QString, CollectionNode *> CNMultiMap;
-
-class Node
-{
-public:
- enum NodeType : unsigned char {
- NoType,
- Namespace,
- Class,
- Struct,
- Union,
- HeaderFile,
- Page,
- Enum,
- Example,
- ExternalPage,
- Function,
- Typedef,
- TypeAlias,
- Property,
- Variable,
- Group,
- Module,
- QmlType,
- QmlModule,
- QmlProperty,
- QmlBasicType,
- JsType,
- JsModule,
- JsProperty,
- JsBasicType,
- SharedComment,
- Collection,
- Proxy
- };
-
- enum Genus : unsigned char {
- DontCare = 0x0,
- CPP = 0x1,
- JS = 0x2,
- QML = 0x4,
- DOC = 0x8,
- API = CPP | JS | QML
- };
-
- enum Status : unsigned char {
- Deprecated,
- Preliminary,
- Active,
- Internal,
- DontDocument
- }; // don't reorder this enum
-
- enum ThreadSafeness : unsigned char {
- UnspecifiedSafeness,
- NonReentrant,
- Reentrant,
- ThreadSafe
- };
-
- enum LinkType : unsigned char { StartLink, NextLink, PreviousLink, ContentsLink };
-
- enum PageType : unsigned char {
- NoPageType,
- AttributionPage,
- ApiPage,
- ArticlePage,
- ExamplePage,
- HowToPage,
- OverviewPage,
- TutorialPage,
- FAQPage
- };
-
- enum FlagValue { FlagValueDefault = -1, FlagValueFalse = 0, FlagValueTrue = 1 };
-
- virtual ~Node() = default;
- virtual Node *clone(Aggregate *) { return nullptr; } // currently only FunctionNode
- [[nodiscard]] virtual Tree *tree() const;
- [[nodiscard]] Aggregate *root() const;
-
- [[nodiscard]] NodeType nodeType() const { return m_nodeType; }
- [[nodiscard]] QString nodeTypeString() const;
- bool changeType(NodeType from, NodeType to);
-
- [[nodiscard]] Genus genus() const { return m_genus; }
- void setGenus(Genus t) { m_genus = t; }
- static Genus getGenus(NodeType t);
-
- [[nodiscard]] PageType pageType() const { return m_pageType; }
- void setPageType(PageType t) { m_pageType = t; }
- void setPageType(const QString &t);
- static PageType getPageType(NodeType t);
-
- [[nodiscard]] bool isActive() const { return m_status == Active; }
- [[nodiscard]] bool isClass() const { return m_nodeType == Class; }
- [[nodiscard]] bool isCppNode() const { return genus() == CPP; }
- [[nodiscard]] bool isDontDocument() const { return (m_status == DontDocument); }
- [[nodiscard]] bool isEnumType() const { return m_nodeType == Enum; }
- [[nodiscard]] bool isExample() const { return m_nodeType == Example; }
- [[nodiscard]] bool isExternalPage() const { return m_nodeType == ExternalPage; }
- [[nodiscard]] bool isFunction(Genus g = DontCare) const
- {
- return m_nodeType == Function && (genus() == g || g == DontCare);
- }
- [[nodiscard]] bool isGroup() const { return m_nodeType == Group; }
- [[nodiscard]] bool isHeader() const { return m_nodeType == HeaderFile; }
- [[nodiscard]] bool isIndexNode() const { return m_indexNodeFlag; }
- [[nodiscard]] bool isJsBasicType() const { return m_nodeType == JsBasicType; }
- [[nodiscard]] bool isJsModule() const { return m_nodeType == JsModule; }
- [[nodiscard]] bool isJsNode() const { return genus() == JS; }
- [[nodiscard]] bool isJsProperty() const { return m_nodeType == JsProperty; }
- [[nodiscard]] bool isJsType() const { return m_nodeType == JsType; }
- [[nodiscard]] bool isModule() const { return m_nodeType == Module; }
- [[nodiscard]] bool isNamespace() const { return m_nodeType == Namespace; }
- [[nodiscard]] bool isPage() const { return m_nodeType == Page; }
- [[nodiscard]] bool isPreliminary() const { return (m_status == Preliminary); }
- [[nodiscard]] bool isPrivate() const { return m_access == Access::Private; }
- [[nodiscard]] bool isProperty() const { return m_nodeType == Property; }
- [[nodiscard]] bool isProxyNode() const { return m_nodeType == Proxy; }
- [[nodiscard]] bool isPublic() const { return m_access == Access::Public; }
- [[nodiscard]] bool isProtected() const { return m_access == Access::Protected; }
- [[nodiscard]] bool isQmlBasicType() const { return m_nodeType == QmlBasicType; }
- [[nodiscard]] bool isQmlModule() const { return m_nodeType == QmlModule; }
- [[nodiscard]] bool isQmlNode() const { return genus() == QML; }
- [[nodiscard]] bool isQmlProperty() const { return m_nodeType == QmlProperty; }
- [[nodiscard]] bool isQmlType() const { return m_nodeType == QmlType; }
- [[nodiscard]] bool isRelatedNonmember() const { return m_relatedNonmember; }
- [[nodiscard]] bool isStruct() const { return m_nodeType == Struct; }
- [[nodiscard]] bool isSharedCommentNode() const { return m_nodeType == SharedComment; }
- [[nodiscard]] bool isTypeAlias() const { return m_nodeType == TypeAlias; }
- [[nodiscard]] bool isTypedef() const
- {
- return m_nodeType == Typedef || m_nodeType == TypeAlias;
- }
- [[nodiscard]] bool isUnion() const { return m_nodeType == Union; }
- [[nodiscard]] bool isVariable() const { return m_nodeType == Variable; }
- [[nodiscard]] bool isGenericCollection() const { return (m_nodeType == Node::Collection); }
-
- [[nodiscard]] virtual bool isDeprecated() const { return (m_status == Deprecated); }
- [[nodiscard]] virtual bool isAbstract() const { return false; }
- [[nodiscard]] virtual bool isAggregate() const { return false; } // means "can have children"
- [[nodiscard]] virtual bool isFirstClassAggregate() const
- {
- return false;
- } // Aggregate but not proxy or prop group"
- [[nodiscard]] virtual bool isAlias() const { return false; }
- [[nodiscard]] virtual bool isAttached() const { return false; }
- [[nodiscard]] virtual bool isClassNode() const { return false; }
- [[nodiscard]] virtual bool isCollectionNode() const { return false; }
- [[nodiscard]] virtual bool isDefault() const { return false; }
- [[nodiscard]] virtual bool isInternal() const;
- [[nodiscard]] virtual bool isMacro() const { return false; }
- [[nodiscard]] virtual bool isPageNode() const { return false; } // means "generates a doc page"
- [[nodiscard]] virtual bool isQtQuickNode() const { return false; }
- [[nodiscard]] virtual bool isReadOnly() const { return false; }
- [[nodiscard]] virtual bool isRelatableType() const { return false; }
- [[nodiscard]] virtual bool isMarkedReimp() const { return false; }
- [[nodiscard]] virtual bool isPropertyGroup() const { return false; }
- [[nodiscard]] virtual bool isStatic() const { return false; }
- [[nodiscard]] virtual bool isTextPageNode() const
- {
- return false;
- } // means PageNode but not Aggregate
- [[nodiscard]] virtual bool isWrapper() const;
-
- [[nodiscard]] QString plainName() const;
- QString plainFullName(const Node *relative = nullptr) const;
- [[nodiscard]] QString plainSignature() const;
- QString fullName(const Node *relative = nullptr) const;
- [[nodiscard]] virtual QString signature(bool, bool) const { return plainName(); }
- [[nodiscard]] virtual QString signature(bool, bool, bool) const { return plainName(); }
-
- [[nodiscard]] const QString &fileNameBase() const { return m_fileNameBase; }
- [[nodiscard]] bool hasFileNameBase() const { return !m_fileNameBase.isEmpty(); }
- void setFileNameBase(const QString &t) { m_fileNameBase = t; }
-
- void setAccess(Access t) { m_access = t; }
- void setLocation(const Location &t);
- void setDoc(const Doc &doc, bool replace = false);
- void setStatus(Status t);
- void setThreadSafeness(ThreadSafeness t) { m_safeness = t; }
- void setSince(const QString &since);
- void setPhysicalModuleName(const QString &name) { m_physicalModuleName = name; }
- void setUrl(const QString &url) { m_url = url; }
- void setTemplateDecl(const QString &t) { m_templateDecl = t; }
- void setReconstitutedBrief(const QString &t) { m_reconstitutedBrief = t; }
- void setParent(Aggregate *n) { m_parent = n; }
- void setIndexNodeFlag(bool isIndexNode = true) { m_indexNodeFlag = isIndexNode; }
- void setHadDoc() { m_hadDoc = true; }
- virtual void setRelatedNonmember(bool b) { m_relatedNonmember = b; }
- virtual void setOutputFileName(const QString &) {}
- virtual void addMember(Node *) {}
- [[nodiscard]] virtual bool hasNamespaces() const { return false; }
- [[nodiscard]] virtual bool hasClasses() const { return false; }
- virtual void setAbstract(bool) {}
- virtual void setWrapper() {}
- virtual void getMemberNamespaces(NodeMap &) {}
- virtual void getMemberClasses(NodeMap &) const {}
- virtual void setDataType(const QString &) {}
- [[nodiscard]] virtual bool wasSeen() const { return false; }
- virtual void appendGroupName(const QString &) {}
- [[nodiscard]] virtual QString element() const { return QString(); }
- virtual void setNoAutoList(bool) {}
- [[nodiscard]] virtual bool docMustBeGenerated() const { return false; }
-
- [[nodiscard]] virtual QString title() const { return name(); }
- [[nodiscard]] virtual QString subtitle() const { return QString(); }
- [[nodiscard]] virtual QString fullTitle() const { return name(); }
- virtual bool setTitle(const QString &) { return false; }
- virtual bool setSubtitle(const QString &) { return false; }
-
- void markInternal()
- {
- setAccess(Access::Private);
- setStatus(Internal);
- }
- virtual void markDefault() {}
- virtual void markReadOnly(bool) {}
-
- [[nodiscard]] bool match(const QList<int> &types) const;
- [[nodiscard]] Aggregate *parent() const { return m_parent; }
- [[nodiscard]] const QString &name() const { return m_name; }
- [[nodiscard]] QString physicalModuleName() const;
- [[nodiscard]] QString url() const { return m_url; }
- [[nodiscard]] virtual QString nameForLists() const { return m_name; }
- [[nodiscard]] virtual QString outputFileName() const { return QString(); }
- [[nodiscard]] virtual QString obsoleteLink() const { return QString(); }
- virtual void setObsoleteLink(const QString &) {}
- virtual void setQtVariable(const QString &) {}
- [[nodiscard]] virtual QString qtVariable() const { return QString(); }
- virtual void setQtCMakeComponent(const QString &) {}
- [[nodiscard]] virtual QString qtCMakeComponent() const { return QString(); }
- [[nodiscard]] virtual bool hasTag(const QString &) const { return false; }
-
- void setDeprecatedSince(const QString &sinceVersion);
- [[nodiscard]] const QString &deprecatedSince() const { return m_deprecatedSince; }
-
- [[nodiscard]] const QMap<LinkType, QPair<QString, QString>> &links() const { return m_linkMap; }
- void setLink(LinkType linkType, const QString &link, const QString &desc);
-
- [[nodiscard]] Access access() const { return m_access; }
- [[nodiscard]] const Location &declLocation() const { return m_declLocation; }
- [[nodiscard]] const Location &defLocation() const { return m_defLocation; }
- [[nodiscard]] const Location &location() const
- {
- return (m_defLocation.isEmpty() ? m_declLocation : m_defLocation);
- }
- [[nodiscard]] const Doc &doc() const { return m_doc; }
- [[nodiscard]] bool isInAPI() const
- {
- return !isPrivate() && !isInternal() && !isDontDocument() && hasDoc();
- }
- [[nodiscard]] bool hasDoc() const { return (m_hadDoc || !m_doc.isEmpty()); }
- [[nodiscard]] bool hadDoc() const { return m_hadDoc; }
- [[nodiscard]] Status status() const { return m_status; }
- [[nodiscard]] ThreadSafeness threadSafeness() const;
- [[nodiscard]] ThreadSafeness inheritedThreadSafeness() const;
- [[nodiscard]] QString since() const { return m_since; }
- [[nodiscard]] const QString &templateDecl() const { return m_templateDecl; }
- [[nodiscard]] const QString &reconstitutedBrief() const { return m_reconstitutedBrief; }
-
- [[nodiscard]] bool isSharingComment() const { return (m_sharedCommentNode != nullptr); }
- [[nodiscard]] bool hasSharedDoc() const;
- void setSharedCommentNode(SharedCommentNode *t) { m_sharedCommentNode = t; }
- SharedCommentNode *sharedCommentNode() { return m_sharedCommentNode; }
-
- [[nodiscard]] QString extractClassName(const QString &string) const;
- [[nodiscard]] virtual QString qmlTypeName() const { return m_name; }
- [[nodiscard]] virtual QString qmlFullBaseName() const { return QString(); }
- [[nodiscard]] virtual QString logicalModuleName() const { return QString(); }
- [[nodiscard]] virtual QString logicalModuleVersion() const { return QString(); }
- [[nodiscard]] virtual QString logicalModuleIdentifier() const { return QString(); }
- virtual void setLogicalModuleInfo(const QString &) {}
- virtual void setLogicalModuleInfo(const QStringList &) {}
- [[nodiscard]] virtual CollectionNode *logicalModule() const { return nullptr; }
- virtual void setQmlModule(CollectionNode *) {}
- virtual ClassNode *classNode() { return nullptr; }
- virtual void setClassNode(ClassNode *) {}
- QmlTypeNode *qmlTypeNode();
- ClassNode *declarativeCppNode();
- [[nodiscard]] const QString &outputSubdirectory() const { return m_outSubDir; }
- virtual void setOutputSubdirectory(const QString &t) { m_outSubDir = t; }
- [[nodiscard]] QString fullDocumentName() const;
- QString qualifyCppName();
- QString qualifyQmlName();
- QString qualifyWithParentName();
-
- static FlagValue toFlagValue(bool b);
- static bool fromFlagValue(FlagValue fv, bool defaultValue);
- static QString nodeTypeString(NodeType t);
- static void initialize();
- static NodeType goal(const QString &t) { return goals.value(t); }
- static bool nodeNameLessThan(const Node *first, const Node *second);
-
-protected:
- Node(NodeType type, Aggregate *parent, QString name);
-
-private:
- NodeType m_nodeType {};
- Genus m_genus {};
- Access m_access { Access::Public };
- ThreadSafeness m_safeness { UnspecifiedSafeness };
- PageType m_pageType { NoPageType };
- Status m_status { Active };
- bool m_indexNodeFlag : 1;
- bool m_relatedNonmember : 1;
- bool m_hadDoc : 1;
-
- Aggregate *m_parent { nullptr };
- SharedCommentNode *m_sharedCommentNode { nullptr };
- QString m_name {};
- Location m_declLocation {};
- Location m_defLocation {};
- Doc m_doc {};
- QMap<LinkType, QPair<QString, QString>> m_linkMap {};
- QString m_fileNameBase {};
- QString m_physicalModuleName {};
- QString m_url {};
- QString m_since {};
- QString m_templateDecl {};
- QString m_reconstitutedBrief {};
- QString m_outSubDir {};
- static QStringMap operators;
- static QMap<QString, Node::NodeType> goals;
- QString m_deprecatedSince {};
-};
-
-QT_END_NAMESPACE
-
-#endif