package br.com.citframework.integracao.core;
import org.apache.commons.lang.StringUtils;
/**
* Enumerado de SBGDs que s�o suportados
*
* @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a>
* @since 02/10/2014
*
*/
public enum DataBase {
MYSQL(1, "mysql", "MySQL"),
MSSQLSERVER(2, "sqlserver", "Microsoft SQL Server"),
ORACLE(3, "oracle", "Oracle Database"),
POSTGRESQL(4, "postgres", "PostgreSQL");
private Integer id;
private String stringId;
private String description;
private DataBase(final int id, final String stringId, final String description) {
this.id = id;
this.stringId = stringId;
this.description = description;
}
public Integer getId() {
return id;
}
public String getStringId() {
return stringId;
}
public String getDescription() {
return description;
}
/**
* Recupera um {@link DataBase} de acordo com o id
*
* @param id
* identificador num�rico/sequencial do SGBD
* @return {@link DataBase} de acordo com o id. {@link IllegalArgumentException}, caso contr�rio
* @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a>
* @since 02/10/2014
*/
public static DataBase fromId(final Integer id) {
final DataBase[] values = DataBase.values();
for (final DataBase value : values) {
if (id.equals(value.getId())) {
return value;
}
}
throw new IllegalArgumentException(String.format("DataBase not found for Id '%s'", id));
}
/**
* Recupera um {@link DataBase} de acordo com o stringId
*
* @param stringId
* nome identificador do SGBD
* @return {@link DataBase} de acordo com o stringId. {@link IllegalArgumentException}, caso contr�rio
* @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a>
* @since 02/10/2014
*/
public static DataBase fromStringId(final String stringId) {
final DataBase[] values = DataBase.values();
for (final DataBase value : values) {
if (StringUtils.equalsIgnoreCase(stringId, value.getStringId())) {
return value;
}
}
throw new IllegalArgumentException(String.format("DataBase not found for stringId '%s'", stringId));
}
}