package io.ebean.config.dbplatform;
import java.sql.Types;
/**
* The known DB types that are mapped.
* <p>
* This includes extra types such as UUID, JSON, JSONB and HSTORE.
* </p>
*/
public enum DbType {
BOOLEAN(Types.BOOLEAN),
BIT(Types.BIT),
INTEGER(Types.INTEGER),
BIGINT(Types.BIGINT),
SMALLINT(Types.SMALLINT),
TINYINT(Types.TINYINT),
REAL(Types.REAL),
//FLOAT(Types.FLOAT),
DOUBLE(Types.DOUBLE),
DECIMAL(Types.DECIMAL),
VARCHAR(Types.VARCHAR),
CHAR(Types.CHAR),
BLOB(Types.BLOB),
CLOB(Types.CLOB),
LONGVARBINARY(Types.LONGVARBINARY),
LONGVARCHAR(Types.LONGVARCHAR),
VARBINARY(Types.VARBINARY),
BINARY(Types.BINARY),
DATE(Types.DATE),
TIME(Types.TIME),
TIMESTAMP(Types.TIMESTAMP),
ARRAY(Types.ARRAY),
UUID(ExtraDbTypes.UUID),
POINT(ExtraDbTypes.POINT),
POLYGON(ExtraDbTypes.POLYGON),
LINESTRING(ExtraDbTypes.LINESTRING),
MULTIPOINT(ExtraDbTypes.MULTIPOINT),
MULTILINESTRING(ExtraDbTypes.MULTILINESTRING),
MULTIPOLYGON(ExtraDbTypes.MULTIPOLYGON),
HSTORE(ExtraDbTypes.HSTORE),
JSON(ExtraDbTypes.JSON),
JSONB(ExtraDbTypes.JSONB),
JSONCLOB(ExtraDbTypes.JSONClob),
JSONBLOB(ExtraDbTypes.JSONBlob),
JSONVARCHAR(ExtraDbTypes.JSONVarchar);
private final int id;
DbType(int id) {
this.id = id;
}
/**
* Return the JDBC java.sql.Types value.
*/
public int id() {
return id;
}
/**
* Create a platform type without scale or precision.
*/
public DbPlatformType createPlatformType() {
return new DbPlatformType(name().toLowerCase());
}
}