IllegalArgumentException.cpp

Go to the documentation of this file.
00001 // IllegalArgumentException.cpp: implementation of the IllegalArgumentException class.
00002 //
00004 
00005 #ifdef WIN32 
00006 #pragma warning(disable:4786)
00007 #endif
00008 #include "IllegalArgumentException.h"
00009 
00011 // Construction/Destruction
00013 
00015 //##ModelId=43834AC002DB
00016 IllegalArgumentException::IllegalArgumentException() throw()
00017 {
00018 
00019 }
00020 
00022 IllegalArgumentException::~IllegalArgumentException() throw()
00023 {
00024 
00025 }
00026 
00027 /*///This constructor requires 4 parameters :
00032 IllegalArgumentException::IllegalArgumentException(std::string sElementName,long iIndex,long iIndexMin,long iIndexMax) throw() : _sElementName(sElementName),_iIndex(iIndex),_iIndexMin(iIndexMin),_iIndexMax(iIndexMax)
00033 {               
00034                 setLineNumber(0);
00035                 setFileName("");
00036                 setType("IllegalArgumentException");
00037 
00038                 setOrigin("");  
00039                 setDescription(makeDescription());
00040                 setReason(makeReason());
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 

Generated on Fri Jul 10 10:31:54 2009 for Utils Library by  doxygen 1.4.5