File indexing completed on 2024-04-28 15:52:41

0001 /*
0002     SPDX-FileCopyrightText: 2008 Milian Wolff <mail@milianw.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef PHP_FUNCTIONDECLARATION_H
0008 #define PHP_FUNCTIONDECLARATION_H
0009 
0010 #include <language/duchain/functiondeclaration.h>
0011 
0012 #include <language/duchain/declaration.h>
0013 #include <language/duchain/declarationdata.h>
0014 #include <serialization/indexedstring.h>
0015 
0016 #include "phpduchainexport.h"
0017 namespace Php
0018 {
0019 
0020 class KDEVPHPDUCHAIN_EXPORT FunctionDeclarationData : public KDevelop::FunctionDeclarationData
0021 {
0022 public:
0023     FunctionDeclarationData()
0024             : KDevelop::FunctionDeclarationData() {}
0025 
0026     FunctionDeclarationData(const FunctionDeclarationData& rhs)
0027             : KDevelop::FunctionDeclarationData(rhs)
0028     {
0029         prettyName = rhs.prettyName;
0030     }
0031 
0032     ~FunctionDeclarationData() {}
0033 
0034     KDevelop::IndexedString prettyName;
0035 };
0036 
0037 class KDEVPHPDUCHAIN_EXPORT FunctionDeclaration : public KDevelop::FunctionDeclaration
0038 {
0039 public:
0040     FunctionDeclaration(const FunctionDeclaration &rhs);
0041     FunctionDeclaration(const KDevelop::RangeInRevision &range, KDevelop::DUContext *context);
0042     FunctionDeclaration(FunctionDeclarationData &data);
0043     FunctionDeclaration(FunctionDeclarationData &data, const KDevelop::RangeInRevision &range, KDevelop::DUContext *context);
0044     ~FunctionDeclaration() override;
0045 
0046     QString toString() const override;
0047 
0048     void setPrettyName(const KDevelop::IndexedString& name);
0049     KDevelop::IndexedString prettyName() const;
0050 
0051     enum {
0052         Identity = 86
0053     };
0054 
0055     KDevelop::Declaration* clonePrivate() const override;
0056 private:
0057     DUCHAIN_DECLARE_DATA(FunctionDeclaration)
0058 };
0059 
0060 }
0061 
0062 #endif // PHP_FUNCTIONDECLARATION_H