WellKnownSqlDialects.java

package eu.javaexperience.database.pojodb.dialect;

import java.sql.Connection;

public enum WellKnownSqlDialects
{
	MySql(new MysqlDialect()),
	PostgreSql(null),
	SqLite(new SqliteDialect())
	
	;
	
	private final SqlDialect dialect;
	
	private WellKnownSqlDialects(SqlDialect dial)
	{
		this.dialect = dial;
	}
	
	public SqlDialect getDialectManager()
	{
		return dialect;
	}
	
	public static WellKnownSqlDialects recognise(Connection conn)
	{
		for(WellKnownSqlDialects v:values())
		{
			try
			{
				if(v.dialect.probeDialect(conn))
				{
					return v;
				}
			}
			catch(Exception e)
			{
				
			}
		}
		
		throw new RuntimeException("Can't recognise Sql dialect of connection: "+conn);
	}
}