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 #include "namespacealiasdeclaration.h"
0008 
0009 #include <language/duchain/duchainregister.h>
0010 #include <completioncodemodel.h>
0011 
0012 #include "helper.h"
0013 
0014 namespace Php {
0015 REGISTER_DUCHAIN_ITEM(NamespaceAliasDeclaration);
0016 
0017 NamespaceAliasDeclaration::NamespaceAliasDeclaration(const NamespaceAliasDeclaration& rhs)
0018         : KDevelop::NamespaceAliasDeclaration(*new NamespaceAliasDeclarationData(*rhs.d_func()))
0019 {
0020 }
0021 
0022 NamespaceAliasDeclaration::NamespaceAliasDeclaration(const KDevelop::RangeInRevision& range, KDevelop::DUContext* context)
0023         : KDevelop::NamespaceAliasDeclaration(*new NamespaceAliasDeclarationData)
0024 {
0025     setRange(range);
0026     d_func_dynamic()->setClassId(this);
0027     if (context) {
0028         setContext(context);
0029     }
0030 }
0031 
0032 NamespaceAliasDeclaration::NamespaceAliasDeclaration(NamespaceAliasDeclarationData& data)
0033         : KDevelop::NamespaceAliasDeclaration(data)
0034 {
0035 }
0036 
0037 NamespaceAliasDeclaration::~NamespaceAliasDeclaration()
0038 {
0039 }
0040 
0041 KDevelop::Declaration* NamespaceAliasDeclaration::clonePrivate() const
0042 {
0043     return new NamespaceAliasDeclaration(*this);
0044 }
0045 
0046 KDevelop::IndexedString NamespaceAliasDeclaration::prettyName() const
0047 {
0048     return d_func()->prettyName;
0049 }
0050 
0051 void NamespaceAliasDeclaration::setPrettyName( const KDevelop::IndexedString& name )
0052 {
0053     bool wasInSymbolTable = d_func()->m_inSymbolTable;
0054     setInSymbolTable(false);
0055     d_func_dynamic()->prettyName = name;
0056     setInSymbolTable(wasInSymbolTable);
0057 }
0058 
0059 QString NamespaceAliasDeclaration::toString() const
0060 {
0061   return QStringLiteral("Import %1 as %2").arg(d_func()->m_importIdentifier.identifier().toString(), prettyName().str());
0062 }
0063 
0064 }