00001 /* -*- Mode: c++ -*- */ 00002 /* 00003 * this is part of Spm 00004 * 00005 * Copyright (c) 2005-2008 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 <util/utilException.h> 00025 00026 namespace Spm 00027 { 00028 namespace Core 00029 { 00030 class UnknownCategoryException : public Exception 00031 { 00032 public : 00033 UnknownCategoryException (const miniXml::ustring & categoryName); 00034 }; 00035 00036 class UnknownBranchException : public Exception 00037 { 00038 public : 00039 UnknownBranchException (const miniXml::ustring & elementName, 00040 const miniXml::ustring & branchName); 00041 UnknownBranchException (const miniXml::ustring & branchName); 00042 }; 00043 00044 class UnknownElementException : public Exception 00045 { 00046 public : 00047 UnknownElementException (const miniXml::ustring & elementName); 00048 }; 00049 00050 class UnknownSetException : public Exception 00051 { 00052 public : 00053 UnknownSetException (const miniXml::ustring & setName); 00054 }; 00055 00056 class AlreadyExistingSetException : public Exception 00057 { 00058 public : 00059 AlreadyExistingSetException (const miniXml::ustring & setName); 00060 }; 00061 00062 class AlreadyExistingBranchException : public Exception 00063 { 00064 public : 00065 AlreadyExistingBranchException (const miniXml::ustring & branchName); 00066 }; 00067 00068 class AlreadyExistingDependencyException : public Exception 00069 { 00070 public : 00071 AlreadyExistingDependencyException (const miniXml::ustring & installed, 00072 const miniXml::ustring & depend); 00073 }; 00074 00075 class AlreadyExistingCategoryException : public Exception 00076 { 00077 public : 00078 AlreadyExistingCategoryException (const miniXml::ustring & categoryName); 00079 }; 00080 00081 class NoRightException : public Exception 00082 { 00083 public : 00084 NoRightException (const miniXml::ustring & destination); 00085 }; 00086 00087 class FileNotFoundException : public Exception 00088 { 00089 public : 00090 FileNotFoundException (const miniXml::ustring & fileName); 00091 }; 00092 00093 class DependencyException : public Exception 00094 { 00095 public : 00096 DependencyException (const miniXml::ustring & packageNeeded, 00097 const miniXml::ustring & packageWhoNeed); 00098 }; 00099 00100 class BadNameException : public Exception 00101 { 00102 public : 00103 BadNameException (const miniXml::ustring & badName); 00104 }; 00105 00106 class UnknownInstalledVersion : public Exception 00107 { 00108 public: 00109 UnknownInstalledVersion (const miniXml::ustring & package, 00110 const miniXml::ustring & version, 00111 const miniXml::ustring & path); 00112 UnknownInstalledVersion (const miniXml::ustring & package, 00113 const miniXml::ustring & version); 00114 }; 00115 00116 00117 class NoDependencyException : public Exception 00118 { 00119 public: 00120 NoDependencyException(const miniXml::ustring & package); 00121 }; 00122 00123 class UnknownRepositeryException : public Exception 00124 { 00125 public: 00126 UnknownRepositeryException (const miniXml::ustring & repo); 00127 UnknownRepositeryException (); 00128 }; 00129 00130 class AlreadyExistingRepositeryException : public Exception 00131 { 00132 public: 00133 AlreadyExistingRepositeryException (const miniXml::ustring & repo); 00134 }; 00135 00136 class UnknownVersionnedException : public Exception 00137 { 00138 public: 00139 UnknownVersionnedException (const miniXml::ustring & version, 00140 const miniXml::ustring & parent); 00141 }; 00142 } 00143 } 00144 00145 #endif