File indexing completed on 2024-05-05 16:41:08

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_NAMESPACEDECLARATION_H
0008 #define PHP_NAMESPACEDECLARATION_H
0009 
0010 #include <language/duchain/declaration.h>
0011 
0012 #include <language/duchain/declarationdata.h>
0013 #include <serialization/indexedstring.h>
0014 
0015 #include "phpduchainexport.h"
0016 namespace Php
0017 {
0018 
0019 class KDEVPHPDUCHAIN_EXPORT NamespaceDeclarationData : public KDevelop::DeclarationData
0020 {
0021 public:
0022     NamespaceDeclarationData()
0023             : KDevelop::DeclarationData() {}
0024 
0025     NamespaceDeclarationData(const NamespaceDeclarationData& rhs)
0026             : KDevelop::DeclarationData(rhs)
0027     {
0028         prettyName = rhs.prettyName;
0029     }
0030 
0031     ~NamespaceDeclarationData() {}
0032 
0033     KDevelop::IndexedString prettyName;
0034 };
0035 
0036 class KDEVPHPDUCHAIN_EXPORT NamespaceDeclaration : public KDevelop::Declaration
0037 {
0038 public:
0039     NamespaceDeclaration(const NamespaceDeclaration &rhs);
0040     NamespaceDeclaration(const KDevelop::RangeInRevision &range, KDevelop::DUContext *parentContext);
0041     NamespaceDeclaration(NamespaceDeclarationData &data);
0042     ~NamespaceDeclaration() override;
0043 
0044     QString toString() const override;
0045 
0046     void setPrettyName(const KDevelop::IndexedString& name);
0047     KDevelop::IndexedString prettyName() const;
0048 
0049     enum {
0050         Identity = 87
0051     };
0052 
0053     KDevelop::Declaration* clonePrivate() const override;
0054 private:
0055     DUCHAIN_DECLARE_DATA(NamespaceDeclaration)
0056 };
0057 
0058 }
0059 
0060 #endif // PHP_NAMESPACEDECLARATION_H