[#1374] Review usage of generics. Is <? extends T> really justified?
This commit is contained in:
parent
c7b295528a
commit
12b913a2d9
@ -9072,6 +9072,7 @@ SERVER = new RemoteDebuggerServer(DEBUGGER_PORT);</java>
|
||||
<h3>Quantified comparison predicates (no deprecation yet)</h3>
|
||||
<h3>Master data types have been removed</h3>
|
||||
<h3>GroupField</h3>
|
||||
<h3>? extends T has been relaxed, e.g. for casting, Field.getType(), etc.</h3>
|
||||
|
||||
<h3>Object renames</h3>
|
||||
<ul>
|
||||
|
||||
@ -72,7 +72,7 @@ public interface DataType<T> extends Serializable {
|
||||
/**
|
||||
* Retrieve the Java type associated with this data type
|
||||
*/
|
||||
Class<? extends T> getType();
|
||||
Class<T> getType();
|
||||
|
||||
/**
|
||||
* Retrieve a Java type associated with this data type and precision/scale
|
||||
@ -82,7 +82,7 @@ public interface DataType<T> extends Serializable {
|
||||
/**
|
||||
* Retrieve the Java type associated with ARRAYs of this data type
|
||||
*/
|
||||
Class<? extends T[]> getArrayType();
|
||||
Class<T[]> getArrayType();
|
||||
|
||||
/**
|
||||
* Retrieve the data type for an ARRAY of this data type
|
||||
|
||||
@ -92,7 +92,7 @@ public interface Field<T> extends GroupField {
|
||||
/**
|
||||
* The Java type of the field.
|
||||
*/
|
||||
Class<? extends T> getType();
|
||||
Class<T> getType();
|
||||
|
||||
/**
|
||||
* The type of this field (might not be dialect-specific)
|
||||
@ -170,7 +170,7 @@ public interface Field<T> extends GroupField {
|
||||
* @see #cast(DataType)
|
||||
*/
|
||||
@Support
|
||||
<Z> Field<Z> cast(Class<? extends Z> type);
|
||||
<Z> Field<Z> cast(Class<Z> type);
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Conversion of field into a sort field
|
||||
|
||||
@ -54,7 +54,7 @@ public interface Parameter<T> extends QueryPart {
|
||||
/**
|
||||
* The Java type of the parameter.
|
||||
*/
|
||||
Class<? extends T> getType();
|
||||
Class<T> getType();
|
||||
|
||||
/**
|
||||
* The type of this parameter (might not be dialect-specific)
|
||||
|
||||
@ -57,7 +57,7 @@ public interface UDT<R extends UDTRecord<R>> extends FieldProvider, QueryPart {
|
||||
/**
|
||||
* @return The record type produced by this table
|
||||
*/
|
||||
Class<? extends R> getRecordType();
|
||||
Class<R> getRecordType();
|
||||
|
||||
/**
|
||||
* The UDT's data type as known to the database
|
||||
|
||||
@ -89,11 +89,11 @@ public abstract class AbstractDataType<T> implements DataType<T> {
|
||||
private final SQLDialect dialect;
|
||||
|
||||
private final SQLDataType<T> sqlDataType;
|
||||
private final Class<? extends T> type;
|
||||
private final Class<T> type;
|
||||
private final String castTypeName;
|
||||
private final String typeName;
|
||||
|
||||
private final Class<? extends T[]> arrayType;
|
||||
private final Class<T[]> arrayType;
|
||||
|
||||
private final boolean hasPrecisionAndScale;
|
||||
|
||||
@ -111,19 +111,19 @@ public abstract class AbstractDataType<T> implements DataType<T> {
|
||||
sqlDataTypesByType = new LinkedHashMap<Class<?>, DataType<?>>();
|
||||
}
|
||||
|
||||
protected AbstractDataType(SQLDialect dialect, SQLDataType<T> sqldatatype, Class<? extends T> type, String typeName) {
|
||||
protected AbstractDataType(SQLDialect dialect, SQLDataType<T> sqldatatype, Class<T> type, String typeName) {
|
||||
this(dialect, sqldatatype, type, typeName, typeName, false);
|
||||
}
|
||||
|
||||
protected AbstractDataType(SQLDialect dialect, SQLDataType<T> sqldatatype, Class<? extends T> type, String typeName, String castTypeName) {
|
||||
protected AbstractDataType(SQLDialect dialect, SQLDataType<T> sqldatatype, Class<T> type, String typeName, String castTypeName) {
|
||||
this(dialect, sqldatatype, type, typeName, castTypeName, false);
|
||||
}
|
||||
|
||||
protected AbstractDataType(SQLDialect dialect, SQLDataType<T> sqldatatype, Class<? extends T> type, String typeName, boolean hasPrecisionAndScale) {
|
||||
protected AbstractDataType(SQLDialect dialect, SQLDataType<T> sqldatatype, Class<T> type, String typeName, boolean hasPrecisionAndScale) {
|
||||
this(dialect, sqldatatype, type, typeName, typeName, hasPrecisionAndScale);
|
||||
}
|
||||
|
||||
protected AbstractDataType(SQLDialect dialect, SQLDataType<T> sqlDataType, Class<? extends T> type, String typeName, String castTypeName, boolean hasPrecisionAndScale) {
|
||||
protected AbstractDataType(SQLDialect dialect, SQLDataType<T> sqlDataType, Class<T> type, String typeName, String castTypeName, boolean hasPrecisionAndScale) {
|
||||
this.dialect = dialect;
|
||||
|
||||
// [#858] SQLDataTypes should reference themselves for more convenience
|
||||
@ -132,7 +132,7 @@ public abstract class AbstractDataType<T> implements DataType<T> {
|
||||
this.typeName = typeName;
|
||||
this.castTypeName = castTypeName;
|
||||
this.hasPrecisionAndScale = hasPrecisionAndScale;
|
||||
this.arrayType = (Class<? extends T[]>) Array.newInstance(type, 0).getClass();
|
||||
this.arrayType = (Class<T[]>) Array.newInstance(type, 0).getClass();
|
||||
|
||||
init();
|
||||
}
|
||||
@ -282,7 +282,7 @@ public abstract class AbstractDataType<T> implements DataType<T> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Class<? extends T> getType() {
|
||||
public final Class<T> getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
@ -297,7 +297,7 @@ public abstract class AbstractDataType<T> implements DataType<T> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Class<? extends T[]> getArrayType() {
|
||||
public final Class<T[]> getArrayType() {
|
||||
return arrayType;
|
||||
}
|
||||
|
||||
@ -426,7 +426,7 @@ public abstract class AbstractDataType<T> implements DataType<T> {
|
||||
return result;
|
||||
}
|
||||
|
||||
protected static <T> DataType<T> getDataType(SQLDialect dialect, Class<? extends T> type) {
|
||||
protected static <T> DataType<T> getDataType(SQLDialect dialect, Class<T> type) {
|
||||
|
||||
// Recurse for arrays
|
||||
if (byte[].class != type && type.isArray()) {
|
||||
|
||||
@ -133,7 +133,7 @@ abstract class AbstractField<T> extends AbstractQueryPart implements Field<T> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Class<? extends T> getType() {
|
||||
public final Class<T> getType() {
|
||||
return dataType.getType();
|
||||
}
|
||||
|
||||
@ -160,7 +160,7 @@ abstract class AbstractField<T> extends AbstractQueryPart implements Field<T> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <Z> Field<Z> cast(Class<? extends Z> type) {
|
||||
public final <Z> Field<Z> cast(Class<Z> type) {
|
||||
return cast(SQLDataType.getDataType(null, type));
|
||||
}
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@ class DefaultDataType<T> extends AbstractDataType<T> {
|
||||
*/
|
||||
private static final long serialVersionUID = -2612295936942892367L;
|
||||
|
||||
DefaultDataType(SQLDialect dialect, Class<? extends T> type, String typeName, String castTypeName) {
|
||||
DefaultDataType(SQLDialect dialect, Class<T> type, String typeName, String castTypeName) {
|
||||
super(dialect, null, type, typeName, castTypeName);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1196,7 +1196,7 @@ public class Factory {
|
||||
* @return The cast field
|
||||
*/
|
||||
@Support
|
||||
public static <T> Field<T> cast(Object value, Class<? extends T> type) {
|
||||
public static <T> Field<T> cast(Object value, Class<T> type) {
|
||||
return val(value, type).cast(type);
|
||||
}
|
||||
|
||||
@ -1233,7 +1233,7 @@ public class Factory {
|
||||
* @return The cast field
|
||||
*/
|
||||
@Support
|
||||
public static <T> Field<T> castNull(Class<? extends T> type) {
|
||||
public static <T> Field<T> castNull(Class<T> type) {
|
||||
return NULL().cast(type);
|
||||
}
|
||||
|
||||
@ -1246,7 +1246,7 @@ public class Factory {
|
||||
* @return The cast fields
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
static <T> Field<T>[] castAll(Class<? extends T> type, Field<?>... fields) {
|
||||
static <T> Field<T>[] castAll(Class<T> type, Field<?>... fields) {
|
||||
Field<?>[] castFields = new Field<?>[fields.length];
|
||||
|
||||
for (int i = 0; i < fields.length; i++) {
|
||||
@ -4449,7 +4449,7 @@ public class Factory {
|
||||
* @see #param(String, Object)
|
||||
*/
|
||||
@Support
|
||||
public static <T> Param<T> param(String name, Class<? extends T> type) {
|
||||
public static <T> Param<T> param(String name, Class<T> type) {
|
||||
return param(name, SQLDataType.getDataType(null, type));
|
||||
}
|
||||
|
||||
@ -4503,7 +4503,7 @@ public class Factory {
|
||||
* @see #val(Object, Class)
|
||||
*/
|
||||
@Support
|
||||
public static <T> Field<T> value(Object value, Class<? extends T> type) {
|
||||
public static <T> Field<T> value(Object value, Class<T> type) {
|
||||
return val(value, type);
|
||||
}
|
||||
|
||||
@ -4611,7 +4611,7 @@ public class Factory {
|
||||
* @see #val(Object, Class)
|
||||
*/
|
||||
@Support
|
||||
public static <T> Param<T> inline(Object value, Class<? extends T> type) {
|
||||
public static <T> Param<T> inline(Object value, Class<T> type) {
|
||||
// [#1309] TODO, make this type-safe
|
||||
Param<T> val = (Param<T>) val(value, type);
|
||||
val.setInline(true);
|
||||
@ -4714,7 +4714,7 @@ public class Factory {
|
||||
* @see #val(Object, DataType)
|
||||
*/
|
||||
@Support
|
||||
public static <T> Field<T> val(Object value, Class<? extends T> type) {
|
||||
public static <T> Field<T> val(Object value, Class<T> type) {
|
||||
return val(value, getDataType(type));
|
||||
}
|
||||
|
||||
@ -5145,7 +5145,7 @@ public class Factory {
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
@Support
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return FieldTypeHelper.getDataType(SQLDialect.SQL99, type);
|
||||
}
|
||||
|
||||
|
||||
@ -118,7 +118,7 @@ public final class FieldTypeHelper {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T> T getFromSQLInput(Configuration configuration, SQLInput stream, Field<T> field) throws SQLException {
|
||||
Class<? extends T> type = field.getType();
|
||||
Class<T> type = field.getType();
|
||||
DataType<T> dataType = field.getDataType();
|
||||
|
||||
if (type == Blob.class) {
|
||||
@ -229,12 +229,10 @@ public final class FieldTypeHelper {
|
||||
}
|
||||
|
||||
public static <T> void writeToSQLOutput(SQLOutput stream, Field<T> field, T value) throws SQLException {
|
||||
Class<? extends T> type = field.getType();
|
||||
|
||||
writeToSQLOutput(stream, type, field.getDataType(), value);
|
||||
writeToSQLOutput(stream, field.getType(), field.getDataType(), value);
|
||||
}
|
||||
|
||||
private static <T> void writeToSQLOutput(SQLOutput stream, Class<? extends T> type, DataType<T> dataType, T value) throws SQLException {
|
||||
private static <T> void writeToSQLOutput(SQLOutput stream, Class<T> type, DataType<T> dataType, T value) throws SQLException {
|
||||
if (value == null) {
|
||||
stream.writeObject(null);
|
||||
}
|
||||
@ -376,7 +374,7 @@ public final class FieldTypeHelper {
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private static <T> T getFromResultSet(ExecuteContext ctx, Class<? extends T> type, int index)
|
||||
private static <T> T getFromResultSet(ExecuteContext ctx, Class<T> type, int index)
|
||||
throws SQLException {
|
||||
|
||||
ResultSet rs = ctx.resultSet();
|
||||
@ -390,7 +388,7 @@ public final class FieldTypeHelper {
|
||||
else if (type == BigInteger.class) {
|
||||
// The SQLite JDBC driver doesn't support BigDecimals
|
||||
if (ctx.getDialect() == SQLDialect.SQLITE) {
|
||||
return Convert.convert(rs.getString(index), (Class<? extends T>) BigInteger.class);
|
||||
return Convert.convert(rs.getString(index), (Class<T>) BigInteger.class);
|
||||
}
|
||||
else {
|
||||
BigDecimal result = rs.getBigDecimal(index);
|
||||
@ -400,7 +398,7 @@ public final class FieldTypeHelper {
|
||||
else if (type == BigDecimal.class) {
|
||||
// The SQLite JDBC driver doesn't support BigDecimals
|
||||
if (ctx.getDialect() == SQLDialect.SQLITE) {
|
||||
return Convert.convert(rs.getString(index), (Class<? extends T>) BigDecimal.class);
|
||||
return Convert.convert(rs.getString(index), (Class<T>) BigDecimal.class);
|
||||
}
|
||||
else {
|
||||
return (T) rs.getBigDecimal(index);
|
||||
@ -663,7 +661,7 @@ public final class FieldTypeHelper {
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private static <T> T getEnumType(Class<? extends T> type, String literal) throws SQLException {
|
||||
private static <T> T getEnumType(Class<T> type, String literal) throws SQLException {
|
||||
try {
|
||||
Object[] list = (Object[]) type.getMethod("values").invoke(type);
|
||||
|
||||
@ -683,7 +681,7 @@ public final class FieldTypeHelper {
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T> T getFromStatement(ExecuteContext ctx, Class<? extends T> type, int index) throws SQLException {
|
||||
public static <T> T getFromStatement(ExecuteContext ctx, Class<T> type, int index) throws SQLException {
|
||||
CallableStatement stmt = (CallableStatement) ctx.statement();
|
||||
|
||||
if (type == Blob.class) {
|
||||
@ -882,7 +880,7 @@ public final class FieldTypeHelper {
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(SQLDialect dialect, Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(SQLDialect dialect, Class<T> type) {
|
||||
switch (dialect) {
|
||||
case ASE:
|
||||
return ASEDataType.getDataType(type);
|
||||
@ -931,7 +929,7 @@ public final class FieldTypeHelper {
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private static <T> T pgFromString(Class<? extends T> type, String string) throws SQLException {
|
||||
private static <T> T pgFromString(Class<T> type, String string) throws SQLException {
|
||||
if (string == null) {
|
||||
return null;
|
||||
}
|
||||
@ -1055,7 +1053,7 @@ public final class FieldTypeHelper {
|
||||
* Workarounds for the unimplemented Postgres JDBC driver features
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
private static <T> T pgGetArray(ExecuteContext ctx, Class<? extends T> type, int index)
|
||||
private static <T> T pgGetArray(ExecuteContext ctx, Class<T> type, int index)
|
||||
throws SQLException {
|
||||
|
||||
ResultSet rs = ctx.resultSet();
|
||||
|
||||
@ -77,7 +77,7 @@ class ParameterImpl<T> extends AbstractQueryPart implements Parameter<T> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Class<? extends T> getType() {
|
||||
public final Class<T> getType() {
|
||||
return type.getType();
|
||||
}
|
||||
|
||||
|
||||
@ -327,11 +327,11 @@ public final class SQLDataType<T> extends AbstractDataType<T> {
|
||||
} catch (Exception ignore) {}
|
||||
}
|
||||
|
||||
private SQLDataType(Class<? extends T> type, String typeName) {
|
||||
private SQLDataType(Class<T> type, String typeName) {
|
||||
this(type, typeName, false);
|
||||
}
|
||||
|
||||
private SQLDataType(Class<? extends T> type, String typeName, boolean hasPrecisionAndScale) {
|
||||
private SQLDataType(Class<T> type, String typeName, boolean hasPrecisionAndScale) {
|
||||
super(null, null, type, typeName, hasPrecisionAndScale);
|
||||
}
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@ public class UDTImpl<R extends UDTRecord<R>> extends AbstractFieldProviderQueryP
|
||||
* parameter <R> for other types than {@link Record}
|
||||
*/
|
||||
@Override
|
||||
public Class<? extends R> getRecordType() {
|
||||
public Class<R> getRecordType() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
@ -549,7 +549,8 @@ final class Utils {
|
||||
result.add((QueryPart) substitute);
|
||||
}
|
||||
else {
|
||||
Class<?> type = substitute != null ? substitute.getClass() : Object.class;
|
||||
@SuppressWarnings("unchecked")
|
||||
Class<Object> type = (Class<Object>) (substitute != null ? substitute.getClass() : Object.class);
|
||||
result.add(new Val<Object>(substitute, Factory.getDataType(type)));
|
||||
}
|
||||
}
|
||||
|
||||
@ -122,7 +122,7 @@ public class ASEDataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.ASE, sqlDataType, sqlDataType.getType(), typeName);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.ASE, type);
|
||||
}
|
||||
|
||||
|
||||
@ -141,7 +141,7 @@ public class CUBRIDDataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.CUBRID, sqlDataType, sqlDataType.getType(), typeName, castTypeName);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.CUBRID, type);
|
||||
}
|
||||
|
||||
|
||||
@ -122,7 +122,7 @@ public class DB2DataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.DB2, sqlDataType, sqlDataType.getType(), typeName, castTypeName);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.DB2, type);
|
||||
}
|
||||
|
||||
|
||||
@ -135,7 +135,7 @@ public class DerbyDataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.DERBY, sqlDataType, sqlDataType.getType(), typeName, castName);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.DERBY, type);
|
||||
}
|
||||
|
||||
|
||||
@ -127,7 +127,7 @@ public class FirebirdDataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.FIREBIRD, sqlDataType, sqlDataType.getType(), typeName, castTypeName);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.FIREBIRD, type);
|
||||
}
|
||||
|
||||
|
||||
@ -148,7 +148,7 @@ public class H2DataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.H2, sqlDataType, sqlDataType.getType(), typeName);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.H2, type);
|
||||
}
|
||||
|
||||
|
||||
@ -135,7 +135,7 @@ public class HSQLDBDataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.HSQLDB, sqlDataType, sqlDataType.getType(), typeName, castTypeName);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.HSQLDB, type);
|
||||
}
|
||||
|
||||
|
||||
@ -146,7 +146,7 @@ public class IngresDataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.INGRES, sqlDataType, sqlDataType.getType(), typeName, castTypeName);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.INGRES, type);
|
||||
}
|
||||
|
||||
|
||||
@ -136,7 +136,7 @@ public class MySQLDataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.MYSQL, sqlDataType, sqlDataType.getType(), typeName, castTypeName);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.MYSQL, type);
|
||||
}
|
||||
|
||||
|
||||
@ -157,7 +157,7 @@ public class OracleDataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.ORACLE, sqlDataType, sqlDataType.getType(), typeName, castTypeName, hasPrecisionAndScale);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.ORACLE, type);
|
||||
}
|
||||
|
||||
|
||||
@ -153,7 +153,7 @@ public class PostgresDataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.POSTGRES, sqlDataType, sqlDataType.getType(), typeName);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.POSTGRES, type);
|
||||
}
|
||||
|
||||
|
||||
@ -121,7 +121,7 @@ public class SQLiteDataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.SQLITE, sqlDataType, sqlDataType.getType(), typeName);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.SQLITE, type);
|
||||
}
|
||||
|
||||
|
||||
@ -124,7 +124,7 @@ public class SQLServerDataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.SQLSERVER, sqlDataType, sqlDataType.getType(), typeName, castTypeName);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.SQLSERVER, type);
|
||||
}
|
||||
|
||||
|
||||
@ -122,7 +122,7 @@ public class SybaseDataType<T> extends AbstractDataType<T> {
|
||||
super(SQLDialect.SYBASE, sqlDataType, sqlDataType.getType(), typeName);
|
||||
}
|
||||
|
||||
public static <T> DataType<T> getDataType(Class<? extends T> type) {
|
||||
public static <T> DataType<T> getDataType(Class<T> type) {
|
||||
return getDataType(SQLDialect.SYBASE, type);
|
||||
}
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@ public final class TestDataType<T> extends AbstractDataType<T> {
|
||||
public static final DataType<String> STRING_TYPE = new TestDataType<String>(String.class);
|
||||
public static final DataType<Date> DATE_TYPE = new TestDataType<Date>(Date.class);
|
||||
|
||||
protected TestDataType(Class<? extends T> type) {
|
||||
protected TestDataType(Class<T> type) {
|
||||
super(SQLDialect.ORACLE, null, type, type.getSimpleName());
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user