File indexing completed on 2024-05-12 04:38:43

0001 /*
0002     SPDX-FileCopyrightText: 2012 Olivier de Gaalon <olivier.jg@gmail.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-only
0005 */
0006 
0007 #ifndef KDEVPLATFORM_DECLARATIONVALIDATOR_H
0008 #define KDEVPLATFORM_DECLARATIONVALIDATOR_H
0009 
0010 #include <tests/testsexport.h>
0011 
0012 #include "language/duchain/ducontext.h"
0013 
0014 #include <QMap>
0015 #include <QVariant>
0016 
0017 #include <functional>
0018 
0019 namespace KDevelop {
0020 class DeclarationValidatorPrivate;
0021 
0022 class KDEVPLATFORMTESTS_EXPORT DeclarationValidator
0023     : public DUChainVisitor
0024 {
0025 public:
0026     using TestDataEditor = std::function<void(QVariantMap& testData)>;
0027     explicit DeclarationValidator(TestDataEditor testDataAdjuster = nullptr);
0028     ~DeclarationValidator() override;
0029 
0030     virtual bool testsPassed() const;
0031     void visit(DUContext*) override;
0032     void visit(Declaration* declaration) override;
0033 
0034 private:
0035     Q_DISABLE_COPY(DeclarationValidator)
0036     const QScopedPointer<class DeclarationValidatorPrivate> d_ptr;
0037     Q_DECLARE_PRIVATE(DeclarationValidator)
0038 };
0039 }
0040 #endif //KDEVPLATFORM_DECLARATIONVALIDATOR_H