00001 /* -*- Mode: c++ -*- */ 00002 /* 00003 * this is part of Spm 00004 * 00005 * Copyright (c) 2005-2006 Guillaume Chevallereau 00006 * 00007 * This program is free software. You can redistribute it and/or modify it 00008 * under the terms of the GNU General Public License as published by the 00009 * Free Software Foundation. Either version 2 of the license or (at your 00010 * option) any later version. 00011 * 00012 * This program is distributed in the hope that it will be usefull but WITHOUT 00013 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00014 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 00015 * more details. 00016 * 00017 * You should have received a copy of the GNU General Public License along 00018 * with this program; if not, write to the Free Software Foundation, Inc., 00019 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 00020 */ 00021 #ifndef __CORE_EXCEPTION_H__ 00022 #define __CORE_EXCEPTION_H__ 00023 00024 //#include <exception> 00025 //#include "../exception.h" 00026 #include <util/utilException.h> 00027 00028 namespace Spm 00029 { 00030 namespace Core 00031 { 00032 class UnknownCategoryException : public Exception 00033 { 00034 public : 00035 UnknownCategoryException (const std::string & categoryName); 00036 }; 00037 00038 class UnknownBranchException : public Exception 00039 { 00040 public : 00041 UnknownBranchException (const std::string & branchName); 00042 }; 00043 00044 class UnknownElementException : public Exception 00045 { 00046 public : 00047 UnknownElementException (const std::string & elementName); 00048 }; 00049 00050 class UnknownSetException : public Exception 00051 { 00052 public : 00053 UnknownSetException (const std::string & setName); 00054 }; 00055 00056 class UnknownKeyException : public Exception 00057 { 00058 public : 00059 UnknownKeyException (const std::string & keyName); 00060 }; 00061 00062 class AlreadyExistingKeyException : public Exception 00063 { 00064 public : 00065 AlreadyExistingKeyException (const std::string & keyName); 00066 }; 00067 00068 class AlreadyExistingSetException : public Exception 00069 { 00070 public : 00071 AlreadyExistingSetException (const std::string & setName); 00072 }; 00073 00074 class AlreadyExistingBranchException : public Exception 00075 { 00076 public : 00077 AlreadyExistingBranchException (const std::string & branchName); 00078 }; 00079 00080 class AlreadyExistingDependencyException : public Exception 00081 { 00082 public : 00083 AlreadyExistingDependencyException (const std::string & dependencyName); 00084 }; 00085 00086 class AlreadyExistingCategoryException : public Exception 00087 { 00088 public : 00089 AlreadyExistingCategoryException (const std::string & categoryName); 00090 }; 00091 00092 class NoRightException : public Exception 00093 { 00094 public : 00095 NoRightException (const std::string & destination); 00096 }; 00097 00098 class FileNotFoundException : public Exception 00099 { 00100 public : 00101 FileNotFoundException (const std::string & fileName); 00102 }; 00103 00104 class DependencyException : public Exception 00105 { 00106 public : 00107 DependencyException (const std::string & packageNeeded, 00108 const std::string & packageWhoNeed); 00109 }; 00110 00111 class BadNameException : public Exception 00112 { 00113 public : 00114 BadNameException (const std::string & badName); 00115 }; 00116 } 00117 } 00118 00119 #endif