00001
00002
00004
00005 #ifdef WIN32
00006 #pragma warning(disable:4786)
00007 #endif
00008 #include "IllegalArgumentException.h"
00009
00011
00013
00015
00016 IllegalArgumentException::IllegalArgumentException() throw()
00017 {
00018
00019 }
00020
00022 IllegalArgumentException::~IllegalArgumentException() throw()
00023 {
00024
00025 }
00026
00027
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00053 IllegalArgumentException::IllegalArgumentException(std::string sElementName,
00054 std::string sOrigin,
00055 std::string sFileName,
00056 unsigned int iLineNumber,
00057 double dIndex,
00058 long iNumberOfArguments,
00059 ...) :
00060 _sElementName(sElementName),_dIndex(dIndex),_iNbArguments(iNumberOfArguments)
00061 {
00062
00063 va_list arg_list;
00064 va_start (arg_list,iNumberOfArguments);
00065
00066 for (int i=0;i<=_iNbArguments;i++)
00067 {
00068 double dVal = va_arg(arg_list,double);
00069 _vArgumentsList.push_back(dVal);
00070 }
00071 va_end (arg_list);
00072
00073 setLineNumber(iLineNumber);
00074 setFileName(sFileName);
00075 setType("IllegalArgumentException");
00076
00077 setDescription(makeDescription());
00078 setReason(makeReason());
00079 setOrigin(makeOrigin(sOrigin));
00080 }
00081
00082
00084 std::string IllegalArgumentException::makeDescription()
00085 {
00086 std::string sExceptionMessage = "The value entered ";
00087 sExceptionMessage += dtos(_dIndex);
00088 sExceptionMessage += " of the ";
00089 sExceptionMessage += _sElementName;
00090 sExceptionMessage += " variable must be one of the following values [" ;
00091
00092 for (int i=0;i<_iNbArguments-1;i++)
00093 {
00094 sExceptionMessage += dtos(_vArgumentsList[i]);
00095 sExceptionMessage += ";";
00096 }
00097
00098 sExceptionMessage += dtos(_vArgumentsList[_iNbArguments-1]);
00099 sExceptionMessage += "]";
00100
00101 return sExceptionMessage;
00102 }
00103
00105 std::string IllegalArgumentException::makeReason()
00106 {
00107 std::string sReasonMessage = "ILLEGAL_ARGUMENT --> ";
00108 sReasonMessage+= getType();
00109
00110 return sReasonMessage;
00111 }
00112
00114 std::string IllegalArgumentException::makeOrigin(std::string sOrigin)
00115 {
00116 std::string sOriginMessage = getFileName();
00117 sOriginMessage+= " (l:";
00118 sOriginMessage+= ltos(getLineNumber());
00119 sOriginMessage+= ") ";
00120 sOriginMessage+= sOrigin;
00121
00122 return sOriginMessage;
00123 }
00124