diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-05-02 08:42:08 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-05-02 08:42:08 +0000 |
| commit | 822b5fcaa34b78b9668a58680f9e0d89aa3fd7bd (patch) | |
| tree | 40dc605213eff20f62b16e5f54e5e5e03d744d63 /pokemod/Object.cpp | |
| parent | 696414f1dc8bc419427efb6c1abe1bbae0a68a56 (diff) | |
| download | sigen-822b5fcaa34b78b9668a58680f9e0d89aa3fd7bd.tar.gz sigen-822b5fcaa34b78b9668a58680f9e0d89aa3fd7bd.tar.xz sigen-822b5fcaa34b78b9668a58680f9e0d89aa3fd7bd.zip | |
[FIX] Exceptions no longer used in pokemod
[DEL] Exception and BugCatcher are no longer needed
[ADD] Object.cpp added
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@119 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokemod/Object.cpp')
| -rw-r--r-- | pokemod/Object.cpp | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/pokemod/Object.cpp b/pokemod/Object.cpp new file mode 100644 index 00000000..7ec3b16c --- /dev/null +++ b/pokemod/Object.cpp @@ -0,0 +1,155 @@ +/* + * Copyright 2007-2008 Ben Boeckel <MathStuf@gmail.com> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +// Header include +#include "Object.h" + +Object::Object(const Object& object) : + m_id(object.id()), + m_className(object.className()), + m_parent(object.parent()) +{ +} + +Object::Object(const QString& className, const Object* parent, const int id) : + m_id(id), + m_className(className), + m_parent(parent) +{ +} + +const Object* Object::parent() const +{ + return m_parent; +} + +const Object* Object::pokemod() const +{ + if (m_parent) + return m_parent->pokemod(); + return this; +} + +bool Object::isValid(QTextStream& stream) +{ + setValid(true); + if (!isGood()) + boundsError(stream, "ID"); + validate(stream); + return m_valid; +} + +bool Object::isGood() const +{ + return ((0 <= m_id) && (INT_MAX != m_id)); +} + +int Object::id() const +{ + return m_id; +} + +QString Object::className() const +{ + return m_className; +} + +bool Object::valid() const +{ + return m_valid; +} + +void Object::setId(const int id) +{ + m_id = id; +} + +void Object::setValid(const bool valid) +{ + m_valid = valid; +} + +void Object::warning(const QString& message) +{ + m_lastError = message; +} + +void Object::warning(QTextStream& stream, const QString& message) const +{ + stream << m_className << " (" << m_id << "): " << message; +} + +void Object::error(const QString& message) +{ + setValid(false); + m_lastError = message; +} + +void Object::error(QTextStream& stream, const QString& message) +{ + setValid(false); + warning(stream, message); +} + +void Object::unusedError(const QString& variable) +{ + warning(QString("Setting unused variable %1").arg(variable)); +} + +void Object::unusedError(QTextStream& stream, const QString& variable) +{ + warning(stream, QString("Setting unused variable %1").arg(variable)); +} + +void Object::boundsError(const QString& variable) +{ + error(QString("Value for %1 out-of-bounds").arg(variable)); +} + +void Object::boundsError(QTextStream& stream, const QString& variable) +{ + error(stream, QString("Value for %1 out-of-bounds").arg(variable)); +} + +void Object::sizeError(const QString& variable) +{ + error(QString("Wrong size for %1").arg(variable)); +} + +void Object::sizeError(QTextStream& stream, const QString& variable) +{ + error(stream, QString("Wrong size for %1").arg(variable)); +} + +void Object::subclassError(QTextStream& stream, const QString& subclass, const int id) +{ + error(stream, QString("Duplicate %1 with id %2").arg(subclass).arg(id)); +} + +void Object::subclassError(QTextStream& stream, const QString& subclass, const QString& name) +{ + error(stream, QString("Duplicate %1 with name %2").arg(subclass).arg(name)); +} + +void Object::lastError(QTextStream& stream) +{ + warning(stream, m_lastError); +} + +void Object::clear() +{ +} |
