package cn.dreampie.orm.dialect; import cn.dreampie.orm.exception.DBException; import java.util.HashMap; import java.util.Map; /** * Created by wangrenhui on 14/12/31. */ public class DialectFactory { private static Map<String, Dialect> dialectMap = new HashMap<String, Dialect>() {{ put("h2", new H2Dialect()); put("mssql", new MSSQLDialect()); put("mysql", new MySQLDialect()); put("oracle", new OracleDialect()); put("postgreSQL", new PostgreSQLDialect()); put("sqlite", new SQLiteDialect()); }}; public static Map<String, Dialect> getDialectMap() { return dialectMap; } public static void setDialectMap(Map<String, Dialect> dialectMap) { DialectFactory.dialectMap = dialectMap; } public static Dialect get(String dialectName) { Dialect dialect = dialectMap.get(dialectName); if (dialect == null) { throw new DBException("Dialect could not found for name " + dialectName + ".only support like this:" + dialectMap.keySet().toString()); } return dialect; } public static void addDialectMap(Map<String, Dialect> dialectMap) { DialectFactory.dialectMap.putAll(dialectMap); } public static void addDialect(String dialectName, Dialect dialect) { DialectFactory.dialectMap.put(dialectName, dialect); } }