From 90a6675a8eda8f77d504275b982c469b8e2ca2ce Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Wed, 27 Jan 2010 03:39:23 +0100 Subject: renamed MissingSongTagException to MissingTagException and added tag parameter --- src/base/song.cpp | 8 ++++---- src/base/song.hpp | 17 ++++++++++++++--- test/base/songloading.cpp | 8 ++++---- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/base/song.cpp b/src/base/song.cpp index 4185d51b..d4429f04 100644 --- a/src/base/song.cpp +++ b/src/base/song.cpp @@ -108,7 +108,7 @@ namespace usdx } else if (required) { LOG4CXX_ERROR(log, "Incomplete Song! Missing '" << tag << "' Tag in: '" << get_filename() << "'"); - throw MissingSongTagException("Incomplete Song! Missing Tag."); + throw MissingTagException(tag, "Incomplete Song! Missing Tag."); } return result; @@ -125,7 +125,7 @@ namespace usdx } else if (required) { LOG4CXX_ERROR(log, "Incomplete Song! Missing '" << tag << "' Tag in: '" << get_filename() << "'"); - throw MissingSongTagException("Incomplete Song! Missing Tag."); + throw MissingTagException(tag, "Incomplete Song! Missing Tag."); } return result; @@ -143,7 +143,7 @@ namespace usdx } else if (required) { LOG4CXX_ERROR(log, "Incomplete Song! Missing '" << tag << "' Tag in: '" << get_filename() << "'"); - throw MissingSongTagException("Incomplete Song! Missing Tag."); + throw MissingTagException(tag, "Incomplete Song! Missing Tag."); } return result; @@ -164,7 +164,7 @@ namespace usdx } else if (required) { LOG4CXX_ERROR(log, "Incomplete Song! Missing '" << tag << "' Tag in: '" << get_filename() << "'"); - throw MissingSongTagException("Incomplete Song! Missing Tag."); + throw MissingTagException(tag, "Incomplete Song! Missing Tag."); } return result; diff --git a/src/base/song.hpp b/src/base/song.hpp index 6009cfa9..d831a91e 100644 --- a/src/base/song.hpp +++ b/src/base/song.hpp @@ -37,11 +37,22 @@ namespace usdx { - class MissingSongTagException : public BaseException + class MissingTagException : public BaseException { + private: + /** + * TODO: Maybe refactor this to separate sub-classes. + */ + const std::string tag; + public: - MissingSongTagException(std::string message) : BaseException(message) {}; - ~MissingSongTagException () throw () {}; + MissingTagException(const std::string tag, + const std::string message) : + BaseException(message), tag(tag) {}; + + ~MissingTagException () throw () {}; + + virtual const std::string& get_tag() const { return tag; }; }; class Song diff --git a/test/base/songloading.cpp b/test/base/songloading.cpp index b0eae877..e8fd1bde 100644 --- a/test/base/songloading.cpp +++ b/test/base/songloading.cpp @@ -35,10 +35,10 @@ namespace usdx class SongloadingTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(SongloadingTest); CPPUNIT_TEST(testSongloadingTxtHeader); - CPPUNIT_TEST_EXCEPTION(testSongloadingTxtMissingHeaderFieldArtist, MissingSongTagException); - CPPUNIT_TEST_EXCEPTION(testSongloadingTxtMissingHeaderFieldTitle, MissingSongTagException); - CPPUNIT_TEST_EXCEPTION(testSongloadingTxtMissingHeaderFieldMp3, MissingSongTagException); - CPPUNIT_TEST_EXCEPTION(testSongloadingTxtMissingHeaderFieldBpm, MissingSongTagException); + CPPUNIT_TEST_EXCEPTION(testSongloadingTxtMissingHeaderFieldArtist, MissingTagException); + CPPUNIT_TEST_EXCEPTION(testSongloadingTxtMissingHeaderFieldTitle, MissingTagException); + CPPUNIT_TEST_EXCEPTION(testSongloadingTxtMissingHeaderFieldMp3, MissingTagException); + CPPUNIT_TEST_EXCEPTION(testSongloadingTxtMissingHeaderFieldBpm, MissingTagException); CPPUNIT_TEST_SUITE_END(); private: -- cgit v1.2.3