1 package com.teamkonzept.db; 2 3 import java.sql.SQLException ; 4 import com.teamkonzept.lib.*; 5 6 12 public class DatabaseErrorAnalyzer implements ErrorAnalyzer, DatabaseErrorCodes 13 { 14 private static DatabaseErrorAnalyzer instance = null; 15 16 19 public static DatabaseErrorAnalyzer getInstance() 20 { 21 if (instance == null) 22 { 23 if (TKDBManager.getDBVendor() == QueryConstants.ORACLE) 24 { 25 instance = new OracleErrorAnalyzer(); 26 } 27 else if (TKDBManager.getDBVendor() == QueryConstants.SYBASE) 28 { 29 instance = new SybaseErrorAnalyzer(); 30 } 31 else if (TKDBManager.getDBVendor() == QueryConstants.POSTGRESQL) 32 { 33 instance = new PostgreSQLErrorAnalyzer(); 34 } 35 } 37 return instance; 38 } 39 40 protected DatabaseErrorAnalyzer() 41 {} 42 43 public TKException analyzeSQLError (SQLException e) 44 { 45 String state = e.getSQLState(); 46 47 if (state == null) 48 { 49 return new TKDatabaseException("Unbekannter Fehler",UNDEFINED, NORMAL_SEVERITY, false, e); 50 } 51 52 if (state.equals("JZ003")) 54 { 55 return new TKDatabaseException("Ihre Konfiguration ist inkorrekt",CONFIGURATION, HIGH_SEVERITY , true, e); 56 } 57 58 if (state.equals("JZ006")) 60 { 61 return new TKDatabaseException("Die Datenbank ist nicht erreichbar",CONNECTION_BROKEN, TEMPORARY_SEVERITY , true, e); 63 } 64 65 if (state.equals("ZZZZZ") || state.equals("JZ00L")) 67 { 68 return new TKDatabaseException("Ihre Konfiguration ist inkorrekt",CONFIGURATION, HIGH_SEVERITY , true, e); 69 } 70 71 if (state.equals("JZ0SJ")) 73 { 74 return new TKDatabaseException("Keine JDBC-Unterst�tzung in der DB installiert", CONFIGURATION, HIGH_SEVERITY, true, e); 75 } 76 77 if (state.equals("23000") || state.equals("23001")) 79 { 80 return new TKDatabaseException("Referentielle Integrit�t verletzt",FK_CONSTRAINT_VIOLATION, NORMAL_SEVERITY , true, e); 81 } 82 return new TKDatabaseException("Unbekannter Fehler",UNDEFINED, NORMAL_SEVERITY, false, e); 83 } 84 85 } 86
| Popular Tags
|