1 /* 2 Copyright (c) 2008-2009 NetAllied Systems GmbH 3 4 This file is part of COLLADASaxFrameworkLoader. 5 6 Licensed under the MIT Open Source License, 7 for details please see LICENSE file or the website 8 http://www.opensource.org/licenses/mit-license.php 9 */ 10 11 #include "COLLADASaxFWLStableHeaders.h" 12 #include "COLLADASaxFWLSaxFWLError.h" 13 14 15 #define ERRORTYPE2STRING(typename) case typename: errorMessage << #typename; break; 16 17 namespace COLLADASaxFWL 18 { 19 20 //------------------------------ SaxFWLError(ErrorType errorType,String errorMessage,IError::Severity severity)21 SaxFWLError::SaxFWLError( ErrorType errorType, String errorMessage, IError::Severity severity ) 22 : mErrorType(errorType) 23 , mSeverity(severity) 24 , mErrorMessage(errorMessage) 25 , mLineNumber(0) 26 , mColumnNumber(0) 27 { 28 } 29 30 //------------------------------ ~SaxFWLError()31 SaxFWLError::~SaxFWLError() 32 { 33 } 34 35 //------------------------------ getFullErrorMessage() const36 String SaxFWLError::getFullErrorMessage() const 37 { 38 std::stringstream errorMessage; 39 if ( mSeverity == IError::SEVERITY_CRITICAL ) 40 errorMessage << "Critical error: "; 41 else 42 errorMessage << "Error: "; 43 44 45 switch ( mErrorType ) 46 { 47 ERRORTYPE2STRING(ERROR_UNRESOLVED_REFERENCE); 48 ERRORTYPE2STRING(ERROR_UNRESOLVED_FORMULA); 49 ERRORTYPE2STRING(ERROR_UNRESOLVED_PARAMETER); 50 ERRORTYPE2STRING(ERROR_PARAMETER_COUNT_DOESNOT_MATCH); 51 ERRORTYPE2STRING(ERROR_DATA_NOT_VALID); 52 default: 53 COLLADABU_ASSERT(false); 54 } 55 56 errorMessage << ": "; 57 58 if ( mLineNumber > 0) 59 errorMessage << " Line: " << mLineNumber; 60 61 if ( mColumnNumber > 0) 62 errorMessage << " Column: " << mColumnNumber; 63 64 errorMessage << mErrorMessage ; 65 66 return errorMessage.str(); 67 } 68 69 } // namespace COLLADASaxFWL 70