annotate generator/parser/codemodel.cpp @ 1:e78566595089

initial import
author mandel
date Mon, 11 May 2009 16:01:50 +0000
parents
children 09a0f1d048f2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
e78566595089 initial import
mandel
parents:
diff changeset
1 /****************************************************************************
e78566595089 initial import
mandel
parents:
diff changeset
2 **
e78566595089 initial import
mandel
parents:
diff changeset
3 ** Copyright (C) 1992-2008 Nokia. All rights reserved.
e78566595089 initial import
mandel
parents:
diff changeset
4 ** Copyright (C) 2002-2005 Roberto Raggi <roberto@kdevelop.org>
e78566595089 initial import
mandel
parents:
diff changeset
5 **
e78566595089 initial import
mandel
parents:
diff changeset
6 ** This file is part of Qt Jambi.
e78566595089 initial import
mandel
parents:
diff changeset
7 **
e78566595089 initial import
mandel
parents:
diff changeset
8 ** * Commercial Usage
e78566595089 initial import
mandel
parents:
diff changeset
9 * Licensees holding valid Qt Commercial licenses may use this file in
e78566595089 initial import
mandel
parents:
diff changeset
10 * accordance with the Qt Commercial License Agreement provided with the
e78566595089 initial import
mandel
parents:
diff changeset
11 * Software or, alternatively, in accordance with the terms contained in
e78566595089 initial import
mandel
parents:
diff changeset
12 * a written agreement between you and Nokia.
e78566595089 initial import
mandel
parents:
diff changeset
13 *
e78566595089 initial import
mandel
parents:
diff changeset
14 *
e78566595089 initial import
mandel
parents:
diff changeset
15 * GNU General Public License Usage
e78566595089 initial import
mandel
parents:
diff changeset
16 * Alternatively, this file may be used under the terms of the GNU
e78566595089 initial import
mandel
parents:
diff changeset
17 * General Public License versions 2.0 or 3.0 as published by the Free
e78566595089 initial import
mandel
parents:
diff changeset
18 * Software Foundation and appearing in the file LICENSE.GPL included in
e78566595089 initial import
mandel
parents:
diff changeset
19 * the packaging of this file. Please review the following information
e78566595089 initial import
mandel
parents:
diff changeset
20 * to ensure GNU General Public Licensing requirements will be met:
e78566595089 initial import
mandel
parents:
diff changeset
21 * http://www.fsf.org/licensing/licenses/info/GPLv2.html and
e78566595089 initial import
mandel
parents:
diff changeset
22 * http://www.gnu.org/copyleft/gpl.html. In addition, as a special
e78566595089 initial import
mandel
parents:
diff changeset
23 * exception, Nokia gives you certain additional rights. These rights
e78566595089 initial import
mandel
parents:
diff changeset
24 * are described in the Nokia Qt GPL Exception version 1.2, included in
e78566595089 initial import
mandel
parents:
diff changeset
25 * the file GPL_EXCEPTION.txt in this package.
e78566595089 initial import
mandel
parents:
diff changeset
26 *
e78566595089 initial import
mandel
parents:
diff changeset
27 * Qt for Windows(R) Licensees
e78566595089 initial import
mandel
parents:
diff changeset
28 * As a special exception, Nokia, as the sole copyright holder for Qt
e78566595089 initial import
mandel
parents:
diff changeset
29 * Designer, grants users of the Qt/Eclipse Integration plug-in the
e78566595089 initial import
mandel
parents:
diff changeset
30 * right for the Qt/Eclipse Integration to link to functionality
e78566595089 initial import
mandel
parents:
diff changeset
31 * provided by Qt Designer and its related libraries.
e78566595089 initial import
mandel
parents:
diff changeset
32 *
e78566595089 initial import
mandel
parents:
diff changeset
33 *
e78566595089 initial import
mandel
parents:
diff changeset
34 * If you are unsure which license is appropriate for your use, please
e78566595089 initial import
mandel
parents:
diff changeset
35 * contact the sales department at qt-sales@nokia.com.
e78566595089 initial import
mandel
parents:
diff changeset
36
e78566595089 initial import
mandel
parents:
diff changeset
37 **
e78566595089 initial import
mandel
parents:
diff changeset
38 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
e78566595089 initial import
mandel
parents:
diff changeset
39 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
e78566595089 initial import
mandel
parents:
diff changeset
40 **
e78566595089 initial import
mandel
parents:
diff changeset
41 ****************************************************************************/
e78566595089 initial import
mandel
parents:
diff changeset
42
e78566595089 initial import
mandel
parents:
diff changeset
43
e78566595089 initial import
mandel
parents:
diff changeset
44 #include "codemodel.h"
e78566595089 initial import
mandel
parents:
diff changeset
45
e78566595089 initial import
mandel
parents:
diff changeset
46 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
47 CodeModel::CodeModel()
e78566595089 initial import
mandel
parents:
diff changeset
48 : _M_creation_id(0)
e78566595089 initial import
mandel
parents:
diff changeset
49 {
e78566595089 initial import
mandel
parents:
diff changeset
50 _M_globalNamespace = create<NamespaceModelItem>();
e78566595089 initial import
mandel
parents:
diff changeset
51 }
e78566595089 initial import
mandel
parents:
diff changeset
52
e78566595089 initial import
mandel
parents:
diff changeset
53 CodeModel::~CodeModel()
e78566595089 initial import
mandel
parents:
diff changeset
54 {
e78566595089 initial import
mandel
parents:
diff changeset
55 }
e78566595089 initial import
mandel
parents:
diff changeset
56
e78566595089 initial import
mandel
parents:
diff changeset
57 void CodeModel::wipeout()
e78566595089 initial import
mandel
parents:
diff changeset
58 {
e78566595089 initial import
mandel
parents:
diff changeset
59 _M_globalNamespace = create<NamespaceModelItem>();
e78566595089 initial import
mandel
parents:
diff changeset
60 _M_files.clear();
e78566595089 initial import
mandel
parents:
diff changeset
61 }
e78566595089 initial import
mandel
parents:
diff changeset
62
e78566595089 initial import
mandel
parents:
diff changeset
63 FileList CodeModel::files() const
e78566595089 initial import
mandel
parents:
diff changeset
64 {
e78566595089 initial import
mandel
parents:
diff changeset
65 return _M_files.values();
e78566595089 initial import
mandel
parents:
diff changeset
66 }
e78566595089 initial import
mandel
parents:
diff changeset
67
e78566595089 initial import
mandel
parents:
diff changeset
68 NamespaceModelItem CodeModel::globalNamespace() const
e78566595089 initial import
mandel
parents:
diff changeset
69 {
e78566595089 initial import
mandel
parents:
diff changeset
70 return _M_globalNamespace;
e78566595089 initial import
mandel
parents:
diff changeset
71 }
e78566595089 initial import
mandel
parents:
diff changeset
72
e78566595089 initial import
mandel
parents:
diff changeset
73 void CodeModel::addFile(FileModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
74 {
e78566595089 initial import
mandel
parents:
diff changeset
75 _M_creation_id = 0; // reset the creation id
e78566595089 initial import
mandel
parents:
diff changeset
76 _M_files.insert(item->name(), item);
e78566595089 initial import
mandel
parents:
diff changeset
77 }
e78566595089 initial import
mandel
parents:
diff changeset
78
e78566595089 initial import
mandel
parents:
diff changeset
79 void CodeModel::removeFile(FileModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
80 {
e78566595089 initial import
mandel
parents:
diff changeset
81 QHash<QString, FileModelItem>::Iterator it = _M_files.find(item->name());
e78566595089 initial import
mandel
parents:
diff changeset
82
e78566595089 initial import
mandel
parents:
diff changeset
83 if (it != _M_files.end() && it.value() == item)
e78566595089 initial import
mandel
parents:
diff changeset
84 _M_files.erase(it);
e78566595089 initial import
mandel
parents:
diff changeset
85 }
e78566595089 initial import
mandel
parents:
diff changeset
86
e78566595089 initial import
mandel
parents:
diff changeset
87 FileModelItem CodeModel::findFile(const QString &name) const
e78566595089 initial import
mandel
parents:
diff changeset
88 {
e78566595089 initial import
mandel
parents:
diff changeset
89 return _M_files.value(name);
e78566595089 initial import
mandel
parents:
diff changeset
90 }
e78566595089 initial import
mandel
parents:
diff changeset
91
e78566595089 initial import
mandel
parents:
diff changeset
92 QHash<QString, FileModelItem> CodeModel::fileMap() const
e78566595089 initial import
mandel
parents:
diff changeset
93 {
e78566595089 initial import
mandel
parents:
diff changeset
94 return _M_files;
e78566595089 initial import
mandel
parents:
diff changeset
95 }
e78566595089 initial import
mandel
parents:
diff changeset
96
e78566595089 initial import
mandel
parents:
diff changeset
97 CodeModelItem CodeModel::findItem(const QStringList &qualifiedName, CodeModelItem scope) const
e78566595089 initial import
mandel
parents:
diff changeset
98 {
e78566595089 initial import
mandel
parents:
diff changeset
99 for (int i=0; i<qualifiedName.size(); ++i) {
e78566595089 initial import
mandel
parents:
diff changeset
100 // ### Extend to look for members etc too.
e78566595089 initial import
mandel
parents:
diff changeset
101 const QString &name = qualifiedName.at(i);
e78566595089 initial import
mandel
parents:
diff changeset
102
e78566595089 initial import
mandel
parents:
diff changeset
103 if (NamespaceModelItem ns = model_dynamic_cast<NamespaceModelItem>(scope))
e78566595089 initial import
mandel
parents:
diff changeset
104 {
e78566595089 initial import
mandel
parents:
diff changeset
105 if (NamespaceModelItem tmp_ns = ns->findNamespace(name)) {
e78566595089 initial import
mandel
parents:
diff changeset
106 scope = tmp_ns;
e78566595089 initial import
mandel
parents:
diff changeset
107 continue;
e78566595089 initial import
mandel
parents:
diff changeset
108 }
e78566595089 initial import
mandel
parents:
diff changeset
109 }
e78566595089 initial import
mandel
parents:
diff changeset
110
e78566595089 initial import
mandel
parents:
diff changeset
111 if (ScopeModelItem ss = model_dynamic_cast<ScopeModelItem>(scope))
e78566595089 initial import
mandel
parents:
diff changeset
112 {
e78566595089 initial import
mandel
parents:
diff changeset
113 if (ClassModelItem cs = ss->findClass(name))
e78566595089 initial import
mandel
parents:
diff changeset
114 {
e78566595089 initial import
mandel
parents:
diff changeset
115 scope = cs;
e78566595089 initial import
mandel
parents:
diff changeset
116 }
e78566595089 initial import
mandel
parents:
diff changeset
117 else if (EnumModelItem es = ss->findEnum(name))
e78566595089 initial import
mandel
parents:
diff changeset
118 {
e78566595089 initial import
mandel
parents:
diff changeset
119 if (i == qualifiedName.size () - 1)
e78566595089 initial import
mandel
parents:
diff changeset
120 return es->toItem();
e78566595089 initial import
mandel
parents:
diff changeset
121 }
e78566595089 initial import
mandel
parents:
diff changeset
122 else if (TypeAliasModelItem tp = ss->findTypeAlias(name))
e78566595089 initial import
mandel
parents:
diff changeset
123 {
e78566595089 initial import
mandel
parents:
diff changeset
124 if (i == qualifiedName.size () - 1)
e78566595089 initial import
mandel
parents:
diff changeset
125 return tp->toItem ();
e78566595089 initial import
mandel
parents:
diff changeset
126 }
e78566595089 initial import
mandel
parents:
diff changeset
127 else
e78566595089 initial import
mandel
parents:
diff changeset
128 {
e78566595089 initial import
mandel
parents:
diff changeset
129 // If we don't find the name in the scope chain we
e78566595089 initial import
mandel
parents:
diff changeset
130 // need to return an empty item to indicate failure...
e78566595089 initial import
mandel
parents:
diff changeset
131 return CodeModelItem();
e78566595089 initial import
mandel
parents:
diff changeset
132 }
e78566595089 initial import
mandel
parents:
diff changeset
133 }
e78566595089 initial import
mandel
parents:
diff changeset
134 }
e78566595089 initial import
mandel
parents:
diff changeset
135
e78566595089 initial import
mandel
parents:
diff changeset
136 return scope;
e78566595089 initial import
mandel
parents:
diff changeset
137 }
e78566595089 initial import
mandel
parents:
diff changeset
138
e78566595089 initial import
mandel
parents:
diff changeset
139
e78566595089 initial import
mandel
parents:
diff changeset
140 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
141 TypeInfo TypeInfo::combine (const TypeInfo &__lhs, const TypeInfo &__rhs)
e78566595089 initial import
mandel
parents:
diff changeset
142 {
e78566595089 initial import
mandel
parents:
diff changeset
143 TypeInfo __result = __lhs;
e78566595089 initial import
mandel
parents:
diff changeset
144
e78566595089 initial import
mandel
parents:
diff changeset
145 __result.setConstant (__result.isConstant () || __rhs.isConstant ());
e78566595089 initial import
mandel
parents:
diff changeset
146 __result.setVolatile (__result.isVolatile () || __rhs.isVolatile ());
e78566595089 initial import
mandel
parents:
diff changeset
147 __result.setReference (__result.isReference () || __rhs.isReference ());
e78566595089 initial import
mandel
parents:
diff changeset
148 __result.setIndirections (__result.indirections () + __rhs.indirections ());
e78566595089 initial import
mandel
parents:
diff changeset
149 __result.setArrayElements (__result.arrayElements () + __rhs.arrayElements ());
e78566595089 initial import
mandel
parents:
diff changeset
150
e78566595089 initial import
mandel
parents:
diff changeset
151 return __result;
e78566595089 initial import
mandel
parents:
diff changeset
152 }
e78566595089 initial import
mandel
parents:
diff changeset
153
e78566595089 initial import
mandel
parents:
diff changeset
154 TypeInfo TypeInfo::resolveType (TypeInfo const &__type, CodeModelItem __scope)
e78566595089 initial import
mandel
parents:
diff changeset
155 {
e78566595089 initial import
mandel
parents:
diff changeset
156 CodeModel *__model = __scope->model ();
e78566595089 initial import
mandel
parents:
diff changeset
157 Q_ASSERT (__model != 0);
e78566595089 initial import
mandel
parents:
diff changeset
158
e78566595089 initial import
mandel
parents:
diff changeset
159 CodeModelItem __item = __model->findItem (__type.qualifiedName (), __scope);
e78566595089 initial import
mandel
parents:
diff changeset
160
e78566595089 initial import
mandel
parents:
diff changeset
161 // Copy the type and replace with the proper qualified name. This
e78566595089 initial import
mandel
parents:
diff changeset
162 // only makes sence to do if we're actually getting a resolved
e78566595089 initial import
mandel
parents:
diff changeset
163 // type with a namespace. We only get this if the returned type
e78566595089 initial import
mandel
parents:
diff changeset
164 // has more than 2 entries in the qualified name... This test
e78566595089 initial import
mandel
parents:
diff changeset
165 // could be improved by returning if the type was found or not.
e78566595089 initial import
mandel
parents:
diff changeset
166 TypeInfo otherType(__type);
e78566595089 initial import
mandel
parents:
diff changeset
167 if (__item && __item->qualifiedName().size() > 1) {
e78566595089 initial import
mandel
parents:
diff changeset
168 otherType.setQualifiedName(__item->qualifiedName());
e78566595089 initial import
mandel
parents:
diff changeset
169 }
e78566595089 initial import
mandel
parents:
diff changeset
170
e78566595089 initial import
mandel
parents:
diff changeset
171 if (TypeAliasModelItem __alias = model_dynamic_cast<TypeAliasModelItem> (__item))
e78566595089 initial import
mandel
parents:
diff changeset
172 return resolveType (TypeInfo::combine (__alias->type (), otherType), __scope);
e78566595089 initial import
mandel
parents:
diff changeset
173
e78566595089 initial import
mandel
parents:
diff changeset
174 return otherType;
e78566595089 initial import
mandel
parents:
diff changeset
175 }
e78566595089 initial import
mandel
parents:
diff changeset
176
e78566595089 initial import
mandel
parents:
diff changeset
177 QString TypeInfo::toString() const
e78566595089 initial import
mandel
parents:
diff changeset
178 {
e78566595089 initial import
mandel
parents:
diff changeset
179 QString tmp;
e78566595089 initial import
mandel
parents:
diff changeset
180
e78566595089 initial import
mandel
parents:
diff changeset
181 tmp += m_qualifiedName.join("::");
e78566595089 initial import
mandel
parents:
diff changeset
182 if (isConstant())
e78566595089 initial import
mandel
parents:
diff changeset
183 tmp += QLatin1String(" const");
e78566595089 initial import
mandel
parents:
diff changeset
184
e78566595089 initial import
mandel
parents:
diff changeset
185 if (isVolatile())
e78566595089 initial import
mandel
parents:
diff changeset
186 tmp += QLatin1String(" volatile");
e78566595089 initial import
mandel
parents:
diff changeset
187
e78566595089 initial import
mandel
parents:
diff changeset
188 if (indirections())
e78566595089 initial import
mandel
parents:
diff changeset
189 tmp += QString(indirections(), QLatin1Char('*'));
e78566595089 initial import
mandel
parents:
diff changeset
190
e78566595089 initial import
mandel
parents:
diff changeset
191 if (isReference())
e78566595089 initial import
mandel
parents:
diff changeset
192 tmp += QLatin1Char('&');
e78566595089 initial import
mandel
parents:
diff changeset
193
e78566595089 initial import
mandel
parents:
diff changeset
194 if (isFunctionPointer())
e78566595089 initial import
mandel
parents:
diff changeset
195 {
e78566595089 initial import
mandel
parents:
diff changeset
196 tmp += QLatin1String(" (*)(");
e78566595089 initial import
mandel
parents:
diff changeset
197 for (int i=0; i<m_arguments.count(); ++i)
e78566595089 initial import
mandel
parents:
diff changeset
198 {
e78566595089 initial import
mandel
parents:
diff changeset
199 if (i != 0)
e78566595089 initial import
mandel
parents:
diff changeset
200 tmp += QLatin1String(", ");
e78566595089 initial import
mandel
parents:
diff changeset
201
e78566595089 initial import
mandel
parents:
diff changeset
202 tmp += m_arguments.at(i).toString();
e78566595089 initial import
mandel
parents:
diff changeset
203 }
e78566595089 initial import
mandel
parents:
diff changeset
204 tmp += QLatin1String(")");
e78566595089 initial import
mandel
parents:
diff changeset
205 }
e78566595089 initial import
mandel
parents:
diff changeset
206
e78566595089 initial import
mandel
parents:
diff changeset
207 foreach (QString elt, arrayElements ())
e78566595089 initial import
mandel
parents:
diff changeset
208 {
e78566595089 initial import
mandel
parents:
diff changeset
209 tmp += QLatin1String ("[");
e78566595089 initial import
mandel
parents:
diff changeset
210 tmp += elt;
e78566595089 initial import
mandel
parents:
diff changeset
211 tmp += QLatin1String ("]");
e78566595089 initial import
mandel
parents:
diff changeset
212 }
e78566595089 initial import
mandel
parents:
diff changeset
213
e78566595089 initial import
mandel
parents:
diff changeset
214 return tmp;
e78566595089 initial import
mandel
parents:
diff changeset
215 }
e78566595089 initial import
mandel
parents:
diff changeset
216
e78566595089 initial import
mandel
parents:
diff changeset
217 bool TypeInfo::operator==(const TypeInfo &other)
e78566595089 initial import
mandel
parents:
diff changeset
218 {
e78566595089 initial import
mandel
parents:
diff changeset
219 if (arrayElements().count() != other.arguments().count())
e78566595089 initial import
mandel
parents:
diff changeset
220 return false;
e78566595089 initial import
mandel
parents:
diff changeset
221
e78566595089 initial import
mandel
parents:
diff changeset
222 #if defined (RXX_CHECK_ARRAY_ELEMENTS) // ### it'll break
e78566595089 initial import
mandel
parents:
diff changeset
223 for (int i=0; i<arrayElements().count(); ++i)
e78566595089 initial import
mandel
parents:
diff changeset
224 {
e78566595089 initial import
mandel
parents:
diff changeset
225 QString elt1 = arrayElements ().at (i).trimmed ();
e78566595089 initial import
mandel
parents:
diff changeset
226 QString elt2 = other.arrayElements ().at (i).trimmed ();
e78566595089 initial import
mandel
parents:
diff changeset
227
e78566595089 initial import
mandel
parents:
diff changeset
228 if (elt1 != elt2)
e78566595089 initial import
mandel
parents:
diff changeset
229 return false;
e78566595089 initial import
mandel
parents:
diff changeset
230 }
e78566595089 initial import
mandel
parents:
diff changeset
231 #endif
e78566595089 initial import
mandel
parents:
diff changeset
232
e78566595089 initial import
mandel
parents:
diff changeset
233 return flags == other.flags
e78566595089 initial import
mandel
parents:
diff changeset
234 && m_qualifiedName == other.m_qualifiedName
e78566595089 initial import
mandel
parents:
diff changeset
235 && (!m_functionPointer || m_arguments == other.m_arguments);
e78566595089 initial import
mandel
parents:
diff changeset
236 }
e78566595089 initial import
mandel
parents:
diff changeset
237
e78566595089 initial import
mandel
parents:
diff changeset
238 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
239 _CodeModelItem::_CodeModelItem(CodeModel *model, int kind)
e78566595089 initial import
mandel
parents:
diff changeset
240 : _M_model(model),
e78566595089 initial import
mandel
parents:
diff changeset
241 _M_kind(kind),
e78566595089 initial import
mandel
parents:
diff changeset
242 _M_startLine(0),
e78566595089 initial import
mandel
parents:
diff changeset
243 _M_startColumn(0),
e78566595089 initial import
mandel
parents:
diff changeset
244 _M_endLine(0),
e78566595089 initial import
mandel
parents:
diff changeset
245 _M_endColumn(0),
e78566595089 initial import
mandel
parents:
diff changeset
246 _M_creation_id(0)
e78566595089 initial import
mandel
parents:
diff changeset
247 {
e78566595089 initial import
mandel
parents:
diff changeset
248 }
e78566595089 initial import
mandel
parents:
diff changeset
249
e78566595089 initial import
mandel
parents:
diff changeset
250 _CodeModelItem::~_CodeModelItem()
e78566595089 initial import
mandel
parents:
diff changeset
251 {
e78566595089 initial import
mandel
parents:
diff changeset
252 }
e78566595089 initial import
mandel
parents:
diff changeset
253
e78566595089 initial import
mandel
parents:
diff changeset
254 CodeModelItem _CodeModelItem::toItem() const
e78566595089 initial import
mandel
parents:
diff changeset
255 {
e78566595089 initial import
mandel
parents:
diff changeset
256 return CodeModelItem(const_cast<_CodeModelItem*>(this));
e78566595089 initial import
mandel
parents:
diff changeset
257 }
e78566595089 initial import
mandel
parents:
diff changeset
258
e78566595089 initial import
mandel
parents:
diff changeset
259 int _CodeModelItem::kind() const
e78566595089 initial import
mandel
parents:
diff changeset
260 {
e78566595089 initial import
mandel
parents:
diff changeset
261 return _M_kind;
e78566595089 initial import
mandel
parents:
diff changeset
262 }
e78566595089 initial import
mandel
parents:
diff changeset
263
e78566595089 initial import
mandel
parents:
diff changeset
264 void _CodeModelItem::setKind(int kind)
e78566595089 initial import
mandel
parents:
diff changeset
265 {
e78566595089 initial import
mandel
parents:
diff changeset
266 _M_kind = kind;
e78566595089 initial import
mandel
parents:
diff changeset
267 }
e78566595089 initial import
mandel
parents:
diff changeset
268
e78566595089 initial import
mandel
parents:
diff changeset
269 QStringList _CodeModelItem::qualifiedName() const
e78566595089 initial import
mandel
parents:
diff changeset
270 {
e78566595089 initial import
mandel
parents:
diff changeset
271 QStringList q = scope();
e78566595089 initial import
mandel
parents:
diff changeset
272
e78566595089 initial import
mandel
parents:
diff changeset
273 if (!name().isEmpty())
e78566595089 initial import
mandel
parents:
diff changeset
274 q += name();
e78566595089 initial import
mandel
parents:
diff changeset
275
e78566595089 initial import
mandel
parents:
diff changeset
276 return q;
e78566595089 initial import
mandel
parents:
diff changeset
277 }
e78566595089 initial import
mandel
parents:
diff changeset
278
e78566595089 initial import
mandel
parents:
diff changeset
279 QString _CodeModelItem::name() const
e78566595089 initial import
mandel
parents:
diff changeset
280 {
e78566595089 initial import
mandel
parents:
diff changeset
281 return _M_name;
e78566595089 initial import
mandel
parents:
diff changeset
282 }
e78566595089 initial import
mandel
parents:
diff changeset
283
e78566595089 initial import
mandel
parents:
diff changeset
284 void _CodeModelItem::setName(const QString &name)
e78566595089 initial import
mandel
parents:
diff changeset
285 {
e78566595089 initial import
mandel
parents:
diff changeset
286 _M_name = name;
e78566595089 initial import
mandel
parents:
diff changeset
287 }
e78566595089 initial import
mandel
parents:
diff changeset
288
e78566595089 initial import
mandel
parents:
diff changeset
289 QStringList _CodeModelItem::scope() const
e78566595089 initial import
mandel
parents:
diff changeset
290 {
e78566595089 initial import
mandel
parents:
diff changeset
291 return _M_scope;
e78566595089 initial import
mandel
parents:
diff changeset
292 }
e78566595089 initial import
mandel
parents:
diff changeset
293
e78566595089 initial import
mandel
parents:
diff changeset
294 void _CodeModelItem::setScope(const QStringList &scope)
e78566595089 initial import
mandel
parents:
diff changeset
295 {
e78566595089 initial import
mandel
parents:
diff changeset
296 _M_scope = scope;
e78566595089 initial import
mandel
parents:
diff changeset
297 }
e78566595089 initial import
mandel
parents:
diff changeset
298
e78566595089 initial import
mandel
parents:
diff changeset
299 QString _CodeModelItem::fileName() const
e78566595089 initial import
mandel
parents:
diff changeset
300 {
e78566595089 initial import
mandel
parents:
diff changeset
301 return _M_fileName;
e78566595089 initial import
mandel
parents:
diff changeset
302 }
e78566595089 initial import
mandel
parents:
diff changeset
303
e78566595089 initial import
mandel
parents:
diff changeset
304 void _CodeModelItem::setFileName(const QString &fileName)
e78566595089 initial import
mandel
parents:
diff changeset
305 {
e78566595089 initial import
mandel
parents:
diff changeset
306 _M_fileName = fileName;
e78566595089 initial import
mandel
parents:
diff changeset
307 }
e78566595089 initial import
mandel
parents:
diff changeset
308
e78566595089 initial import
mandel
parents:
diff changeset
309 FileModelItem _CodeModelItem::file() const
e78566595089 initial import
mandel
parents:
diff changeset
310 {
e78566595089 initial import
mandel
parents:
diff changeset
311 return model()->findFile(fileName());
e78566595089 initial import
mandel
parents:
diff changeset
312 }
e78566595089 initial import
mandel
parents:
diff changeset
313
e78566595089 initial import
mandel
parents:
diff changeset
314 void _CodeModelItem::getStartPosition(int *line, int *column)
e78566595089 initial import
mandel
parents:
diff changeset
315 {
e78566595089 initial import
mandel
parents:
diff changeset
316 *line = _M_startLine;
e78566595089 initial import
mandel
parents:
diff changeset
317 *column = _M_startColumn;
e78566595089 initial import
mandel
parents:
diff changeset
318 }
e78566595089 initial import
mandel
parents:
diff changeset
319
e78566595089 initial import
mandel
parents:
diff changeset
320 void _CodeModelItem::setStartPosition(int line, int column)
e78566595089 initial import
mandel
parents:
diff changeset
321 {
e78566595089 initial import
mandel
parents:
diff changeset
322 _M_startLine = line;
e78566595089 initial import
mandel
parents:
diff changeset
323 _M_startColumn = column;
e78566595089 initial import
mandel
parents:
diff changeset
324 }
e78566595089 initial import
mandel
parents:
diff changeset
325
e78566595089 initial import
mandel
parents:
diff changeset
326 void _CodeModelItem::getEndPosition(int *line, int *column)
e78566595089 initial import
mandel
parents:
diff changeset
327 {
e78566595089 initial import
mandel
parents:
diff changeset
328 *line = _M_endLine;
e78566595089 initial import
mandel
parents:
diff changeset
329 *column = _M_endColumn;
e78566595089 initial import
mandel
parents:
diff changeset
330 }
e78566595089 initial import
mandel
parents:
diff changeset
331
e78566595089 initial import
mandel
parents:
diff changeset
332 void _CodeModelItem::setEndPosition(int line, int column)
e78566595089 initial import
mandel
parents:
diff changeset
333 {
e78566595089 initial import
mandel
parents:
diff changeset
334 _M_endLine = line;
e78566595089 initial import
mandel
parents:
diff changeset
335 _M_endColumn = column;
e78566595089 initial import
mandel
parents:
diff changeset
336 }
e78566595089 initial import
mandel
parents:
diff changeset
337
e78566595089 initial import
mandel
parents:
diff changeset
338 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
339 QStringList _ClassModelItem::baseClasses() const
e78566595089 initial import
mandel
parents:
diff changeset
340 {
e78566595089 initial import
mandel
parents:
diff changeset
341 return _M_baseClasses;
e78566595089 initial import
mandel
parents:
diff changeset
342 }
e78566595089 initial import
mandel
parents:
diff changeset
343
e78566595089 initial import
mandel
parents:
diff changeset
344 void _ClassModelItem::setBaseClasses(const QStringList &baseClasses)
e78566595089 initial import
mandel
parents:
diff changeset
345 {
e78566595089 initial import
mandel
parents:
diff changeset
346 _M_baseClasses = baseClasses;
e78566595089 initial import
mandel
parents:
diff changeset
347 }
e78566595089 initial import
mandel
parents:
diff changeset
348
e78566595089 initial import
mandel
parents:
diff changeset
349 TemplateParameterList _ClassModelItem::templateParameters() const
e78566595089 initial import
mandel
parents:
diff changeset
350 {
e78566595089 initial import
mandel
parents:
diff changeset
351 return _M_templateParameters;
e78566595089 initial import
mandel
parents:
diff changeset
352 }
e78566595089 initial import
mandel
parents:
diff changeset
353
e78566595089 initial import
mandel
parents:
diff changeset
354 void _ClassModelItem::setTemplateParameters(const TemplateParameterList &templateParameters)
e78566595089 initial import
mandel
parents:
diff changeset
355 {
e78566595089 initial import
mandel
parents:
diff changeset
356 _M_templateParameters = templateParameters;
e78566595089 initial import
mandel
parents:
diff changeset
357 }
e78566595089 initial import
mandel
parents:
diff changeset
358
e78566595089 initial import
mandel
parents:
diff changeset
359 void _ClassModelItem::addBaseClass(const QString &baseClass)
e78566595089 initial import
mandel
parents:
diff changeset
360 {
e78566595089 initial import
mandel
parents:
diff changeset
361 _M_baseClasses.append(baseClass);
e78566595089 initial import
mandel
parents:
diff changeset
362 }
e78566595089 initial import
mandel
parents:
diff changeset
363
e78566595089 initial import
mandel
parents:
diff changeset
364 void _ClassModelItem::removeBaseClass(const QString &baseClass)
e78566595089 initial import
mandel
parents:
diff changeset
365 {
e78566595089 initial import
mandel
parents:
diff changeset
366 _M_baseClasses.removeAt(_M_baseClasses.indexOf(baseClass));
e78566595089 initial import
mandel
parents:
diff changeset
367 }
e78566595089 initial import
mandel
parents:
diff changeset
368
e78566595089 initial import
mandel
parents:
diff changeset
369 bool _ClassModelItem::extendsClass(const QString &name) const
e78566595089 initial import
mandel
parents:
diff changeset
370 {
e78566595089 initial import
mandel
parents:
diff changeset
371 return _M_baseClasses.contains(name);
e78566595089 initial import
mandel
parents:
diff changeset
372 }
e78566595089 initial import
mandel
parents:
diff changeset
373
e78566595089 initial import
mandel
parents:
diff changeset
374 void _ClassModelItem::setClassType(CodeModel::ClassType type)
e78566595089 initial import
mandel
parents:
diff changeset
375 {
e78566595089 initial import
mandel
parents:
diff changeset
376 _M_classType = type;
e78566595089 initial import
mandel
parents:
diff changeset
377 }
e78566595089 initial import
mandel
parents:
diff changeset
378
e78566595089 initial import
mandel
parents:
diff changeset
379 CodeModel::ClassType _ClassModelItem::classType() const
e78566595089 initial import
mandel
parents:
diff changeset
380 {
e78566595089 initial import
mandel
parents:
diff changeset
381 return _M_classType;
e78566595089 initial import
mandel
parents:
diff changeset
382 }
e78566595089 initial import
mandel
parents:
diff changeset
383
e78566595089 initial import
mandel
parents:
diff changeset
384 void _ClassModelItem::addPropertyDeclaration(const QString &propertyDeclaration)
e78566595089 initial import
mandel
parents:
diff changeset
385 {
e78566595089 initial import
mandel
parents:
diff changeset
386 _M_propertyDeclarations << propertyDeclaration;
e78566595089 initial import
mandel
parents:
diff changeset
387 }
e78566595089 initial import
mandel
parents:
diff changeset
388
e78566595089 initial import
mandel
parents:
diff changeset
389
e78566595089 initial import
mandel
parents:
diff changeset
390 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
391 FunctionModelItem _ScopeModelItem::declaredFunction(FunctionModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
392 {
e78566595089 initial import
mandel
parents:
diff changeset
393 FunctionList function_list = findFunctions(item->name());
e78566595089 initial import
mandel
parents:
diff changeset
394
e78566595089 initial import
mandel
parents:
diff changeset
395 foreach (FunctionModelItem fun, function_list)
e78566595089 initial import
mandel
parents:
diff changeset
396 {
e78566595089 initial import
mandel
parents:
diff changeset
397 if (fun->isSimilar(item))
e78566595089 initial import
mandel
parents:
diff changeset
398 return fun;
e78566595089 initial import
mandel
parents:
diff changeset
399 }
e78566595089 initial import
mandel
parents:
diff changeset
400
e78566595089 initial import
mandel
parents:
diff changeset
401 return FunctionModelItem();
e78566595089 initial import
mandel
parents:
diff changeset
402 }
e78566595089 initial import
mandel
parents:
diff changeset
403
e78566595089 initial import
mandel
parents:
diff changeset
404 ClassList _ScopeModelItem::classes() const
e78566595089 initial import
mandel
parents:
diff changeset
405 {
e78566595089 initial import
mandel
parents:
diff changeset
406 return _M_classes.values();
e78566595089 initial import
mandel
parents:
diff changeset
407 }
e78566595089 initial import
mandel
parents:
diff changeset
408
e78566595089 initial import
mandel
parents:
diff changeset
409 TypeAliasList _ScopeModelItem::typeAliases() const
e78566595089 initial import
mandel
parents:
diff changeset
410 {
e78566595089 initial import
mandel
parents:
diff changeset
411 return _M_typeAliases.values();
e78566595089 initial import
mandel
parents:
diff changeset
412 }
e78566595089 initial import
mandel
parents:
diff changeset
413
e78566595089 initial import
mandel
parents:
diff changeset
414 VariableList _ScopeModelItem::variables() const
e78566595089 initial import
mandel
parents:
diff changeset
415 {
e78566595089 initial import
mandel
parents:
diff changeset
416 return _M_variables.values();
e78566595089 initial import
mandel
parents:
diff changeset
417 }
e78566595089 initial import
mandel
parents:
diff changeset
418
e78566595089 initial import
mandel
parents:
diff changeset
419 FunctionList _ScopeModelItem::functions() const
e78566595089 initial import
mandel
parents:
diff changeset
420 {
e78566595089 initial import
mandel
parents:
diff changeset
421 return _M_functions.values();
e78566595089 initial import
mandel
parents:
diff changeset
422 }
e78566595089 initial import
mandel
parents:
diff changeset
423
e78566595089 initial import
mandel
parents:
diff changeset
424 void _ScopeModelItem::addEnumsDeclaration(const QString &enumsDeclaration)
e78566595089 initial import
mandel
parents:
diff changeset
425 {
e78566595089 initial import
mandel
parents:
diff changeset
426 _M_enumsDeclarations << enumsDeclaration;
e78566595089 initial import
mandel
parents:
diff changeset
427 }
e78566595089 initial import
mandel
parents:
diff changeset
428
e78566595089 initial import
mandel
parents:
diff changeset
429 FunctionDefinitionList _ScopeModelItem::functionDefinitions() const
e78566595089 initial import
mandel
parents:
diff changeset
430 {
e78566595089 initial import
mandel
parents:
diff changeset
431 return _M_functionDefinitions.values();
e78566595089 initial import
mandel
parents:
diff changeset
432 }
e78566595089 initial import
mandel
parents:
diff changeset
433
e78566595089 initial import
mandel
parents:
diff changeset
434 EnumList _ScopeModelItem::enums() const
e78566595089 initial import
mandel
parents:
diff changeset
435 {
e78566595089 initial import
mandel
parents:
diff changeset
436 return _M_enums.values();
e78566595089 initial import
mandel
parents:
diff changeset
437 }
e78566595089 initial import
mandel
parents:
diff changeset
438
e78566595089 initial import
mandel
parents:
diff changeset
439 void _ScopeModelItem::addClass(ClassModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
440 {
e78566595089 initial import
mandel
parents:
diff changeset
441 QString name = item->name();
e78566595089 initial import
mandel
parents:
diff changeset
442 int idx = name.indexOf("<");
e78566595089 initial import
mandel
parents:
diff changeset
443 if (idx > 0)
e78566595089 initial import
mandel
parents:
diff changeset
444 _M_classes.insert(name.left(idx), item);
e78566595089 initial import
mandel
parents:
diff changeset
445 _M_classes.insert(name, item);
e78566595089 initial import
mandel
parents:
diff changeset
446 }
e78566595089 initial import
mandel
parents:
diff changeset
447
e78566595089 initial import
mandel
parents:
diff changeset
448 void _ScopeModelItem::addFunction(FunctionModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
449 {
e78566595089 initial import
mandel
parents:
diff changeset
450 _M_functions.insert(item->name(), item);
e78566595089 initial import
mandel
parents:
diff changeset
451 }
e78566595089 initial import
mandel
parents:
diff changeset
452
e78566595089 initial import
mandel
parents:
diff changeset
453 void _ScopeModelItem::addFunctionDefinition(FunctionDefinitionModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
454 {
e78566595089 initial import
mandel
parents:
diff changeset
455 _M_functionDefinitions.insert(item->name(), item);
e78566595089 initial import
mandel
parents:
diff changeset
456 }
e78566595089 initial import
mandel
parents:
diff changeset
457
e78566595089 initial import
mandel
parents:
diff changeset
458 void _ScopeModelItem::addVariable(VariableModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
459 {
e78566595089 initial import
mandel
parents:
diff changeset
460 _M_variables.insert(item->name(), item);
e78566595089 initial import
mandel
parents:
diff changeset
461 }
e78566595089 initial import
mandel
parents:
diff changeset
462
e78566595089 initial import
mandel
parents:
diff changeset
463 void _ScopeModelItem::addTypeAlias(TypeAliasModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
464 {
e78566595089 initial import
mandel
parents:
diff changeset
465 _M_typeAliases.insert(item->name(), item);
e78566595089 initial import
mandel
parents:
diff changeset
466 }
e78566595089 initial import
mandel
parents:
diff changeset
467
e78566595089 initial import
mandel
parents:
diff changeset
468 void _ScopeModelItem::addEnum(EnumModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
469 {
e78566595089 initial import
mandel
parents:
diff changeset
470 _M_enums.insert(item->name(), item);
e78566595089 initial import
mandel
parents:
diff changeset
471 }
e78566595089 initial import
mandel
parents:
diff changeset
472
e78566595089 initial import
mandel
parents:
diff changeset
473 void _ScopeModelItem::removeClass(ClassModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
474 {
e78566595089 initial import
mandel
parents:
diff changeset
475 QHash<QString, ClassModelItem>::Iterator it = _M_classes.find(item->name());
e78566595089 initial import
mandel
parents:
diff changeset
476
e78566595089 initial import
mandel
parents:
diff changeset
477 if (it != _M_classes.end() && it.value() == item)
e78566595089 initial import
mandel
parents:
diff changeset
478 _M_classes.erase(it);
e78566595089 initial import
mandel
parents:
diff changeset
479 }
e78566595089 initial import
mandel
parents:
diff changeset
480
e78566595089 initial import
mandel
parents:
diff changeset
481 void _ScopeModelItem::removeFunction(FunctionModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
482 {
e78566595089 initial import
mandel
parents:
diff changeset
483 QMultiHash<QString, FunctionModelItem>::Iterator it = _M_functions.find(item->name());
e78566595089 initial import
mandel
parents:
diff changeset
484
e78566595089 initial import
mandel
parents:
diff changeset
485 while (it != _M_functions.end() && it.key() == item->name()
e78566595089 initial import
mandel
parents:
diff changeset
486 && it.value() != item)
e78566595089 initial import
mandel
parents:
diff changeset
487 {
e78566595089 initial import
mandel
parents:
diff changeset
488 ++it;
e78566595089 initial import
mandel
parents:
diff changeset
489 }
e78566595089 initial import
mandel
parents:
diff changeset
490
e78566595089 initial import
mandel
parents:
diff changeset
491 if (it != _M_functions.end() && it.value() == item)
e78566595089 initial import
mandel
parents:
diff changeset
492 {
e78566595089 initial import
mandel
parents:
diff changeset
493 _M_functions.erase(it);
e78566595089 initial import
mandel
parents:
diff changeset
494 }
e78566595089 initial import
mandel
parents:
diff changeset
495 }
e78566595089 initial import
mandel
parents:
diff changeset
496
e78566595089 initial import
mandel
parents:
diff changeset
497 void _ScopeModelItem::removeFunctionDefinition(FunctionDefinitionModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
498 {
e78566595089 initial import
mandel
parents:
diff changeset
499 QMultiHash<QString, FunctionDefinitionModelItem>::Iterator it = _M_functionDefinitions.find(item->name());
e78566595089 initial import
mandel
parents:
diff changeset
500
e78566595089 initial import
mandel
parents:
diff changeset
501 while (it != _M_functionDefinitions.end() && it.key() == item->name()
e78566595089 initial import
mandel
parents:
diff changeset
502 && it.value() != item)
e78566595089 initial import
mandel
parents:
diff changeset
503 {
e78566595089 initial import
mandel
parents:
diff changeset
504 ++it;
e78566595089 initial import
mandel
parents:
diff changeset
505 }
e78566595089 initial import
mandel
parents:
diff changeset
506
e78566595089 initial import
mandel
parents:
diff changeset
507 if (it != _M_functionDefinitions.end() && it.value() == item)
e78566595089 initial import
mandel
parents:
diff changeset
508 {
e78566595089 initial import
mandel
parents:
diff changeset
509 _M_functionDefinitions.erase(it);
e78566595089 initial import
mandel
parents:
diff changeset
510 }
e78566595089 initial import
mandel
parents:
diff changeset
511 }
e78566595089 initial import
mandel
parents:
diff changeset
512
e78566595089 initial import
mandel
parents:
diff changeset
513 void _ScopeModelItem::removeVariable(VariableModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
514 {
e78566595089 initial import
mandel
parents:
diff changeset
515 QHash<QString, VariableModelItem>::Iterator it = _M_variables.find(item->name());
e78566595089 initial import
mandel
parents:
diff changeset
516
e78566595089 initial import
mandel
parents:
diff changeset
517 if (it != _M_variables.end() && it.value() == item)
e78566595089 initial import
mandel
parents:
diff changeset
518 _M_variables.erase(it);
e78566595089 initial import
mandel
parents:
diff changeset
519 }
e78566595089 initial import
mandel
parents:
diff changeset
520
e78566595089 initial import
mandel
parents:
diff changeset
521 void _ScopeModelItem::removeTypeAlias(TypeAliasModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
522 {
e78566595089 initial import
mandel
parents:
diff changeset
523 QHash<QString, TypeAliasModelItem>::Iterator it = _M_typeAliases.find(item->name());
e78566595089 initial import
mandel
parents:
diff changeset
524
e78566595089 initial import
mandel
parents:
diff changeset
525 if (it != _M_typeAliases.end() && it.value() == item)
e78566595089 initial import
mandel
parents:
diff changeset
526 _M_typeAliases.erase(it);
e78566595089 initial import
mandel
parents:
diff changeset
527 }
e78566595089 initial import
mandel
parents:
diff changeset
528
e78566595089 initial import
mandel
parents:
diff changeset
529 void _ScopeModelItem::removeEnum(EnumModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
530 {
e78566595089 initial import
mandel
parents:
diff changeset
531 QHash<QString, EnumModelItem>::Iterator it = _M_enums.find(item->name());
e78566595089 initial import
mandel
parents:
diff changeset
532
e78566595089 initial import
mandel
parents:
diff changeset
533 if (it != _M_enums.end() && it.value() == item)
e78566595089 initial import
mandel
parents:
diff changeset
534 _M_enums.erase(it);
e78566595089 initial import
mandel
parents:
diff changeset
535 }
e78566595089 initial import
mandel
parents:
diff changeset
536
e78566595089 initial import
mandel
parents:
diff changeset
537 ClassModelItem _ScopeModelItem::findClass(const QString &name) const
e78566595089 initial import
mandel
parents:
diff changeset
538 {
e78566595089 initial import
mandel
parents:
diff changeset
539 return _M_classes.value(name);
e78566595089 initial import
mandel
parents:
diff changeset
540 }
e78566595089 initial import
mandel
parents:
diff changeset
541
e78566595089 initial import
mandel
parents:
diff changeset
542 VariableModelItem _ScopeModelItem::findVariable(const QString &name) const
e78566595089 initial import
mandel
parents:
diff changeset
543 {
e78566595089 initial import
mandel
parents:
diff changeset
544 return _M_variables.value(name);
e78566595089 initial import
mandel
parents:
diff changeset
545 }
e78566595089 initial import
mandel
parents:
diff changeset
546
e78566595089 initial import
mandel
parents:
diff changeset
547 TypeAliasModelItem _ScopeModelItem::findTypeAlias(const QString &name) const
e78566595089 initial import
mandel
parents:
diff changeset
548 {
e78566595089 initial import
mandel
parents:
diff changeset
549 return _M_typeAliases.value(name);
e78566595089 initial import
mandel
parents:
diff changeset
550 }
e78566595089 initial import
mandel
parents:
diff changeset
551
e78566595089 initial import
mandel
parents:
diff changeset
552 EnumModelItem _ScopeModelItem::findEnum(const QString &name) const
e78566595089 initial import
mandel
parents:
diff changeset
553 {
e78566595089 initial import
mandel
parents:
diff changeset
554 return _M_enums.value(name);
e78566595089 initial import
mandel
parents:
diff changeset
555 }
e78566595089 initial import
mandel
parents:
diff changeset
556
e78566595089 initial import
mandel
parents:
diff changeset
557 FunctionList _ScopeModelItem::findFunctions(const QString &name) const
e78566595089 initial import
mandel
parents:
diff changeset
558 {
e78566595089 initial import
mandel
parents:
diff changeset
559 return _M_functions.values(name);
e78566595089 initial import
mandel
parents:
diff changeset
560 }
e78566595089 initial import
mandel
parents:
diff changeset
561
e78566595089 initial import
mandel
parents:
diff changeset
562 FunctionDefinitionList _ScopeModelItem::findFunctionDefinitions(const QString &name) const
e78566595089 initial import
mandel
parents:
diff changeset
563 {
e78566595089 initial import
mandel
parents:
diff changeset
564 return _M_functionDefinitions.values(name);
e78566595089 initial import
mandel
parents:
diff changeset
565 }
e78566595089 initial import
mandel
parents:
diff changeset
566
e78566595089 initial import
mandel
parents:
diff changeset
567 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
568 NamespaceList _NamespaceModelItem::namespaces() const
e78566595089 initial import
mandel
parents:
diff changeset
569 {
e78566595089 initial import
mandel
parents:
diff changeset
570 return _M_namespaces.values();
e78566595089 initial import
mandel
parents:
diff changeset
571 }
e78566595089 initial import
mandel
parents:
diff changeset
572 void _NamespaceModelItem::addNamespace(NamespaceModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
573 {
e78566595089 initial import
mandel
parents:
diff changeset
574 _M_namespaces.insert(item->name(), item);
e78566595089 initial import
mandel
parents:
diff changeset
575 }
e78566595089 initial import
mandel
parents:
diff changeset
576 void _NamespaceModelItem::removeNamespace(NamespaceModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
577 {
e78566595089 initial import
mandel
parents:
diff changeset
578 QHash<QString, NamespaceModelItem>::Iterator it = _M_namespaces.find(item->name());
e78566595089 initial import
mandel
parents:
diff changeset
579
e78566595089 initial import
mandel
parents:
diff changeset
580 if (it != _M_namespaces.end() && it.value() == item)
e78566595089 initial import
mandel
parents:
diff changeset
581 _M_namespaces.erase(it);
e78566595089 initial import
mandel
parents:
diff changeset
582 }
e78566595089 initial import
mandel
parents:
diff changeset
583
e78566595089 initial import
mandel
parents:
diff changeset
584 NamespaceModelItem _NamespaceModelItem::findNamespace(const QString &name) const
e78566595089 initial import
mandel
parents:
diff changeset
585 {
e78566595089 initial import
mandel
parents:
diff changeset
586 return _M_namespaces.value(name);
e78566595089 initial import
mandel
parents:
diff changeset
587 }
e78566595089 initial import
mandel
parents:
diff changeset
588
e78566595089 initial import
mandel
parents:
diff changeset
589 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
590 TypeInfo _ArgumentModelItem::type() const
e78566595089 initial import
mandel
parents:
diff changeset
591 {
e78566595089 initial import
mandel
parents:
diff changeset
592 return _M_type;
e78566595089 initial import
mandel
parents:
diff changeset
593 }
e78566595089 initial import
mandel
parents:
diff changeset
594
e78566595089 initial import
mandel
parents:
diff changeset
595 void _ArgumentModelItem::setType(const TypeInfo &type)
e78566595089 initial import
mandel
parents:
diff changeset
596 {
e78566595089 initial import
mandel
parents:
diff changeset
597 _M_type = type;
e78566595089 initial import
mandel
parents:
diff changeset
598 }
e78566595089 initial import
mandel
parents:
diff changeset
599
e78566595089 initial import
mandel
parents:
diff changeset
600 bool _ArgumentModelItem::defaultValue() const
e78566595089 initial import
mandel
parents:
diff changeset
601 {
e78566595089 initial import
mandel
parents:
diff changeset
602 return _M_defaultValue;
e78566595089 initial import
mandel
parents:
diff changeset
603 }
e78566595089 initial import
mandel
parents:
diff changeset
604
e78566595089 initial import
mandel
parents:
diff changeset
605 void _ArgumentModelItem::setDefaultValue(bool defaultValue)
e78566595089 initial import
mandel
parents:
diff changeset
606 {
e78566595089 initial import
mandel
parents:
diff changeset
607 _M_defaultValue = defaultValue;
e78566595089 initial import
mandel
parents:
diff changeset
608 }
e78566595089 initial import
mandel
parents:
diff changeset
609
e78566595089 initial import
mandel
parents:
diff changeset
610 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
611 bool _FunctionModelItem::isSimilar(FunctionModelItem other) const
e78566595089 initial import
mandel
parents:
diff changeset
612 {
e78566595089 initial import
mandel
parents:
diff changeset
613 if (name() != other->name())
e78566595089 initial import
mandel
parents:
diff changeset
614 return false;
e78566595089 initial import
mandel
parents:
diff changeset
615
e78566595089 initial import
mandel
parents:
diff changeset
616 if (isConstant() != other->isConstant())
e78566595089 initial import
mandel
parents:
diff changeset
617 return false;
e78566595089 initial import
mandel
parents:
diff changeset
618
e78566595089 initial import
mandel
parents:
diff changeset
619 if (isVariadics() != other->isVariadics())
e78566595089 initial import
mandel
parents:
diff changeset
620 return false;
e78566595089 initial import
mandel
parents:
diff changeset
621
e78566595089 initial import
mandel
parents:
diff changeset
622 if (arguments().count() != other->arguments().count())
e78566595089 initial import
mandel
parents:
diff changeset
623 return false;
e78566595089 initial import
mandel
parents:
diff changeset
624
e78566595089 initial import
mandel
parents:
diff changeset
625 // ### check the template parameters
e78566595089 initial import
mandel
parents:
diff changeset
626
e78566595089 initial import
mandel
parents:
diff changeset
627 for (int i=0; i<arguments().count(); ++i)
e78566595089 initial import
mandel
parents:
diff changeset
628 {
e78566595089 initial import
mandel
parents:
diff changeset
629 ArgumentModelItem arg1 = arguments().at(i);
e78566595089 initial import
mandel
parents:
diff changeset
630 ArgumentModelItem arg2 = other->arguments().at(i);
e78566595089 initial import
mandel
parents:
diff changeset
631
e78566595089 initial import
mandel
parents:
diff changeset
632 if (arg1->type() != arg2->type())
e78566595089 initial import
mandel
parents:
diff changeset
633 return false;
e78566595089 initial import
mandel
parents:
diff changeset
634 }
e78566595089 initial import
mandel
parents:
diff changeset
635
e78566595089 initial import
mandel
parents:
diff changeset
636 return true;
e78566595089 initial import
mandel
parents:
diff changeset
637 }
e78566595089 initial import
mandel
parents:
diff changeset
638
e78566595089 initial import
mandel
parents:
diff changeset
639 ArgumentList _FunctionModelItem::arguments() const
e78566595089 initial import
mandel
parents:
diff changeset
640 {
e78566595089 initial import
mandel
parents:
diff changeset
641 return _M_arguments;
e78566595089 initial import
mandel
parents:
diff changeset
642 }
e78566595089 initial import
mandel
parents:
diff changeset
643
e78566595089 initial import
mandel
parents:
diff changeset
644 void _FunctionModelItem::addArgument(ArgumentModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
645 {
e78566595089 initial import
mandel
parents:
diff changeset
646 _M_arguments.append(item);
e78566595089 initial import
mandel
parents:
diff changeset
647 }
e78566595089 initial import
mandel
parents:
diff changeset
648
e78566595089 initial import
mandel
parents:
diff changeset
649 void _FunctionModelItem::removeArgument(ArgumentModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
650 {
e78566595089 initial import
mandel
parents:
diff changeset
651 _M_arguments.removeAt(_M_arguments.indexOf(item));
e78566595089 initial import
mandel
parents:
diff changeset
652 }
e78566595089 initial import
mandel
parents:
diff changeset
653
e78566595089 initial import
mandel
parents:
diff changeset
654 CodeModel::FunctionType _FunctionModelItem::functionType() const
e78566595089 initial import
mandel
parents:
diff changeset
655 {
e78566595089 initial import
mandel
parents:
diff changeset
656 return _M_functionType;
e78566595089 initial import
mandel
parents:
diff changeset
657 }
e78566595089 initial import
mandel
parents:
diff changeset
658
e78566595089 initial import
mandel
parents:
diff changeset
659 void _FunctionModelItem::setFunctionType(CodeModel::FunctionType functionType)
e78566595089 initial import
mandel
parents:
diff changeset
660 {
e78566595089 initial import
mandel
parents:
diff changeset
661 _M_functionType = functionType;
e78566595089 initial import
mandel
parents:
diff changeset
662 }
e78566595089 initial import
mandel
parents:
diff changeset
663
e78566595089 initial import
mandel
parents:
diff changeset
664 bool _FunctionModelItem::isVariadics() const
e78566595089 initial import
mandel
parents:
diff changeset
665 {
e78566595089 initial import
mandel
parents:
diff changeset
666 return _M_isVariadics;
e78566595089 initial import
mandel
parents:
diff changeset
667 }
e78566595089 initial import
mandel
parents:
diff changeset
668
e78566595089 initial import
mandel
parents:
diff changeset
669 void _FunctionModelItem::setVariadics(bool isVariadics)
e78566595089 initial import
mandel
parents:
diff changeset
670 {
e78566595089 initial import
mandel
parents:
diff changeset
671 _M_isVariadics = isVariadics;
e78566595089 initial import
mandel
parents:
diff changeset
672 }
e78566595089 initial import
mandel
parents:
diff changeset
673
e78566595089 initial import
mandel
parents:
diff changeset
674 bool _FunctionModelItem::isVirtual() const
e78566595089 initial import
mandel
parents:
diff changeset
675 {
e78566595089 initial import
mandel
parents:
diff changeset
676 return _M_isVirtual;
e78566595089 initial import
mandel
parents:
diff changeset
677 }
e78566595089 initial import
mandel
parents:
diff changeset
678
e78566595089 initial import
mandel
parents:
diff changeset
679 void _FunctionModelItem::setVirtual(bool isVirtual)
e78566595089 initial import
mandel
parents:
diff changeset
680 {
e78566595089 initial import
mandel
parents:
diff changeset
681 _M_isVirtual = isVirtual;
e78566595089 initial import
mandel
parents:
diff changeset
682 }
e78566595089 initial import
mandel
parents:
diff changeset
683
e78566595089 initial import
mandel
parents:
diff changeset
684 bool _FunctionModelItem::isInline() const
e78566595089 initial import
mandel
parents:
diff changeset
685 {
e78566595089 initial import
mandel
parents:
diff changeset
686 return _M_isInline;
e78566595089 initial import
mandel
parents:
diff changeset
687 }
e78566595089 initial import
mandel
parents:
diff changeset
688
e78566595089 initial import
mandel
parents:
diff changeset
689 void _FunctionModelItem::setInline(bool isInline)
e78566595089 initial import
mandel
parents:
diff changeset
690 {
e78566595089 initial import
mandel
parents:
diff changeset
691 _M_isInline = isInline;
e78566595089 initial import
mandel
parents:
diff changeset
692 }
e78566595089 initial import
mandel
parents:
diff changeset
693
e78566595089 initial import
mandel
parents:
diff changeset
694 bool _FunctionModelItem::isExplicit() const
e78566595089 initial import
mandel
parents:
diff changeset
695 {
e78566595089 initial import
mandel
parents:
diff changeset
696 return _M_isExplicit;
e78566595089 initial import
mandel
parents:
diff changeset
697 }
e78566595089 initial import
mandel
parents:
diff changeset
698
e78566595089 initial import
mandel
parents:
diff changeset
699 void _FunctionModelItem::setExplicit(bool isExplicit)
e78566595089 initial import
mandel
parents:
diff changeset
700 {
e78566595089 initial import
mandel
parents:
diff changeset
701 _M_isExplicit = isExplicit;
e78566595089 initial import
mandel
parents:
diff changeset
702 }
e78566595089 initial import
mandel
parents:
diff changeset
703
e78566595089 initial import
mandel
parents:
diff changeset
704 bool _FunctionModelItem::isAbstract() const
e78566595089 initial import
mandel
parents:
diff changeset
705 {
e78566595089 initial import
mandel
parents:
diff changeset
706 return _M_isAbstract;
e78566595089 initial import
mandel
parents:
diff changeset
707 }
e78566595089 initial import
mandel
parents:
diff changeset
708
e78566595089 initial import
mandel
parents:
diff changeset
709 void _FunctionModelItem::setAbstract(bool isAbstract)
e78566595089 initial import
mandel
parents:
diff changeset
710 {
e78566595089 initial import
mandel
parents:
diff changeset
711 _M_isAbstract = isAbstract;
e78566595089 initial import
mandel
parents:
diff changeset
712 }
e78566595089 initial import
mandel
parents:
diff changeset
713
e78566595089 initial import
mandel
parents:
diff changeset
714 // Qt
e78566595089 initial import
mandel
parents:
diff changeset
715 bool _FunctionModelItem::isInvokable() const
e78566595089 initial import
mandel
parents:
diff changeset
716 {
e78566595089 initial import
mandel
parents:
diff changeset
717 return _M_isInvokable;
e78566595089 initial import
mandel
parents:
diff changeset
718 }
e78566595089 initial import
mandel
parents:
diff changeset
719
e78566595089 initial import
mandel
parents:
diff changeset
720 void _FunctionModelItem::setInvokable(bool isInvokable)
e78566595089 initial import
mandel
parents:
diff changeset
721 {
e78566595089 initial import
mandel
parents:
diff changeset
722 _M_isInvokable = isInvokable;
e78566595089 initial import
mandel
parents:
diff changeset
723 }
e78566595089 initial import
mandel
parents:
diff changeset
724
e78566595089 initial import
mandel
parents:
diff changeset
725 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
726 TypeInfo _TypeAliasModelItem::type() const
e78566595089 initial import
mandel
parents:
diff changeset
727 {
e78566595089 initial import
mandel
parents:
diff changeset
728 return _M_type;
e78566595089 initial import
mandel
parents:
diff changeset
729 }
e78566595089 initial import
mandel
parents:
diff changeset
730
e78566595089 initial import
mandel
parents:
diff changeset
731 void _TypeAliasModelItem::setType(const TypeInfo &type)
e78566595089 initial import
mandel
parents:
diff changeset
732 {
e78566595089 initial import
mandel
parents:
diff changeset
733 _M_type = type;
e78566595089 initial import
mandel
parents:
diff changeset
734 }
e78566595089 initial import
mandel
parents:
diff changeset
735
e78566595089 initial import
mandel
parents:
diff changeset
736 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
737 CodeModel::AccessPolicy _EnumModelItem::accessPolicy() const
e78566595089 initial import
mandel
parents:
diff changeset
738 {
e78566595089 initial import
mandel
parents:
diff changeset
739 return _M_accessPolicy;
e78566595089 initial import
mandel
parents:
diff changeset
740 }
e78566595089 initial import
mandel
parents:
diff changeset
741
e78566595089 initial import
mandel
parents:
diff changeset
742 void _EnumModelItem::setAccessPolicy(CodeModel::AccessPolicy accessPolicy)
e78566595089 initial import
mandel
parents:
diff changeset
743 {
e78566595089 initial import
mandel
parents:
diff changeset
744 _M_accessPolicy = accessPolicy;
e78566595089 initial import
mandel
parents:
diff changeset
745 }
e78566595089 initial import
mandel
parents:
diff changeset
746
e78566595089 initial import
mandel
parents:
diff changeset
747 EnumeratorList _EnumModelItem::enumerators() const
e78566595089 initial import
mandel
parents:
diff changeset
748 {
e78566595089 initial import
mandel
parents:
diff changeset
749 return _M_enumerators;
e78566595089 initial import
mandel
parents:
diff changeset
750 }
e78566595089 initial import
mandel
parents:
diff changeset
751
e78566595089 initial import
mandel
parents:
diff changeset
752 void _EnumModelItem::addEnumerator(EnumeratorModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
753 {
e78566595089 initial import
mandel
parents:
diff changeset
754 _M_enumerators.append(item);
e78566595089 initial import
mandel
parents:
diff changeset
755 }
e78566595089 initial import
mandel
parents:
diff changeset
756
e78566595089 initial import
mandel
parents:
diff changeset
757 void _EnumModelItem::removeEnumerator(EnumeratorModelItem item)
e78566595089 initial import
mandel
parents:
diff changeset
758 {
e78566595089 initial import
mandel
parents:
diff changeset
759 _M_enumerators.removeAt(_M_enumerators.indexOf(item));
e78566595089 initial import
mandel
parents:
diff changeset
760 }
e78566595089 initial import
mandel
parents:
diff changeset
761
e78566595089 initial import
mandel
parents:
diff changeset
762 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
763 QString _EnumeratorModelItem::value() const
e78566595089 initial import
mandel
parents:
diff changeset
764 {
e78566595089 initial import
mandel
parents:
diff changeset
765 return _M_value;
e78566595089 initial import
mandel
parents:
diff changeset
766 }
e78566595089 initial import
mandel
parents:
diff changeset
767
e78566595089 initial import
mandel
parents:
diff changeset
768 void _EnumeratorModelItem::setValue(const QString &value)
e78566595089 initial import
mandel
parents:
diff changeset
769 {
e78566595089 initial import
mandel
parents:
diff changeset
770 _M_value = value;
e78566595089 initial import
mandel
parents:
diff changeset
771 }
e78566595089 initial import
mandel
parents:
diff changeset
772
e78566595089 initial import
mandel
parents:
diff changeset
773 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
774 TypeInfo _TemplateParameterModelItem::type() const
e78566595089 initial import
mandel
parents:
diff changeset
775 {
e78566595089 initial import
mandel
parents:
diff changeset
776 return _M_type;
e78566595089 initial import
mandel
parents:
diff changeset
777 }
e78566595089 initial import
mandel
parents:
diff changeset
778
e78566595089 initial import
mandel
parents:
diff changeset
779 void _TemplateParameterModelItem::setType(const TypeInfo &type)
e78566595089 initial import
mandel
parents:
diff changeset
780 {
e78566595089 initial import
mandel
parents:
diff changeset
781 _M_type = type;
e78566595089 initial import
mandel
parents:
diff changeset
782 }
e78566595089 initial import
mandel
parents:
diff changeset
783
e78566595089 initial import
mandel
parents:
diff changeset
784 bool _TemplateParameterModelItem::defaultValue() const
e78566595089 initial import
mandel
parents:
diff changeset
785 {
e78566595089 initial import
mandel
parents:
diff changeset
786 return _M_defaultValue;
e78566595089 initial import
mandel
parents:
diff changeset
787 }
e78566595089 initial import
mandel
parents:
diff changeset
788
e78566595089 initial import
mandel
parents:
diff changeset
789 void _TemplateParameterModelItem::setDefaultValue(bool defaultValue)
e78566595089 initial import
mandel
parents:
diff changeset
790 {
e78566595089 initial import
mandel
parents:
diff changeset
791 _M_defaultValue = defaultValue;
e78566595089 initial import
mandel
parents:
diff changeset
792 }
e78566595089 initial import
mandel
parents:
diff changeset
793
e78566595089 initial import
mandel
parents:
diff changeset
794 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
795 ScopeModelItem _ScopeModelItem::create(CodeModel *model)
e78566595089 initial import
mandel
parents:
diff changeset
796 {
e78566595089 initial import
mandel
parents:
diff changeset
797 ScopeModelItem item(new _ScopeModelItem(model));
e78566595089 initial import
mandel
parents:
diff changeset
798 return item;
e78566595089 initial import
mandel
parents:
diff changeset
799 }
e78566595089 initial import
mandel
parents:
diff changeset
800
e78566595089 initial import
mandel
parents:
diff changeset
801 ClassModelItem _ClassModelItem::create(CodeModel *model)
e78566595089 initial import
mandel
parents:
diff changeset
802 {
e78566595089 initial import
mandel
parents:
diff changeset
803 ClassModelItem item(new _ClassModelItem(model));
e78566595089 initial import
mandel
parents:
diff changeset
804 return item;
e78566595089 initial import
mandel
parents:
diff changeset
805 }
e78566595089 initial import
mandel
parents:
diff changeset
806
e78566595089 initial import
mandel
parents:
diff changeset
807 NamespaceModelItem _NamespaceModelItem::create(CodeModel *model)
e78566595089 initial import
mandel
parents:
diff changeset
808 {
e78566595089 initial import
mandel
parents:
diff changeset
809 NamespaceModelItem item(new _NamespaceModelItem(model));
e78566595089 initial import
mandel
parents:
diff changeset
810 return item;
e78566595089 initial import
mandel
parents:
diff changeset
811 }
e78566595089 initial import
mandel
parents:
diff changeset
812
e78566595089 initial import
mandel
parents:
diff changeset
813 FileModelItem _FileModelItem::create(CodeModel *model)
e78566595089 initial import
mandel
parents:
diff changeset
814 {
e78566595089 initial import
mandel
parents:
diff changeset
815 FileModelItem item(new _FileModelItem(model));
e78566595089 initial import
mandel
parents:
diff changeset
816 return item;
e78566595089 initial import
mandel
parents:
diff changeset
817 }
e78566595089 initial import
mandel
parents:
diff changeset
818
e78566595089 initial import
mandel
parents:
diff changeset
819 ArgumentModelItem _ArgumentModelItem::create(CodeModel *model)
e78566595089 initial import
mandel
parents:
diff changeset
820 {
e78566595089 initial import
mandel
parents:
diff changeset
821 ArgumentModelItem item(new _ArgumentModelItem(model));
e78566595089 initial import
mandel
parents:
diff changeset
822 return item;
e78566595089 initial import
mandel
parents:
diff changeset
823 }
e78566595089 initial import
mandel
parents:
diff changeset
824
e78566595089 initial import
mandel
parents:
diff changeset
825 FunctionModelItem _FunctionModelItem::create(CodeModel *model)
e78566595089 initial import
mandel
parents:
diff changeset
826 {
e78566595089 initial import
mandel
parents:
diff changeset
827 FunctionModelItem item(new _FunctionModelItem(model));
e78566595089 initial import
mandel
parents:
diff changeset
828 return item;
e78566595089 initial import
mandel
parents:
diff changeset
829 }
e78566595089 initial import
mandel
parents:
diff changeset
830
e78566595089 initial import
mandel
parents:
diff changeset
831 FunctionDefinitionModelItem _FunctionDefinitionModelItem::create(CodeModel *model)
e78566595089 initial import
mandel
parents:
diff changeset
832 {
e78566595089 initial import
mandel
parents:
diff changeset
833 FunctionDefinitionModelItem item(new _FunctionDefinitionModelItem(model));
e78566595089 initial import
mandel
parents:
diff changeset
834 return item;
e78566595089 initial import
mandel
parents:
diff changeset
835 }
e78566595089 initial import
mandel
parents:
diff changeset
836
e78566595089 initial import
mandel
parents:
diff changeset
837 VariableModelItem _VariableModelItem::create(CodeModel *model)
e78566595089 initial import
mandel
parents:
diff changeset
838 {
e78566595089 initial import
mandel
parents:
diff changeset
839 VariableModelItem item(new _VariableModelItem(model));
e78566595089 initial import
mandel
parents:
diff changeset
840 return item;
e78566595089 initial import
mandel
parents:
diff changeset
841 }
e78566595089 initial import
mandel
parents:
diff changeset
842
e78566595089 initial import
mandel
parents:
diff changeset
843 TypeAliasModelItem _TypeAliasModelItem::create(CodeModel *model)
e78566595089 initial import
mandel
parents:
diff changeset
844 {
e78566595089 initial import
mandel
parents:
diff changeset
845 TypeAliasModelItem item(new _TypeAliasModelItem(model));
e78566595089 initial import
mandel
parents:
diff changeset
846 return item;
e78566595089 initial import
mandel
parents:
diff changeset
847 }
e78566595089 initial import
mandel
parents:
diff changeset
848
e78566595089 initial import
mandel
parents:
diff changeset
849 EnumModelItem _EnumModelItem::create(CodeModel *model)
e78566595089 initial import
mandel
parents:
diff changeset
850 {
e78566595089 initial import
mandel
parents:
diff changeset
851 EnumModelItem item(new _EnumModelItem(model));
e78566595089 initial import
mandel
parents:
diff changeset
852 return item;
e78566595089 initial import
mandel
parents:
diff changeset
853 }
e78566595089 initial import
mandel
parents:
diff changeset
854
e78566595089 initial import
mandel
parents:
diff changeset
855 EnumeratorModelItem _EnumeratorModelItem::create(CodeModel *model)
e78566595089 initial import
mandel
parents:
diff changeset
856 {
e78566595089 initial import
mandel
parents:
diff changeset
857 EnumeratorModelItem item(new _EnumeratorModelItem(model));
e78566595089 initial import
mandel
parents:
diff changeset
858 return item;
e78566595089 initial import
mandel
parents:
diff changeset
859 }
e78566595089 initial import
mandel
parents:
diff changeset
860
e78566595089 initial import
mandel
parents:
diff changeset
861 TemplateParameterModelItem _TemplateParameterModelItem::create(CodeModel *model)
e78566595089 initial import
mandel
parents:
diff changeset
862 {
e78566595089 initial import
mandel
parents:
diff changeset
863 TemplateParameterModelItem item(new _TemplateParameterModelItem(model));
e78566595089 initial import
mandel
parents:
diff changeset
864 return item;
e78566595089 initial import
mandel
parents:
diff changeset
865 }
e78566595089 initial import
mandel
parents:
diff changeset
866
e78566595089 initial import
mandel
parents:
diff changeset
867 // ---------------------------------------------------------------------------
e78566595089 initial import
mandel
parents:
diff changeset
868 TypeInfo _MemberModelItem::type() const
e78566595089 initial import
mandel
parents:
diff changeset
869 {
e78566595089 initial import
mandel
parents:
diff changeset
870 return _M_type;
e78566595089 initial import
mandel
parents:
diff changeset
871 }
e78566595089 initial import
mandel
parents:
diff changeset
872
e78566595089 initial import
mandel
parents:
diff changeset
873 void _MemberModelItem::setType(const TypeInfo &type)
e78566595089 initial import
mandel
parents:
diff changeset
874 {
e78566595089 initial import
mandel
parents:
diff changeset
875 _M_type = type;
e78566595089 initial import
mandel
parents:
diff changeset
876 }
e78566595089 initial import
mandel
parents:
diff changeset
877
e78566595089 initial import
mandel
parents:
diff changeset
878 CodeModel::AccessPolicy _MemberModelItem::accessPolicy() const
e78566595089 initial import
mandel
parents:
diff changeset
879 {
e78566595089 initial import
mandel
parents:
diff changeset
880 return _M_accessPolicy;
e78566595089 initial import
mandel
parents:
diff changeset
881 }
e78566595089 initial import
mandel
parents:
diff changeset
882
e78566595089 initial import
mandel
parents:
diff changeset
883 void _MemberModelItem::setAccessPolicy(CodeModel::AccessPolicy accessPolicy)
e78566595089 initial import
mandel
parents:
diff changeset
884 {
e78566595089 initial import
mandel
parents:
diff changeset
885 _M_accessPolicy = accessPolicy;
e78566595089 initial import
mandel
parents:
diff changeset
886 }
e78566595089 initial import
mandel
parents:
diff changeset
887
e78566595089 initial import
mandel
parents:
diff changeset
888 bool _MemberModelItem::isStatic() const
e78566595089 initial import
mandel
parents:
diff changeset
889 {
e78566595089 initial import
mandel
parents:
diff changeset
890 return _M_isStatic;
e78566595089 initial import
mandel
parents:
diff changeset
891 }
e78566595089 initial import
mandel
parents:
diff changeset
892
e78566595089 initial import
mandel
parents:
diff changeset
893 void _MemberModelItem::setStatic(bool isStatic)
e78566595089 initial import
mandel
parents:
diff changeset
894 {
e78566595089 initial import
mandel
parents:
diff changeset
895 _M_isStatic = isStatic;
e78566595089 initial import
mandel
parents:
diff changeset
896 }
e78566595089 initial import
mandel
parents:
diff changeset
897
e78566595089 initial import
mandel
parents:
diff changeset
898 bool _MemberModelItem::isConstant() const
e78566595089 initial import
mandel
parents:
diff changeset
899 {
e78566595089 initial import
mandel
parents:
diff changeset
900 return _M_isConstant;
e78566595089 initial import
mandel
parents:
diff changeset
901 }
e78566595089 initial import
mandel
parents:
diff changeset
902
e78566595089 initial import
mandel
parents:
diff changeset
903 void _MemberModelItem::setConstant(bool isConstant)
e78566595089 initial import
mandel
parents:
diff changeset
904 {
e78566595089 initial import
mandel
parents:
diff changeset
905 _M_isConstant = isConstant;
e78566595089 initial import
mandel
parents:
diff changeset
906 }
e78566595089 initial import
mandel
parents:
diff changeset
907
e78566595089 initial import
mandel
parents:
diff changeset
908 bool _MemberModelItem::isVolatile() const
e78566595089 initial import
mandel
parents:
diff changeset
909 {
e78566595089 initial import
mandel
parents:
diff changeset
910 return _M_isVolatile;
e78566595089 initial import
mandel
parents:
diff changeset
911 }
e78566595089 initial import
mandel
parents:
diff changeset
912
e78566595089 initial import
mandel
parents:
diff changeset
913 void _MemberModelItem::setVolatile(bool isVolatile)
e78566595089 initial import
mandel
parents:
diff changeset
914 {
e78566595089 initial import
mandel
parents:
diff changeset
915 _M_isVolatile = isVolatile;
e78566595089 initial import
mandel
parents:
diff changeset
916 }
e78566595089 initial import
mandel
parents:
diff changeset
917
e78566595089 initial import
mandel
parents:
diff changeset
918 bool _MemberModelItem::isAuto() const
e78566595089 initial import
mandel
parents:
diff changeset
919 {
e78566595089 initial import
mandel
parents:
diff changeset
920 return _M_isAuto;
e78566595089 initial import
mandel
parents:
diff changeset
921 }
e78566595089 initial import
mandel
parents:
diff changeset
922
e78566595089 initial import
mandel
parents:
diff changeset
923 void _MemberModelItem::setAuto(bool isAuto)
e78566595089 initial import
mandel
parents:
diff changeset
924 {
e78566595089 initial import
mandel
parents:
diff changeset
925 _M_isAuto = isAuto;
e78566595089 initial import
mandel
parents:
diff changeset
926 }
e78566595089 initial import
mandel
parents:
diff changeset
927
e78566595089 initial import
mandel
parents:
diff changeset
928 bool _MemberModelItem::isFriend() const
e78566595089 initial import
mandel
parents:
diff changeset
929 {
e78566595089 initial import
mandel
parents:
diff changeset
930 return _M_isFriend;
e78566595089 initial import
mandel
parents:
diff changeset
931 }
e78566595089 initial import
mandel
parents:
diff changeset
932
e78566595089 initial import
mandel
parents:
diff changeset
933 void _MemberModelItem::setFriend(bool isFriend)
e78566595089 initial import
mandel
parents:
diff changeset
934 {
e78566595089 initial import
mandel
parents:
diff changeset
935 _M_isFriend = isFriend;
e78566595089 initial import
mandel
parents:
diff changeset
936 }
e78566595089 initial import
mandel
parents:
diff changeset
937
e78566595089 initial import
mandel
parents:
diff changeset
938 bool _MemberModelItem::isRegister() const
e78566595089 initial import
mandel
parents:
diff changeset
939 {
e78566595089 initial import
mandel
parents:
diff changeset
940 return _M_isRegister;
e78566595089 initial import
mandel
parents:
diff changeset
941 }
e78566595089 initial import
mandel
parents:
diff changeset
942
e78566595089 initial import
mandel
parents:
diff changeset
943 void _MemberModelItem::setRegister(bool isRegister)
e78566595089 initial import
mandel
parents:
diff changeset
944 {
e78566595089 initial import
mandel
parents:
diff changeset
945 _M_isRegister = isRegister;
e78566595089 initial import
mandel
parents:
diff changeset
946 }
e78566595089 initial import
mandel
parents:
diff changeset
947
e78566595089 initial import
mandel
parents:
diff changeset
948 bool _MemberModelItem::isExtern() const
e78566595089 initial import
mandel
parents:
diff changeset
949 {
e78566595089 initial import
mandel
parents:
diff changeset
950 return _M_isExtern;
e78566595089 initial import
mandel
parents:
diff changeset
951 }
e78566595089 initial import
mandel
parents:
diff changeset
952
e78566595089 initial import
mandel
parents:
diff changeset
953 void _MemberModelItem::setExtern(bool isExtern)
e78566595089 initial import
mandel
parents:
diff changeset
954 {
e78566595089 initial import
mandel
parents:
diff changeset
955 _M_isExtern = isExtern;
e78566595089 initial import
mandel
parents:
diff changeset
956 }
e78566595089 initial import
mandel
parents:
diff changeset
957
e78566595089 initial import
mandel
parents:
diff changeset
958 bool _MemberModelItem::isMutable() const
e78566595089 initial import
mandel
parents:
diff changeset
959 {
e78566595089 initial import
mandel
parents:
diff changeset
960 return _M_isMutable;
e78566595089 initial import
mandel
parents:
diff changeset
961 }
e78566595089 initial import
mandel
parents:
diff changeset
962
e78566595089 initial import
mandel
parents:
diff changeset
963 void _MemberModelItem::setMutable(bool isMutable)
e78566595089 initial import
mandel
parents:
diff changeset
964 {
e78566595089 initial import
mandel
parents:
diff changeset
965 _M_isMutable = isMutable;
e78566595089 initial import
mandel
parents:
diff changeset
966 }
e78566595089 initial import
mandel
parents:
diff changeset
967
e78566595089 initial import
mandel
parents:
diff changeset
968 // kate: space-indent on; indent-width 2; replace-tabs on;
e78566595089 initial import
mandel
parents:
diff changeset
969