1 /* 2 SPDX-FileCopyrightText: 2008 Milian Wolff <mail@milianw.de> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #ifndef PHP_NAMESPACEDECLARATION_H 8 #define PHP_NAMESPACEDECLARATION_H 9 10 #include <language/duchain/declaration.h> 11 12 #include <language/duchain/declarationdata.h> 13 #include <serialization/indexedstring.h> 14 15 #include "phpduchainexport.h" 16 namespace Php 17 { 18 19 class KDEVPHPDUCHAIN_EXPORT NamespaceDeclarationData : public KDevelop::DeclarationData 20 { 21 public: NamespaceDeclarationData()22 NamespaceDeclarationData() 23 : KDevelop::DeclarationData() {} 24 NamespaceDeclarationData(const NamespaceDeclarationData & rhs)25 NamespaceDeclarationData(const NamespaceDeclarationData& rhs) 26 : KDevelop::DeclarationData(rhs) 27 { 28 prettyName = rhs.prettyName; 29 } 30 ~NamespaceDeclarationData()31 ~NamespaceDeclarationData() {} 32 33 KDevelop::IndexedString prettyName; 34 }; 35 36 class KDEVPHPDUCHAIN_EXPORT NamespaceDeclaration : public KDevelop::Declaration 37 { 38 public: 39 NamespaceDeclaration(const NamespaceDeclaration &rhs); 40 NamespaceDeclaration(const KDevelop::RangeInRevision &range, KDevelop::DUContext *parentContext); 41 NamespaceDeclaration(NamespaceDeclarationData &data); 42 ~NamespaceDeclaration() override; 43 44 QString toString() const override; 45 46 void setPrettyName(const KDevelop::IndexedString& name); 47 KDevelop::IndexedString prettyName() const; 48 49 enum { 50 Identity = 87 51 }; 52 53 KDevelop::Declaration* clonePrivate() const override; 54 private: 55 DUCHAIN_DECLARE_DATA(NamespaceDeclaration) 56 }; 57 58 } 59 60 #endif // PHP_NAMESPACEDECLARATION_H 61