/** * Gets the (approximate) size (in bytes) of a column with a specific * {@link ColumnType}. */ private int getSize(ColumnType type) { if (type.isBinary()) { return 4 * KB; } else if (type.isBoolean()) { return 2; } else if (type.isLargeObject()) { return 4 * KB; } else if (type.isLiteral()) { return KB; } else if (type.isNumber()) { return 16; } else { return DEFAULT_COLUMN_SIZE; } } }
@Override public Class<?> getJavaEquivalentClass() { return _delegate.getJavaEquivalentClass(); }
@Override public ColumnType getExpectedColumnType(ColumnType type) { if (type.isTimeBased()) { return type; } return ColumnType.TIMESTAMP; }
private Object convert(Object value, ColumnType columnType) { if (value instanceof String && !columnType.isLiteral()) { if (columnType.isBoolean()) { return BooleanComparator.toBoolean(value); if (columnType.isNumber()) { return NumberComparator.toNumber(value); if (columnType.isTimeBased()) { final SimpleDateFormat dateFormat; if (columnType == ColumnType.DATE) {
private Object convert(final String value, final ColumnType type) { if (value == null) { return null; } if (type == null) { return value; } final Object result; if (type.isNumber()) { result = NumberComparator.toNumber(value); } else if (type.isBoolean()) { result = BooleanComparator.toBoolean(value); } else if (type.isTimeBased()) { result = TimeComparator.toDate(value); } else { result = value; } if (result == null) { throw new IllegalStateException("Failed to convert value '" + value + "' to type: " + type); } return result; }
private static boolean isLiteral(ColumnType columnType, Object operand) { if (columnType == null) { return operand instanceof String; } return columnType.isLiteral(); } }
@Override public String rewriteColumnType(ColumnType columnType, Integer columnSize) { if (columnType == ColumnType.DOUBLE) { return "FLOAT"; } if (columnType == ColumnType.BOOLEAN) { return "BIT"; } if (columnType.isLiteral() && columnSize == null) { // SQL server provides the convenient MAX parameter. If not // specified, the default size of e.g. a VARCHAR is 1! return rewriteColumnTypeInternal(columnType.getName(), "MAX"); } return super.rewriteColumnType(columnType, columnSize); }
@Override public ColumnType getExpectedColumnType(ColumnType type) { if (type.isNumber()) { return type; } return ColumnType.NUMBER; }
final int jdbcType = type.getJdbcType(); st.setNull(valueIndex, jdbcType); return; if (type != null && type.isTimeBased() && value instanceof String) { value = FormatHelper.parseSqlTime(type, (String) value); st.setObject(valueIndex, value); } else if (type.isLiteral()) { final String str; if (value instanceof Reader) {
} else if (expectedColumnType.isBoolean()) { result = BooleanComparator.toBoolean(token); } else if (expectedColumnType.isTimeBased()) { result = FormatHelper.parseSqlTime(expectedColumnType, token); } else {
final byte[] bytes = FileHelper.readAsBytes(inputStream); return bytes; } else if (type.isBinary()) { return resultSet.getBytes(columnIndex); } else if (type == ColumnType.CLOB || type == ColumnType.NCLOB) { final String result = FileHelper.readAsString(reader); return result; } else if (type.isBoolean()) { return resultSet.getBoolean(columnIndex);
@Override public ColumnType getExpectedColumnType(ColumnType type) { if (type.isBoolean()) { return type; } return ColumnType.BOOLEAN; }
@Override public String getName() { return _delegate.getName(); }
@Override public boolean isBinary() { return _delegate.isBinary(); }
@Override public int getJdbcType() throws IllegalStateException { return _delegate.getJdbcType(); } }
private Object convert(Object value, ColumnType columnType) { if (value instanceof String && !columnType.isLiteral()) { if (columnType.isBoolean()) { return BooleanComparator.toBoolean(value); if (columnType.isNumber()) { return NumberComparator.toNumber(value); if (columnType.isTimeBased()) { final SimpleDateFormat dateFormat; if (columnType == ColumnType.DATE) {
private Object convert(final String value, final ColumnType type) { if (value == null) { return null; } if (type == null) { return value; } final Object result; if (type.isNumber()) { result = NumberComparator.toNumber(value); } else if (type.isBoolean()) { result = BooleanComparator.toBoolean(value); } else if (type.isTimeBased()) { result = TimeComparator.toDate(value); } else { result = value; } if (result == null) { throw new IllegalStateException("Failed to convert value '" + value + "' to type: " + type); } return result; }