1 21 package net.sf.hajdbc.dialect; 22 23 import java.util.HashMap ; 24 import java.util.Map ; 25 26 import net.sf.hajdbc.Dialect; 27 28 32 public class DialectFactory 33 { 34 private static Map <String , Class <? extends Dialect>> dialectMap = new HashMap <String , Class <? extends Dialect>>(); 35 36 static 37 { 38 dialectMap.put("default", DefaultDialect.class); 39 dialectMap.put("db2", DB2Dialect.class); 40 dialectMap.put("derby", DerbyDialect.class); 41 dialectMap.put("firebird", DefaultDialect.class); 42 dialectMap.put("hsqldb", HSQLDBDialect.class); 43 dialectMap.put("ingres", DefaultDialect.class); 44 dialectMap.put("maxdb", MaxDBDialect.class); 45 dialectMap.put("mckoi", DefaultDialect.class); 46 dialectMap.put("mysql", MySQLDialect.class); 47 dialectMap.put("oracle", MaxDBDialect.class); 48 dialectMap.put("postgresql", PostgreSQLDialect.class); 49 } 50 51 57 public static Dialect deserialize(String id) throws Exception 58 { 59 Class <? extends Dialect> targetClass = (id != null) ? dialectMap.get(id.toLowerCase()) : DefaultDialect.class; 60 61 if (targetClass == null) 62 { 63 targetClass = Class.forName(id).asSubclass(Dialect.class); 64 } 65 66 return targetClass.newInstance(); 67 } 68 69 74 public static String serialize(Dialect dialect) 75 { 76 return dialect.getClass().getName(); 77 } 78 79 private DialectFactory() 80 { 81 } 83 } 84 | Popular Tags |