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