001: /*
002: * Wilos Is a cLever process Orchestration Software - http://www.wilos-project.org
003: * Copyright (C) 2006-2007 Paul Sabatier University, IUP ISI (Toulouse, France) <massie@irit.fr>
004: *
005: * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
006: * General Public License as published by the Free Software Foundation; either version 2 of the License,
007: * or (at your option) any later version.
008: *
009: * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
010: * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
011: * GNU General Public License for more details.
012: *
013: * You should have received a copy of the GNU General Public License along with this program; if not,
014: * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
015: */
016:
017: package wilos.utils;
018:
019: import org.apache.commons.logging.Log;
020: import org.apache.commons.logging.LogFactory;
021: import org.hibernate.StaleObjectStateException;
022: import org.hibernate.exception.ConstraintViolationException;
023: import org.springframework.dao.DataAccessException;
024: import org.springframework.dao.DataIntegrityViolationException;
025:
026: /**
027: * @author Sebastien
028: *
029: * Cette classe permet de g�rer les exceptions
030: *
031: */
032: public class ExceptionManager {
033:
034: private static ExceptionManager instance = null;
035:
036: protected final Log logger = LogFactory.getLog(this .getClass());
037:
038: /**
039: * Default constructor
040: */
041: private ExceptionManager() {
042: }
043:
044: /**
045: * Get the current instance of the singleton
046: *
047: * @return Exception manager instance
048: */
049: public static ExceptionManager getInstance() {
050: if (ExceptionManager.instance == null) {
051: ExceptionManager.instance = new ExceptionManager();
052: }
053: return ExceptionManager.instance;
054: }
055:
056: // DAO
057:
058: /**
059: *
060: * Manage the DataIntegrityViolationException type
061: *
062: * @param _s Name of the class which raise the exception
063: * @param _e Exception
064: */
065: public void manageDataIntegrityViolationException(String _s,
066: String _fonction, DataIntegrityViolationException _e) {
067: logger.error("### ExceptionManager -> " + _s
068: + " raises DataIntegrityViolationException in "
069: + _fonction + " ###");
070: _e.printStackTrace();
071: }
072:
073: /**
074: *
075: * Manage the DataIntegrityViolationException type
076: *
077: * @param _s Name of the class which raise the exception
078: * @param _e Exception
079: */
080: public void manageStaleObjectStateException(String _s,
081: String _fonction, StaleObjectStateException _e) {
082: logger.error("### ExceptionManager -> " + _s
083: + " raises StaleObjectStateException in " + _fonction
084: + " ###");
085: //_e.printStackTrace();
086: }
087:
088: /**
089: *
090: * Manage the DataIntegrityViolationException type
091: *
092: * @param _s Name of the class which raise the exception
093: * @param _e Exception
094: */
095: public void manageConstraintViolationException(String _s,
096: String _fonction, ConstraintViolationException _e) {
097: logger.error("### ExceptionManager -> " + _s
098: + " raises ConstraintViolationException in "
099: + _fonction + " ###");
100: _e.printStackTrace();
101: }
102:
103: /**
104: *
105: * Manage the DataAccessException type
106: *
107: * @param _s Name of the class which raise the exception
108: * @param _e Exception
109: */
110: public void manageDataAccessException(String _s, String _fonction,
111: DataAccessException _e) {
112: logger.fatal("### ExceptionManager -> " + _s
113: + " raises DataAccessException in " + _fonction
114: + " ###");
115: _e.printStackTrace();
116: }
117: }
|