#region Apache Notice /***************************************************************************** * $Header: $ * $Revision$ * $Date$ * * iBATIS.NET Data Mapper * Copyright (C) 2004 - Gilles Bayon * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ********************************************************************************/ #endregion #region Using using System; using System.Text; #endregion namespace IBatisNet.DataAccess.Scope { /// /// An error context to help us create meaningful error messages. /// public class ErrorContext { #region Fields private string _resource; private string _activity; private string _objectId; private string _moreInfo; private Exception _cause; #endregion #region Properties /// /// The resource causing the problem /// public string Resource { get { return _resource; } set { _resource = value; } } /// /// The activity that was happening when the error happened /// public string Activity { get { return _activity; } set { _activity = value; } } /// /// The object ID where the problem happened /// public string ObjectId { get { return _objectId; } set { _objectId = value; } } /// /// More information about the error /// public string MoreInfo { get { return _moreInfo; } set { _moreInfo = value; } } /// /// The cause of the error /// public Exception Cause { get { return _cause; } set { _cause = value; } } #endregion #region Methods /// /// Clear the error context /// public void Reset() { _resource = string.Empty; _activity = string.Empty; _objectId = string.Empty; _moreInfo = string.Empty; _cause = null; } /// /// ToString method for ErrorContext /// /// public override string ToString() { StringBuilder message = new StringBuilder(); // activity if (_activity != null && _activity.Length > 0) { message.Append("\n- The error occurred while "); message.Append(_activity); message.Append("."); } // more info if (_moreInfo != null && _moreInfo.Length > 0) { message.Append("\n- "); message.Append(_moreInfo); } // resource if (_resource != null && _resource.Length > 0) { message.Append("\n- The error occurred in "); message.Append(_resource); message.Append("."); } // object if (_objectId != null && _objectId.Length > 0) { message.Append(" \n- Check the "); message.Append(_objectId); message.Append("."); } // cause if (_cause != null) { message.Append("\n- Cause: "); message.Append(_cause.ToString()); } return message.ToString(); } #endregion } }