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_NAMESPACEALIASDECLARATION_H
0008 #define PHP_NAMESPACEALIASDECLARATION_H
0009 
0010 #include <language/duchain/namespacealiasdeclaration.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 NamespaceAliasDeclarationData : public KDevelop::NamespaceAliasDeclarationData
0021 {
0022 public:
0023     NamespaceAliasDeclarationData()
0024             : KDevelop::NamespaceAliasDeclarationData() {}
0025 
0026     NamespaceAliasDeclarationData(const NamespaceAliasDeclarationData& rhs)
0027             : KDevelop::NamespaceAliasDeclarationData(rhs)
0028     {
0029         prettyName = rhs.prettyName;
0030     }
0031 
0032     ~NamespaceAliasDeclarationData() {}
0033 
0034     KDevelop::IndexedString prettyName;
0035 };
0036 
0037 class KDEVPHPDUCHAIN_EXPORT NamespaceAliasDeclaration : public KDevelop::NamespaceAliasDeclaration
0038 {
0039 public:
0040     NamespaceAliasDeclaration(const NamespaceAliasDeclaration& rhs);
0041     NamespaceAliasDeclaration(const KDevelop::RangeInRevision& range, KDevelop::DUContext* context);
0042     NamespaceAliasDeclaration(NamespaceAliasDeclarationData& data);
0043     ~NamespaceAliasDeclaration() override;
0044 
0045     QString toString() const override;
0046 
0047     void setPrettyName(const KDevelop::IndexedString& name);
0048     KDevelop::IndexedString prettyName() const;
0049 
0050     enum {
0051         Identity = 88
0052     };
0053 
0054     KDevelop::Declaration* clonePrivate() const override;
0055 private:
0056     DUCHAIN_DECLARE_DATA(NamespaceAliasDeclaration)
0057 };
0058 
0059 }
0060 
0061 #endif // PHP_NAMESPACEALIASDECLARATION_H