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