package com.github.walker.easydb.exception;
import com.github.walker.easydb.assistant.LogFactory;
import org.apache.log4j.Logger;
import java.util.HashMap;
/**
* <p>
* Locator of database error, it translates the error code of different database
* into unified error type.
* </p>
*
* @author HuQingmiao
*/
public abstract class ErrorLocator {
protected static Logger log = LogFactory.getLogger(ErrorLocator.class);
private static HashMap<String, ErrorLocator> insMap = new HashMap<String, ErrorLocator>(3);
public synchronized static ErrorLocator getInstance(String dbType) {
if (!insMap.containsKey(dbType)) {
if ("oracle".equalsIgnoreCase(dbType)) {
insMap.put(dbType, new OracleErrorLocator());
} else if ("mysql".equalsIgnoreCase(dbType)) {
insMap.put(dbType, new MysqlErrorLocator());
} else if ("db2".equalsIgnoreCase(dbType)) {
insMap.put(dbType, new DB2ErrorLocator());
} else if ("sqlserver".equalsIgnoreCase(dbType)) {
insMap.put(dbType, new SqlserverErrorLocator());
}
}
return insMap.get(dbType);
}
abstract public String getErrorMsg(int errorCode);
}