aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2010-06-02 15:53:37 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-09 19:10:04 -0300
commit576c9b5c6045940da2586500b7c6bec44d00da69 (patch)
tree1bca89c5a1914c347a9b3405d693b58ac045a992
parentbf5dbc2df39d014860a21884f55209ace04d2846 (diff)
Added methods to AbstractMetaClass to verify the presence of protected members.
Added methods to verify the presence of protected fields and members in general in a class. Reviewed by Renato Araújo <renato.filho@openbossa.org> Reviewed by Luciano Wolf <luciano.wolf@openbossa.org>
-rw-r--r--abstractmetalang.cpp19
-rw-r--r--abstractmetalang.h18
2 files changed, 32 insertions, 5 deletions
diff --git a/abstractmetalang.cpp b/abstractmetalang.cpp
index 8d25a2319..068256528 100644
--- a/abstractmetalang.cpp
+++ b/abstractmetalang.cpp
@@ -1373,11 +1373,6 @@ const AbstractMetaFunction* AbstractMetaClass::findFunction(const QString& funct
return 0;
}
-/* Returns true if this class has one or more functions that are
- protected. If a class has protected members we need to generate a
- shell class with public accessors to the protected functions, so
- they can be called from the native functions.
-*/
bool AbstractMetaClass::hasProtectedFunctions() const
{
foreach (AbstractMetaFunction *func, m_functions) {
@@ -1387,6 +1382,20 @@ bool AbstractMetaClass::hasProtectedFunctions() const
return false;
}
+bool AbstractMetaClass::hasProtectedFields() const
+{
+ foreach (const AbstractMetaField *field, fields()) {
+ if (field->isProtected())
+ return true;
+ }
+ return false;
+}
+
+bool AbstractMetaClass::hasProtectedMembers() const
+{
+ return hasProtectedFields() || hasProtectedFunctions();
+}
+
bool AbstractMetaClass::generateShellClass() const
{
return m_forceShellClass ||
diff --git a/abstractmetalang.h b/abstractmetalang.h
index e4a81e810..6609eb936 100644
--- a/abstractmetalang.h
+++ b/abstractmetalang.h
@@ -1590,8 +1590,26 @@ public:
{
return m_isPolymorphic;
}
+
+ /**
+ * Tells if this class has one or more functions that are protected.
+ * \return true if the class has protected functions.
+ */
bool hasProtectedFunctions() const;
+ /**
+ * Tells if this class has one or more fields (member variables) that are protected.
+ * \return true if the class has protected fields.
+ */
+ bool hasProtectedFields() const;
+
+ /**
+ * Tells if this class has one or more members (functions or fields) that are protected.
+ * \return true if the class has protected members.
+ */
+ bool hasProtectedMembers() const;
+
+
QList<TypeEntry *> templateArguments() const
{
return m_templateArgs;