#2105 - Refactor extract interface DataBinder from DataBind

This commit is contained in:
rob bygrave
2020-11-19 14:52:19 +13:00
parent 29345c823e
commit 0bfb6895ad
72 changed files with 558 additions and 440 deletions
@@ -20,7 +20,7 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class DataBind {
public class DataBind implements DataBinder {
private static final Logger log = LoggerFactory.getLogger(DataBind.class);
@@ -42,51 +42,52 @@ public class DataBind {
this.connection = connection;
}
/**
* Append an entry to the bind log.
*/
@Override
public StringBuilder append(Object entry) {
return bindLog.append(entry);
}
/**
* Return the bind log.
*/
@Override
public StringBuilder log() {
return bindLog;
}
/**
* Close the underlying prepared statement.
*/
@Override
public void close() throws SQLException {
pstmt.close();
}
@Override
public int currentPos() {
return pos;
}
@Override
public void setObject(Object value) throws SQLException {
pstmt.setObject(++pos, value);
}
@Override
public void setObject(Object value, int sqlType) throws SQLException {
pstmt.setObject(++pos, value, sqlType);
}
@Override
public void setNull(int jdbcType) throws SQLException {
pstmt.setNull(++pos, jdbcType);
}
@Override
public int nextPos() {
return ++pos;
}
@Override
public void decrementPos() {
--pos;
}
@Override
public int executeUpdate() throws SQLException {
try {
return pstmt.executeUpdate();
@@ -108,38 +109,47 @@ public class DataBind {
}
}
@Override
public PreparedStatement getPstmt() {
return pstmt;
}
@Override
public void setString(String s) throws SQLException {
pstmt.setString(++pos, s);
}
@Override
public void setInt(int i) throws SQLException {
pstmt.setInt(++pos, i);
}
@Override
public void setLong(long i) throws SQLException {
pstmt.setLong(++pos, i);
}
@Override
public void setShort(short i) throws SQLException {
pstmt.setShort(++pos, i);
}
@Override
public void setFloat(float i) throws SQLException {
pstmt.setFloat(++pos, i);
}
@Override
public void setDouble(double i) throws SQLException {
pstmt.setDouble(++pos, i);
}
@Override
public void setBigDecimal(BigDecimal v) throws SQLException {
pstmt.setBigDecimal(++pos, v);
}
@Override
public void setDate(java.sql.Date v) throws SQLException {
Calendar timeZone = dataTimeZone.getDateTimeZone();
if (timeZone != null) {
@@ -149,6 +159,7 @@ public class DataBind {
}
}
@Override
public void setTimestamp(Timestamp v) throws SQLException {
Calendar timeZone = dataTimeZone.getTimeZone();
if (timeZone != null) {
@@ -158,6 +169,7 @@ public class DataBind {
}
}
@Override
public void setTime(Time v) throws SQLException {
Calendar timeZone = dataTimeZone.getTimeZone();
if (timeZone != null) {
@@ -167,30 +179,32 @@ public class DataBind {
}
}
@Override
public void setBoolean(boolean v) throws SQLException {
pstmt.setBoolean(++pos, v);
}
@Override
public void setBytes(byte[] v) throws SQLException {
pstmt.setBytes(++pos, v);
}
@Override
public void setByte(byte v) throws SQLException {
pstmt.setByte(++pos, v);
}
@Override
public void setChar(char v) throws SQLException {
pstmt.setString(++pos, String.valueOf(v));
}
/**
* Return any inputStreams that have been bound (and should be closed).
* This is used for batched statement execution only.
*/
@Override
public List<InputStream> getInputStreams() {
return inputStreams;
}
@Override
public void setBinaryStream(InputStream inputStream, long length) throws SQLException {
if (inputStreams == null) {
inputStreams = new ArrayList<>();
@@ -199,16 +213,19 @@ public class DataBind {
pstmt.setBinaryStream(++pos, inputStream, length);
}
@Override
public void setBlob(byte[] bytes) throws SQLException {
ByteArrayInputStream is = new ByteArrayInputStream(bytes);
pstmt.setBinaryStream(++pos, is, bytes.length);
}
@Override
public void setClob(String content) throws SQLException {
Reader reader = new StringReader(content);
pstmt.setCharacterStream(++pos, reader, content.length());
}
@Override
public void setArray(String arrayType, Object[] elements) throws SQLException {
Array array = connection.createArrayOf(arrayType, elements);
pstmt.setArray(++pos, array);
@@ -0,0 +1,166 @@
package io.ebeaninternal.server.type;
import java.io.InputStream;
import java.math.BigDecimal;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.List;
/**
* Data binder for ScalarTypes generally to an underlying PreparedStatement.
*/
public interface DataBinder {
/**
* Add something to the binding log.
*/
StringBuilder append(Object entry);
/**
* Return the binding log.
*/
StringBuilder log();
/**
* Close the underlying prepared statement.
*/
void close() throws SQLException;
/**
* Return the current position. Effectively column binding position.
*/
int currentPos();
/**
* Return the next position.
*/
int nextPos();
/**
* Decrement the position.
*/
void decrementPos();
/**
* Execute as a dml statement.
*/
int executeUpdate() throws SQLException;
/**
* Return the underlying PreparedStatement.
*/
PreparedStatement getPstmt();
/**
* Return any inputStreams that have been bound (and should be closed).
* This is used for batched statement execution only.
*/
List<InputStream> getInputStreams();
/**
* Bind an object.
*/
void setObject(Object value) throws SQLException;
/**
* Bind an object with given sql type.
*/
void setObject(Object value, int sqlType) throws SQLException;
/**
* Bind null.
*/
void setNull(int jdbcType) throws SQLException;
/**
* Bind a string value.
*/
void setString(String value) throws SQLException;
/**
* Bind a int value.
*/
void setInt(int value) throws SQLException;
/**
* Bind a long value.
*/
void setLong(long value) throws SQLException;
/**
* Bind a short value.
*/
void setShort(short value) throws SQLException;
/**
* Bind a float value.
*/
void setFloat(float value) throws SQLException;
/**
* Bind a double value.
*/
void setDouble(double value) throws SQLException;
/**
* Bind a BigDecimal value.
*/
void setBigDecimal(BigDecimal value) throws SQLException;
/**
* Bind a date value.
*/
void setDate(java.sql.Date value) throws SQLException;
/**
* Bind a timestamp value.
*/
void setTimestamp(Timestamp value) throws SQLException;
/**
* Bind a time value.
*/
void setTime(Time value) throws SQLException;
/**
* Bind a boolean value.
*/
void setBoolean(boolean value) throws SQLException;
/**
* Bind a byte array value.
*/
void setBytes(byte[] value) throws SQLException;
/**
* Bind a byte value.
*/
void setByte(byte value) throws SQLException;
/**
* Bind a char value.
*/
void setChar(char value) throws SQLException;
/**
* Bind a InputStream value.
*/
void setBinaryStream(InputStream inputStream, long length) throws SQLException;
/**
* Bind a byte array value.
*/
void setBlob(byte[] bytes) throws SQLException;
/**
* Bind a string clob value.
*/
void setClob(String content) throws SQLException;
/**
* Bind an array value.
*/
void setArray(String arrayType, Object[] elements) throws SQLException;
}
@@ -26,14 +26,13 @@ public class EnumToDbIntegerMap extends EnumToDbValueMap<Integer> {
public EnumToDbIntegerMap(boolean allowNulls) {
super(allowNulls, true);
}
public void add(Object beanValue, Integer dbValue, String name) {
addInternal(beanValue, dbValue, name);
}
@Override
public EnumToDbIntegerMap add(Object beanValue, String stringDbValue, String name) {
try {
Integer value = Integer.valueOf(stringDbValue);
addInternal(beanValue, value, name);
@@ -49,19 +48,19 @@ public class EnumToDbIntegerMap extends EnumToDbValueMap<Integer> {
}
@Override
public void bind(DataBind b, Object value) throws SQLException {
public void bind(DataBinder binder, Object value) throws SQLException {
if (value == null) {
b.setNull(Types.INTEGER);
binder.setNull(Types.INTEGER);
} else {
Integer s = getDbValue(value);
b.setInt(s);
binder.setInt(s);
}
}
@Override
public Object read(DataReader dataReader) throws SQLException {
Integer i = dataReader.getInt();
public Object read(DataReader reader) throws SQLException {
Integer i = reader.getInt();
if (i == null) {
return null;
} else {
@@ -8,7 +8,6 @@ import java.sql.Types;
*/
public class EnumToDbStringMap extends EnumToDbValueMap<String> {
@Override
public int getDbType() {
return Types.VARCHAR;
@@ -21,19 +20,18 @@ public class EnumToDbStringMap extends EnumToDbValueMap<String> {
}
@Override
public void bind(DataBind b, Object value) throws SQLException {
public void bind(DataBinder binder, Object value) throws SQLException {
if (value == null) {
b.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
String s = getDbValue(value);
b.setString(s);
binder.setString(s);
}
}
@Override
public Object read(DataReader dataReader) throws SQLException {
String s = dataReader.getString();
public Object read(DataReader reader) throws SQLException {
String s = reader.getString();
if (s == null) {
return null;
} else {
@@ -69,12 +69,12 @@ public abstract class EnumToDbValueMap<T> {
/**
* Bind using the correct database type.
*/
public abstract void bind(DataBind b, Object value) throws SQLException;
public abstract void bind(DataBinder binder, Object value) throws SQLException;
/**
* Read using the correct database type.
*/
public abstract Object read(DataReader dataReader) throws SQLException;
public abstract Object read(DataReader reader) throws SQLException;
/**
* Return the database type.
@@ -94,7 +94,6 @@ public abstract class EnumToDbValueMap<T> {
* </p>
*/
protected void addInternal(Object beanValue, T dbValue, String name) {
keyMap.put(beanValue, dbValue);
valueMap.put(dbValue, beanValue);
nameMap.put(name, beanValue);
@@ -10,5 +10,5 @@ public interface GeoTypeBinder {
/**
* Bind the geometry type.
*/
void bind(DataBind b, int dataType, Object data) throws SQLException;
void bind(DataBinder binder, int dataType, Object data) throws SQLException;
}
@@ -10,6 +10,6 @@ public interface ScalarDataReader<T> {
/**
* Read and return the appropriate value from the dataReader.
*/
T read(DataReader dataReader) throws SQLException;
T read(DataReader reader) throws SQLException;
}
@@ -112,7 +112,7 @@ public interface ScalarType<T> extends StringParser, StringFormatter, ScalarData
* JDBC type.
* </p>
*/
void bind(DataBind bind, T value) throws SQLException;
void bind(DataBinder binder, T value) throws SQLException;
/**
* Convert the value as necessary to the JDBC type.
@@ -114,20 +114,20 @@ public class ScalarTypeArrayList extends ScalarTypeArrayBase<List> implements Sc
}
@Override
public void bind(DataBind bind, List value) throws SQLException {
public void bind(DataBinder binder, List value) throws SQLException {
if (value == null) {
bindNull(bind);
bindNull(binder);
} else {
bind.setArray(arrayType, toArray(value));
binder.setArray(arrayType, toArray(value));
}
}
@Override
protected void bindNull(DataBind bind) throws SQLException {
protected void bindNull(DataBinder binder) throws SQLException {
if (nullable) {
bind.setNull(Types.ARRAY);
binder.setNull(Types.ARRAY);
} else {
bind.setArray(arrayType, toArray(EMPTY_LIST));
binder.setArray(arrayType, toArray(EMPTY_LIST));
}
}
@@ -68,20 +68,20 @@ class ScalarTypeArrayListH2 extends ScalarTypeArrayList {
}
@Override
public void bind(DataBind bind, List value) throws SQLException {
public void bind(DataBinder binder, List value) throws SQLException {
if (value == null) {
bindNull(bind);
bindNull(binder);
} else {
bind.setObject(toArray(value));
binder.setObject(toArray(value));
}
}
@Override
protected void bindNull(DataBind bind) throws SQLException {
protected void bindNull(DataBinder binder) throws SQLException {
if (nullable) {
bind.setNull(Types.ARRAY);
binder.setNull(Types.ARRAY);
} else {
bind.setObject(toArray(EMPTY_LIST));
binder.setObject(toArray(EMPTY_LIST));
}
}
}
@@ -109,20 +109,20 @@ public class ScalarTypeArraySet extends ScalarTypeArrayBase<Set> implements Scal
}
@Override
public void bind(DataBind bind, Set value) throws SQLException {
public void bind(DataBinder binder, Set value) throws SQLException {
if (value == null) {
bindNull(bind);
bindNull(binder);
} else {
bind.setArray(arrayType, toArray(value));
binder.setArray(arrayType, toArray(value));
}
}
@Override
protected void bindNull(DataBind bind) throws SQLException {
protected void bindNull(DataBinder binder) throws SQLException {
if (nullable) {
bind.setNull(Types.ARRAY);
binder.setNull(Types.ARRAY);
} else {
bind.setArray(arrayType, toArray(EMPTY_SET));
binder.setArray(arrayType, toArray(EMPTY_SET));
}
}
@@ -69,20 +69,20 @@ class ScalarTypeArraySetH2 extends ScalarTypeArraySet {
}
@Override
public void bind(DataBind bind, Set value) throws SQLException {
public void bind(DataBinder binder, Set value) throws SQLException {
if (value == null) {
bindNull(bind);
bindNull(binder);
} else {
bind.setObject(toArray(value));
binder.setObject(toArray(value));
}
}
@Override
protected void bindNull(DataBind bind) throws SQLException {
protected void bindNull(DataBinder binder) throws SQLException {
if (nullable) {
bind.setNull(Types.ARRAY);
binder.setNull(Types.ARRAY);
} else {
bind.setObject(toArray(EMPTY_SET));
binder.setObject(toArray(EMPTY_SET));
}
}
}
@@ -41,18 +41,17 @@ public abstract class ScalarTypeBaseDate<T> extends ScalarTypeBase<T> {
public abstract T convertFromDate(java.sql.Date ts);
@Override
public void bind(DataBind b, T value) throws SQLException {
public void bind(DataBinder binder, T value) throws SQLException {
if (value == null) {
b.setNull(Types.DATE);
binder.setNull(Types.DATE);
} else {
b.setDate(convertToDate(value));
binder.setDate(convertToDate(value));
}
}
@Override
public T read(DataReader dataReader) throws SQLException {
Date ts = dataReader.getDate();
public T read(DataReader reader) throws SQLException {
Date ts = reader.getDate();
return ts == null ? null : convertFromDate(ts);
}
@@ -127,7 +126,6 @@ public abstract class ScalarTypeBaseDate<T> extends ScalarTypeBase<T> {
@Override
public void writeData(DataOutput dataOutput, T value) throws IOException {
if (value == null) {
dataOutput.writeBoolean(false);
} else {
@@ -77,18 +77,17 @@ public abstract class ScalarTypeBaseDateTime<T> extends ScalarTypeBase<T> {
}
@Override
public void bind(DataBind b, T value) throws SQLException {
public void bind(DataBinder binder, T value) throws SQLException {
if (value == null) {
b.setNull(Types.TIMESTAMP);
binder.setNull(Types.TIMESTAMP);
} else {
b.setTimestamp(convertToTimestamp(value));
binder.setTimestamp(convertToTimestamp(value));
}
}
@Override
public T read(DataReader dataReader) throws SQLException {
Timestamp ts = dataReader.getTimestamp();
public T read(DataReader reader) throws SQLException {
Timestamp ts = reader.getTimestamp();
if (ts == null) {
return null;
} else {
@@ -105,7 +104,6 @@ public abstract class ScalarTypeBaseDateTime<T> extends ScalarTypeBase<T> {
@Override
public T jsonRead(JsonParser parser) throws IOException {
switch (parser.getCurrentToken()) {
case VALUE_NUMBER_INT: {
return convertFromMillis(parser.getLongValue());
@@ -123,7 +121,6 @@ public abstract class ScalarTypeBaseDateTime<T> extends ScalarTypeBase<T> {
@Override
public void jsonWrite(JsonGenerator writer, T value) throws IOException {
switch (mode) {
case ISO8601: {
writer.writeString(toJsonISO8601(value));
@@ -179,7 +176,6 @@ public abstract class ScalarTypeBaseDateTime<T> extends ScalarTypeBase<T> {
@Override
public void writeData(DataOutput dataOutput, T value) throws IOException {
if (value == null) {
dataOutput.writeBoolean(false);
} else {
@@ -48,17 +48,17 @@ public abstract class ScalarTypeBaseVarchar<T> extends ScalarTypeBase<T> {
public abstract String convertToDbString(T beanValue);
@Override
public void bind(DataBind b, T value) throws SQLException {
public void bind(DataBinder binder, T value) throws SQLException {
if (value == null) {
b.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
b.setString(convertToDbString(value));
binder.setString(convertToDbString(value));
}
}
@Override
public T read(DataReader dataReader) throws SQLException {
String s = dataReader.getString();
public T read(DataReader reader) throws SQLException {
String s = reader.getString();
if (s == null) {
return null;
} else {
@@ -22,17 +22,17 @@ public class ScalarTypeBigDecimal extends ScalarTypeBase<BigDecimal> {
}
@Override
public void bind(DataBind b, BigDecimal value) throws SQLException {
public void bind(DataBinder binder, BigDecimal value) throws SQLException {
if (value == null) {
b.setNull(Types.DECIMAL);
binder.setNull(Types.DECIMAL);
} else {
b.setBigDecimal(value);
binder.setBigDecimal(value);
}
}
@Override
public BigDecimal read(DataReader dataReader) throws SQLException {
return dataReader.getBigDecimal();
public BigDecimal read(DataReader reader) throws SQLException {
return reader.getBigDecimal();
}
@Override
@@ -76,7 +76,6 @@ public class ScalarTypeBigDecimal extends ScalarTypeBase<BigDecimal> {
@Override
public void writeData(DataOutput dataOutput, BigDecimal b) throws IOException {
if (b == null) {
dataOutput.writeBoolean(false);
} else {
@@ -51,18 +51,17 @@ public class ScalarTypeBoolean {
}
@Override
public void bind(DataBind b, Boolean value) throws SQLException {
public void bind(DataBinder binder, Boolean value) throws SQLException {
if (value == null) {
b.setNull(Types.BOOLEAN);
binder.setNull(Types.BOOLEAN);
} else {
b.setBoolean(value);
binder.setBoolean(value);
}
}
@Override
public Boolean read(DataReader dataReader) throws SQLException {
return dataReader.getBoolean();
public Boolean read(DataReader reader) throws SQLException {
return reader.getBoolean();
}
}
@@ -105,20 +104,19 @@ public class ScalarTypeBoolean {
}
@Override
public void bind(DataBind b, Boolean value) throws SQLException {
public void bind(DataBinder binder, Boolean value) throws SQLException {
if (value == null) {
b.setNull(Types.BIT);
binder.setNull(Types.BIT);
} else {
// use JDBC driver to convert boolean to bit
b.setBoolean(value);
binder.setBoolean(value);
}
}
@Override
public Boolean read(DataReader dataReader) throws SQLException {
return dataReader.getBoolean();
public Boolean read(DataReader reader) throws SQLException {
return reader.getBoolean();
}
}
/**
@@ -151,17 +149,17 @@ public class ScalarTypeBoolean {
}
@Override
public void bind(DataBind b, Boolean value) throws SQLException {
public void bind(DataBinder binder, Boolean value) throws SQLException {
if (value == null) {
b.setNull(Types.INTEGER);
binder.setNull(Types.INTEGER);
} else {
b.setInt(toInteger(value));
binder.setInt(toInteger(value));
}
}
@Override
public Boolean read(DataReader dataReader) throws SQLException {
Integer i = dataReader.getInt();
public Boolean read(DataReader reader) throws SQLException {
Integer i = reader.getInt();
if (i == null) {
return null;
}
@@ -239,17 +237,17 @@ public class ScalarTypeBoolean {
}
@Override
public void bind(DataBind b, Boolean value) throws SQLException {
public void bind(DataBinder binder, Boolean value) throws SQLException {
if (value == null) {
b.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
b.setString(toString(value));
binder.setString(toString(value));
}
}
@Override
public Boolean read(DataReader dataReader) throws SQLException {
String string = dataReader.getString();
public Boolean read(DataReader reader) throws SQLException {
String string = reader.getString();
if (string == null) {
return null;
}
@@ -350,7 +348,6 @@ public class ScalarTypeBoolean {
@Override
public void writeData(DataOutput dataOutput, Boolean val) throws IOException {
if (val == null) {
dataOutput.writeBoolean(false);
} else {
@@ -28,17 +28,17 @@ public class ScalarTypeByte extends ScalarTypeBase<Byte> {
}
@Override
public void bind(DataBind b, Byte value) throws SQLException {
public void bind(DataBinder binder, Byte value) throws SQLException {
if (value == null) {
b.setNull(Types.TINYINT);
binder.setNull(Types.TINYINT);
} else {
b.setByte(value);
binder.setByte(value);
}
}
@Override
public Byte read(DataReader dataReader) throws SQLException {
return dataReader.getByte();
public Byte read(DataReader reader) throws SQLException {
return reader.getByte();
}
@Override
@@ -104,7 +104,6 @@ public class ScalarTypeByte extends ScalarTypeBase<Byte> {
@Override
public void writeData(DataOutput dataOutput, Byte val) throws IOException {
if (val == null) {
dataOutput.writeBoolean(false);
} else {
@@ -30,11 +30,11 @@ public abstract class ScalarTypeBytesBase extends ScalarTypeBase<byte[]> {
}
@Override
public void bind(DataBind b, byte[] value) throws SQLException {
public void bind(DataBinder binder, byte[] value) throws SQLException {
if (value == null) {
b.setNull(jdbcType);
binder.setNull(jdbcType);
} else {
b.setBytes(value);
binder.setBytes(value);
}
}
@@ -13,8 +13,8 @@ public class ScalarTypeBytesBinary extends ScalarTypeBytesBase {
}
@Override
public byte[] read(DataReader dataReader) throws SQLException {
return dataReader.getBytes();
public byte[] read(DataReader reader) throws SQLException {
return reader.getBytes();
}
}
@@ -13,9 +13,8 @@ public class ScalarTypeBytesBlob extends ScalarTypeBytesBase {
}
@Override
public byte[] read(DataReader dataReader) throws SQLException {
return dataReader.getBinaryBytes();
public byte[] read(DataReader reader) throws SQLException {
return reader.getBinaryBytes();
}
}
@@ -45,9 +45,9 @@ public class ScalarTypeBytesEncrypted implements ScalarType<byte[]> {
}
@Override
public void bind(DataBind b, byte[] value) throws SQLException {
public void bind(DataBinder binder, byte[] value) throws SQLException {
value = dataEncryptSupport.encrypt(value);
baseType.bind(b, value);
baseType.bind(binder, value);
}
@Override
@@ -76,8 +76,8 @@ public class ScalarTypeBytesEncrypted implements ScalarType<byte[]> {
}
@Override
public void loadIgnore(DataReader dataReader) {
baseType.loadIgnore(dataReader);
public void loadIgnore(DataReader reader) {
baseType.loadIgnore(reader);
}
@Override
@@ -118,9 +118,8 @@ public class ScalarTypeBytesEncrypted implements ScalarType<byte[]> {
}
@Override
public byte[] read(DataReader dataReader) throws SQLException {
byte[] data = baseType.read(dataReader);
public byte[] read(DataReader reader) throws SQLException {
byte[] data = baseType.read(reader);
data = dataEncryptSupport.decrypt(data);
return data;
}
@@ -149,7 +148,6 @@ public class ScalarTypeBytesEncrypted implements ScalarType<byte[]> {
@Override
public void writeData(DataOutput dataOutput, byte[] value) throws IOException {
if (value == null) {
dataOutput.writeBoolean(false);
} else {
@@ -13,7 +13,7 @@ public class ScalarTypeBytesLongVarbinary extends ScalarTypeBytesBase {
}
@Override
public byte[] read(DataReader dataReader) throws SQLException {
return dataReader.getBinaryBytes();
public byte[] read(DataReader reader) throws SQLException {
return reader.getBinaryBytes();
}
}
@@ -13,8 +13,8 @@ public class ScalarTypeBytesVarbinary extends ScalarTypeBytesBase {
}
@Override
public byte[] read(DataReader dataReader) throws SQLException {
return dataReader.getBytes();
public byte[] read(DataReader reader) throws SQLException {
return reader.getBytes();
}
}
@@ -22,17 +22,16 @@ public class ScalarTypeCalendar extends ScalarTypeBaseDateTime<Calendar> {
}
@Override
public void bind(DataBind b, Calendar value) throws SQLException {
public void bind(DataBinder binder, Calendar value) throws SQLException {
if (value == null) {
b.setNull(Types.TIMESTAMP);
binder.setNull(Types.TIMESTAMP);
} else {
if (jdbcType == Types.TIMESTAMP) {
Timestamp timestamp = new Timestamp(value.getTimeInMillis());
b.setTimestamp(timestamp);
binder.setTimestamp(timestamp);
} else {
Date d = new Date(value.getTimeInMillis());
b.setDate(d);
binder.setDate(d);
}
}
}
@@ -25,18 +25,18 @@ public class ScalarTypeChar extends ScalarTypeBaseVarchar<Character> {
}
@Override
public void bind(DataBind b, Character value) throws SQLException {
public void bind(DataBinder binder, Character value) throws SQLException {
if (value == null) {
b.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
String s = BasicTypeConverter.toString(value);
b.setString(s);
binder.setString(s);
}
}
@Override
public Character read(DataReader dataReader) throws SQLException {
String string = dataReader.getString();
public Character read(DataReader reader) throws SQLException {
String string = reader.getString();
if (string == null || string.isEmpty()) {
return null;
} else {
@@ -28,18 +28,18 @@ public class ScalarTypeCharArray extends ScalarTypeBaseVarchar<char[]> {
}
@Override
public void bind(DataBind b, char[] value) throws SQLException {
public void bind(DataBinder binder, char[] value) throws SQLException {
if (value == null) {
b.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
String s = BasicTypeConverter.toString(value);
b.setString(s);
binder.setString(s);
}
}
@Override
public char[] read(DataReader dataReader) throws SQLException {
String string = dataReader.getString();
public char[] read(DataReader reader) throws SQLException {
String string = reader.getString();
if (string == null) {
return null;
} else {
@@ -16,7 +16,7 @@ public abstract class ScalarTypeCidr extends ScalarTypeBaseVarchar<Cidr> {
}
@Override
public abstract void bind(DataBind b, Cidr value) throws SQLException;
public abstract void bind(DataBinder binder, Cidr value) throws SQLException;
@Override
public Cidr convertFromDbString(String dbValue) {
@@ -44,11 +44,11 @@ public abstract class ScalarTypeCidr extends ScalarTypeBaseVarchar<Cidr> {
public static class Varchar extends ScalarTypeCidr {
@Override
public void bind(DataBind b, Cidr value) throws SQLException {
public void bind(DataBinder binder, Cidr value) throws SQLException {
if (value == null) {
b.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
b.setString(convertToDbString(value));
binder.setString(convertToDbString(value));
}
}
}
@@ -59,12 +59,12 @@ public abstract class ScalarTypeCidr extends ScalarTypeBaseVarchar<Cidr> {
public static class Postgres extends ScalarTypeCidr {
@Override
public void bind(DataBind b, Cidr value) throws SQLException {
public void bind(DataBinder binder, Cidr value) throws SQLException {
if (value == null) {
b.setNull(Types.OTHER);
binder.setNull(Types.OTHER);
} else {
String strValue = convertToDbString(value);
b.setObject(PostgresHelper.asInet(strValue));
binder.setObject(PostgresHelper.asInet(strValue));
}
}
}
@@ -17,8 +17,8 @@ public class ScalarTypeClob extends ScalarTypeStringBase {
}
@Override
public String read(DataReader dataReader) throws SQLException {
return dataReader.getStringFromStream();
public String read(DataReader reader) throws SQLException {
return reader.getStringFromStream();
}
}
@@ -37,17 +37,17 @@ public class ScalarTypeDate extends ScalarTypeBaseDate<java.sql.Date> {
}
@Override
public void bind(DataBind b, java.sql.Date value) throws SQLException {
public void bind(DataBinder binder, java.sql.Date value) throws SQLException {
if (value == null) {
b.setNull(Types.DATE);
binder.setNull(Types.DATE);
} else {
b.setDate(value);
binder.setDate(value);
}
}
@Override
public java.sql.Date read(DataReader dataReader) throws SQLException {
return dataReader.getDate();
public java.sql.Date read(DataReader reader) throws SQLException {
return reader.getDate();
}
@Override
@@ -35,12 +35,12 @@ public class ScalarTypeDayOfWeek extends ScalarTypeEnumWithMapping {
* Bind DayOfWeek enum using getValue().
*/
@Override
public void bind(DataBind b, Object value) throws SQLException {
public void bind(DataBinder binder, Object value) throws SQLException {
if (value == null) {
b.setNull(Types.INTEGER);
binder.setNull(Types.INTEGER);
} else {
// avoiding the map lookup
b.setInt(((DayOfWeek) value).getValue());
binder.setInt(((DayOfWeek) value).getValue());
}
}
@@ -48,8 +48,8 @@ public class ScalarTypeDayOfWeek extends ScalarTypeEnumWithMapping {
* Read DayOfWeek using int value.
*/
@Override
public Object read(DataReader dataReader) throws SQLException {
Integer i = dataReader.getInt();
public Object read(DataReader reader) throws SQLException {
Integer i = reader.getInt();
if (i == null) {
return null;
} else {
@@ -21,11 +21,11 @@ public class ScalarTypeDouble extends ScalarTypeBase<Double> {
}
@Override
public void bind(DataBind b, Double value) throws SQLException {
public void bind(DataBinder binder, Double value) throws SQLException {
if (value == null) {
b.setNull(Types.DOUBLE);
binder.setNull(Types.DOUBLE);
} else {
b.setDouble(value);
binder.setDouble(value);
}
}
@@ -75,7 +75,6 @@ public class ScalarTypeDouble extends ScalarTypeBase<Double> {
@Override
public void writeData(DataOutput dataOutput, Double value) throws IOException {
if (value == null) {
dataOutput.writeBoolean(false);
} else {
@@ -36,17 +36,17 @@ public class ScalarTypeDuration extends ScalarTypeBase<Duration> {
}
@Override
public void bind(DataBind bind, Duration value) throws SQLException {
public void bind(DataBinder binder, Duration value) throws SQLException {
if (value == null) {
bind.setNull(Types.BIGINT);
binder.setNull(Types.BIGINT);
} else {
bind.setLong(value.getSeconds());
binder.setLong(value.getSeconds());
}
}
@Override
public Duration read(DataReader dataReader) throws SQLException {
Long value = dataReader.getLong();
public Duration read(DataReader reader) throws SQLException {
Long value = reader.getLong();
return (value == null) ? null : Duration.ofSeconds(value);
}
@@ -20,17 +20,17 @@ public class ScalarTypeDurationWithNanos extends ScalarTypeDuration {
}
@Override
public void bind(DataBind bind, Duration value) throws SQLException {
public void bind(DataBinder binder, Duration value) throws SQLException {
if (value == null) {
bind.setNull(Types.DECIMAL);
binder.setNull(Types.DECIMAL);
} else {
bind.setBigDecimal(convertToBigDecimal(value));
binder.setBigDecimal(convertToBigDecimal(value));
}
}
@Override
public Duration read(DataReader dataReader) throws SQLException {
return convertFromBigDecimal(dataReader.getBigDecimal());
public Duration read(DataReader reader) throws SQLException {
return convertFromBigDecimal(reader.getBigDecimal());
}
@Override
@@ -60,9 +60,8 @@ public class ScalarTypeEncryptedWrapper<T> implements ScalarType<T>, LocalEncryp
}
@Override
public T read(DataReader dataReader) throws SQLException {
byte[] data = dataReader.getBytes();
public T read(DataReader reader) throws SQLException {
byte[] data = reader.getBytes();
String formattedValue = dataEncryptSupport.decryptObject(data);
if (formattedValue == null) {
return null;
@@ -79,10 +78,9 @@ public class ScalarTypeEncryptedWrapper<T> implements ScalarType<T>, LocalEncryp
}
@Override
public void bind(DataBind b, T value) throws SQLException {
public void bind(DataBinder binder, T value) throws SQLException {
byte[] encryptedValue = encrypt(value);
byteArrayType.bind(b, encryptedValue);
byteArrayType.bind(binder, encryptedValue);
}
@Override
@@ -51,9 +51,7 @@ public class ScalarTypeEnumStandard {
*/
@Override
public Set<String> getDbCheckConstraintValues() {
LinkedHashSet<String> values = new LinkedHashSet<>();
Object[] ea = enumType.getEnumConstants();
for (Object anEa : ea) {
Enum<?> e = (Enum<?>) anEa;
@@ -81,18 +79,17 @@ public class ScalarTypeEnumStandard {
}
@Override
public void bind(DataBind b, Object value) throws SQLException {
public void bind(DataBinder binder, Object value) throws SQLException {
if (value == null) {
b.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
b.setString(format(value));
binder.setString(format(value));
}
}
@Override
public Object read(DataReader dataReader) throws SQLException {
String string = dataReader.getString();
public Object read(DataReader reader) throws SQLException {
String string = reader.getString();
if (string == null) {
return null;
} else {
@@ -118,7 +115,6 @@ public class ScalarTypeEnumStandard {
}
return Enum.valueOf(enumType, (String) dbValue);
}
}
@SuppressWarnings({"rawtypes", "unchecked"})
@@ -144,7 +140,6 @@ public class ScalarTypeEnumStandard {
*/
@Override
public Set<String> getDbCheckConstraintValues() {
LinkedHashSet<String> values = new LinkedHashSet<>();
for (Object anEnumArray : enumArray) {
Enum<?> e = (Enum<?>) anEnumArray;
@@ -154,18 +149,17 @@ public class ScalarTypeEnumStandard {
}
@Override
public void bind(DataBind b, Object value) throws SQLException {
public void bind(DataBinder binder, Object value) throws SQLException {
if (value == null) {
b.setNull(Types.INTEGER);
binder.setNull(Types.INTEGER);
} else {
b.setInt(((Enum<?>) value).ordinal());
binder.setInt(((Enum<?>) value).ordinal());
}
}
@Override
public Object read(DataReader dataReader) throws SQLException {
Integer ordinal = dataReader.getInt();
public Object read(DataReader reader) throws SQLException {
Integer ordinal = reader.getInt();
if (ordinal == null) {
return null;
} else {
@@ -196,7 +190,6 @@ public class ScalarTypeEnumStandard {
if (dbValue == null || dbValue instanceof Enum<?>) {
return dbValue;
}
int ordinal = (Integer) dbValue;
if (ordinal < 0 || ordinal >= enumArray.length) {
String m = "Unexpected ordinal [" + ordinal + "] out of range [" + enumArray.length + "]";
@@ -45,9 +45,7 @@ public class ScalarTypeEnumWithMapping extends ScalarTypeEnumStandard.EnumBase i
*/
@Override
public Set<String> getDbCheckConstraintValues() {
LinkedHashSet values = new LinkedHashSet();
Iterator<?> it = beanDbMap.dbValues();
while (it.hasNext()) {
Object dbValue = it.next();
@@ -72,13 +70,13 @@ public class ScalarTypeEnumWithMapping extends ScalarTypeEnumStandard.EnumBase i
}
@Override
public void bind(DataBind b, Object value) throws SQLException {
beanDbMap.bind(b, value);
public void bind(DataBinder binder, Object value) throws SQLException {
beanDbMap.bind(binder, value);
}
@Override
public Object read(DataReader dataReader) throws SQLException {
return beanDbMap.read(dataReader);
public Object read(DataReader reader) throws SQLException {
return beanDbMap.read(reader);
}
@Override
@@ -69,9 +69,8 @@ public class ScalarTypeFile extends ScalarTypeBase<File> {
}
@Override
public File read(DataReader dataReader) throws SQLException {
InputStream is = dataReader.getBinaryStream();
public File read(DataReader reader) throws SQLException {
InputStream is = reader.getBinaryStream();
if (is == null) {
return null;
}
@@ -91,14 +90,14 @@ public class ScalarTypeFile extends ScalarTypeBase<File> {
@Override
public void bind(DataBind b, File value) throws SQLException {
public void bind(DataBinder binder, File value) throws SQLException {
if (value == null) {
b.setNull(jdbcType);
binder.setNull(jdbcType);
} else {
try {
// stream from our file to the db
InputStream fi = getInputStream(value);
b.setBinaryStream(fi, value.length());
binder.setBinaryStream(fi, value.length());
} catch (IOException e) {
throw new SQLException("Error trying to set file inputStream", e);
}
@@ -21,17 +21,17 @@ public class ScalarTypeFloat extends ScalarTypeBase<Float> {
}
@Override
public void bind(DataBind b, Float value) throws SQLException {
public void bind(DataBinder binder, Float value) throws SQLException {
if (value == null) {
b.setNull(Types.REAL);
binder.setNull(Types.REAL);
} else {
b.setFloat(value);
binder.setFloat(value);
}
}
@Override
public Float read(DataReader dataReader) throws SQLException {
return dataReader.getFloat();
public Float read(DataReader reader) throws SQLException {
return reader.getFloat();
}
@Override
@@ -75,7 +75,6 @@ public class ScalarTypeFloat extends ScalarTypeBase<Float> {
@Override
public void writeData(DataOutput dataOutput, Float value) throws IOException {
if (value == null) {
dataOutput.writeBoolean(false);
} else {
@@ -16,7 +16,7 @@ public abstract class ScalarTypeInet extends ScalarTypeBaseVarchar<Inet> {
}
@Override
public abstract void bind(DataBind b, Inet value) throws SQLException;
public abstract void bind(DataBinder binder, Inet value) throws SQLException;
@Override
public Inet convertFromDbString(String dbValue) {
@@ -48,11 +48,11 @@ public abstract class ScalarTypeInet extends ScalarTypeBaseVarchar<Inet> {
}
@Override
public void bind(DataBind b, Inet value) throws SQLException {
public void bind(DataBinder binder, Inet value) throws SQLException {
if (value == null) {
b.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
b.setString(convertToDbString(value));
binder.setString(convertToDbString(value));
}
}
}
@@ -67,12 +67,12 @@ public abstract class ScalarTypeInet extends ScalarTypeBaseVarchar<Inet> {
}
@Override
public void bind(DataBind b, Inet value) throws SQLException {
public void bind(DataBinder binder, Inet value) throws SQLException {
if (value == null) {
b.setNull(Types.OTHER);
binder.setNull(Types.OTHER);
} else {
String strValue = convertToDbString(value);
b.setObject(PostgresHelper.asInet(strValue));
binder.setObject(PostgresHelper.asInet(strValue));
}
}
}
@@ -17,12 +17,12 @@ public class ScalarTypeInetAddressPostgres extends ScalarTypeBaseVarchar<InetAdd
}
@Override
public void bind(DataBind b, InetAddress value) throws SQLException {
public void bind(DataBinder binder, InetAddress value) throws SQLException {
if (value == null) {
b.setNull(Types.OTHER);
binder.setNull(Types.OTHER);
} else {
String strValue = convertToDbString(value);
b.setObject(PostgresHelper.asInet(strValue));
binder.setObject(PostgresHelper.asInet(strValue));
}
}
@@ -24,17 +24,17 @@ public class ScalarTypeInteger extends ScalarTypeBase<Integer> {
}
@Override
public void bind(DataBind b, Integer value) throws SQLException {
public void bind(DataBinder binder, Integer value) throws SQLException {
if (value == null) {
b.setNull(Types.INTEGER);
binder.setNull(Types.INTEGER);
} else {
b.setInt(value);
binder.setInt(value);
}
}
@Override
public Integer read(DataReader dataReader) throws SQLException {
return dataReader.getInt();
public Integer read(DataReader reader) throws SQLException {
return reader.getInt();
}
@Override
@@ -25,18 +25,17 @@ public class ScalarTypeJodaLocalTime extends ScalarTypeBase<LocalTime> {
}
@Override
public void bind(DataBind b, LocalTime value) throws SQLException {
public void bind(DataBinder binder, LocalTime value) throws SQLException {
if (value == null) {
b.setNull(Types.TIME);
binder.setNull(Types.TIME);
} else {
b.setTime(new Time(value.toDateTimeToday().getMillis()));
binder.setTime(new Time(value.toDateTimeToday().getMillis()));
}
}
@Override
public LocalTime read(DataReader dataReader) throws SQLException {
Time sqlTime = dataReader.getTime();
public LocalTime read(DataReader reader) throws SQLException {
Time sqlTime = reader.getTime();
if (sqlTime == null) {
return null;
} else {
@@ -71,7 +70,6 @@ public class ScalarTypeJodaLocalTime extends ScalarTypeBase<LocalTime> {
return new LocalTime(value);
}
@Override
public LocalTime convertFromMillis(long systemTimeMillis) {
return new LocalTime(systemTimeMillis, DateTimeZone.getDefault());
@@ -94,7 +92,6 @@ public class ScalarTypeJodaLocalTime extends ScalarTypeBase<LocalTime> {
@Override
public void writeData(DataOutput dataOutput, LocalTime value) throws IOException {
if (value == null) {
dataOutput.writeBoolean(false);
} else {
@@ -18,19 +18,18 @@ public class ScalarTypeJodaLocalTimeUTC extends ScalarTypeJodaLocalTime {
}
@Override
public void bind(DataBind b, LocalTime value) throws SQLException {
public void bind(DataBinder binder, LocalTime value) throws SQLException {
if (value == null) {
b.setNull(Types.TIME);
binder.setNull(Types.TIME);
} else {
Time sqlTime = new Time(value.getMillisOfDay());
b.setTime(sqlTime);
binder.setTime(sqlTime);
}
}
@Override
public LocalTime read(DataReader dataReader) throws SQLException {
Time sqlTime = dataReader.getTime();
public LocalTime read(DataReader reader) throws SQLException {
Time sqlTime = reader.getTime();
if (sqlTime == null) {
return null;
} else {
@@ -23,11 +23,11 @@ abstract class ScalarTypeJsonCollection<T> extends ScalarTypeBase<T> implements
/**
* Bind null or empty list (when not nullable).
*/
protected void bindNull(DataBind bind) throws SQLException {
protected void bindNull(DataBinder binder) throws SQLException {
if (nullable) {
bind.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
bind.setString("[]");
binder.setString("[]");
}
}
@@ -71,8 +71,8 @@ public class ScalarTypeJsonList {
}
@Override
public List read(DataReader dataReader) throws SQLException {
String json = dataReader.getString();
public List read(DataReader reader) throws SQLException {
String json = reader.getString();
try {
// parse JSON into modifyAware list
return EJson.parseList(json, true);
@@ -82,14 +82,14 @@ public class ScalarTypeJsonList {
}
@Override
public void bind(DataBind bind, List value) throws SQLException {
public void bind(DataBinder binder, List value) throws SQLException {
if (value == null) {
bindNull(bind);
bindNull(binder);
} else if (value.isEmpty()) {
bind.setString("[]");
binder.setString("[]");
} else {
try {
bind.setString(EJson.write(value));
binder.setString(EJson.write(value));
} catch (IOException e) {
throw new SQLException("Failed to format List into JSON content", e);
}
@@ -97,11 +97,11 @@ public class ScalarTypeJsonList {
}
@Override
protected void bindNull(DataBind bind) throws SQLException {
protected void bindNull(DataBinder binder) throws SQLException {
if (nullable) {
bind.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
bind.setString("[]");
binder.setString("[]");
}
}
@@ -148,17 +148,17 @@ public class ScalarTypeJsonList {
@SuppressWarnings("rawtypes")
@Override
public void bind(DataBind bind, List value) throws SQLException {
public void bind(DataBinder binder, List value) throws SQLException {
if (value == null) {
bindNull(bind);
bindNull(binder);
} else {
bind.setObject(PostgresHelper.asObject(pgType, formatValue(value)));
binder.setObject(PostgresHelper.asObject(pgType, formatValue(value)));
}
}
@Override
protected void bindNull(DataBind bind) throws SQLException {
bind.setObject(PostgresHelper.asObject(pgType, nullable ? null : "[]"));
protected void bindNull(DataBinder binder) throws SQLException {
binder.setObject(PostgresHelper.asObject(pgType, nullable ? null : "[]"));
}
}
@@ -35,7 +35,6 @@ public abstract class ScalarTypeJsonMap extends ScalarTypeBase<Map> {
* Return the ScalarType for the requested dbType and postgres.
*/
public static ScalarTypeJsonMap typeFor(boolean postgres, int dbType) {
switch (dbType) {
case Types.VARCHAR:
return VARCHAR;
@@ -59,9 +58,8 @@ public abstract class ScalarTypeJsonMap extends ScalarTypeBase<Map> {
}
@Override
public Map read(DataReader dataReader) throws SQLException {
String content = dataReader.getStringFromStream();
public Map read(DataReader reader) throws SQLException {
String content = reader.getStringFromStream();
if (content == null) {
return null;
}
@@ -82,15 +80,14 @@ public abstract class ScalarTypeJsonMap extends ScalarTypeBase<Map> {
}
@Override
public Map read(DataReader dataReader) throws SQLException {
InputStream is = dataReader.getBinaryStream();
public Map read(DataReader reader) throws SQLException {
InputStream is = reader.getBinaryStream();
if (is == null) {
return null;
}
try {
try (InputStreamReader reader = new InputStreamReader(is)) {
return parse(reader);
try (InputStreamReader inputStreamReader = new InputStreamReader(is)) {
return parse(inputStreamReader);
}
} catch (IOException e) {
throw new SQLException("Error reading Blob stream from DB", e);
@@ -98,13 +95,12 @@ public abstract class ScalarTypeJsonMap extends ScalarTypeBase<Map> {
}
@Override
public void bind(DataBind b, Map value) throws SQLException {
public void bind(DataBinder binder, Map value) throws SQLException {
if (value == null) {
b.setNull(Types.BLOB);
binder.setNull(Types.BLOB);
} else {
String rawJson = formatValue(value);
b.setBytes(rawJson.getBytes(StandardCharsets.UTF_8));
binder.setBytes(rawJson.getBytes(StandardCharsets.UTF_8));
}
}
}
@@ -130,9 +126,8 @@ public abstract class ScalarTypeJsonMap extends ScalarTypeBase<Map> {
}
@Override
public Map read(DataReader dataReader) throws SQLException {
String rawJson = dataReader.getString();
public Map read(DataReader reader) throws SQLException {
String rawJson = reader.getString();
if (rawJson == null) {
return null;
}
@@ -140,13 +135,12 @@ public abstract class ScalarTypeJsonMap extends ScalarTypeBase<Map> {
}
@Override
public void bind(DataBind b, Map value) throws SQLException {
public void bind(DataBinder binder, Map value) throws SQLException {
if (value == null) {
b.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
String rawJson = formatValue(value);
b.setString(rawJson);
binder.setString(rawJson);
}
}
@@ -19,10 +19,9 @@ public abstract class ScalarTypeJsonMapPostgres extends ScalarTypeJsonMap {
@SuppressWarnings("rawtypes")
@Override
public void bind(DataBind bind, Map value) throws SQLException {
public void bind(DataBinder binder, Map value) throws SQLException {
String rawJson = (value == null) ? null : formatValue(value);
bind.setObject(PostgresHelper.asObject(postgresType, rawJson));
binder.setObject(PostgresHelper.asObject(postgresType, rawJson));
}
/**
@@ -32,9 +32,8 @@ public abstract class ScalarTypeJsonNode extends ScalarTypeBase<JsonNode> {
}
@Override
public JsonNode read(DataReader dataReader) throws SQLException {
String content = dataReader.getStringFromStream();
public JsonNode read(DataReader reader) throws SQLException {
String content = reader.getStringFromStream();
if (content == null) {
return null;
}
@@ -63,7 +62,6 @@ public abstract class ScalarTypeJsonNode extends ScalarTypeBase<JsonNode> {
@Override
public JsonNode read(DataReader dataReader) throws SQLException {
InputStream is = dataReader.getBinaryStream();
if (is == null) {
return null;
@@ -76,13 +74,12 @@ public abstract class ScalarTypeJsonNode extends ScalarTypeBase<JsonNode> {
}
@Override
public void bind(DataBind dataBind, JsonNode value) throws SQLException {
public void bind(DataBinder binder, JsonNode value) throws SQLException {
if (value == null) {
dataBind.setNull(Types.BLOB);
binder.setNull(Types.BLOB);
} else {
String rawJson = formatValue(value);
dataBind.setBlob(rawJson.getBytes(StandardCharsets.UTF_8));
binder.setBlob(rawJson.getBytes(StandardCharsets.UTF_8));
}
}
}
@@ -114,9 +111,8 @@ public abstract class ScalarTypeJsonNode extends ScalarTypeBase<JsonNode> {
}
@Override
public JsonNode read(DataReader dataReader) throws SQLException {
String rawJson = dataReader.getString();
public JsonNode read(DataReader reader) throws SQLException {
String rawJson = reader.getString();
if (rawJson == null) {
return null;
}
@@ -124,13 +120,12 @@ public abstract class ScalarTypeJsonNode extends ScalarTypeBase<JsonNode> {
}
@Override
public void bind(DataBind dataBind, JsonNode value) throws SQLException {
public void bind(DataBinder binder, JsonNode value) throws SQLException {
if (value == null) {
dataBind.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
String rawJson = formatValue(value);
dataBind.setString(rawJson);
binder.setString(rawJson);
}
}
@@ -22,9 +22,9 @@ public abstract class ScalarTypeJsonNodePostgres extends ScalarTypeJsonNode {
}
@Override
public void bind(DataBind bind, JsonNode value) throws SQLException {
public void bind(DataBinder binder, JsonNode value) throws SQLException {
String rawJson = (value == null) ? null : formatValue(value);
bind.setObject(PostgresHelper.asObject(postgresType, rawJson));
binder.setObject(PostgresHelper.asObject(postgresType, rawJson));
}
/**
@@ -214,17 +214,17 @@ public class ScalarTypeJsonObjectMapper {
}
@Override
public void bind(DataBind bind, T value) throws SQLException {
public void bind(DataBinder binder, T value) throws SQLException {
if (pgType != null) {
String rawJson = (value == null) ? null : formatValue(value);
bind.setObject(PostgresHelper.asObject(pgType, rawJson));
binder.setObject(PostgresHelper.asObject(pgType, rawJson));
} else {
if (value == null) {
bind.setNull(Types.VARCHAR); // use varchar, otherwise SqlServer/db2 will fail with 'Invalid JDBC data type 5.001.'
binder.setNull(Types.VARCHAR); // use varchar, otherwise SqlServer/db2 will fail with 'Invalid JDBC data type 5.001.'
} else {
try {
String json = objectWriter.writeValueAsString(value);
bind.setString(json);
binder.setString(json);
} catch (JsonProcessingException e) {
throw new SQLException("Unable to create JSON", e);
}
@@ -73,8 +73,8 @@ public class ScalarTypeJsonSet {
}
@Override
public Set read(DataReader dataReader) throws SQLException {
String json = dataReader.getString();
public Set read(DataReader reader) throws SQLException {
String json = reader.getString();
try {
// parse JSON into modifyAware list
return EJson.parseSet(json, true);
@@ -84,14 +84,14 @@ public class ScalarTypeJsonSet {
}
@Override
public void bind(DataBind bind, Set value) throws SQLException {
public void bind(DataBinder binder, Set value) throws SQLException {
if (value == null) {
bindNull(bind);
bindNull(binder);
} else if (value.isEmpty()) {
bind.setString("[]");
binder.setString("[]");
} else {
try {
bind.setString(EJson.write(value));
binder.setString(EJson.write(value));
} catch (IOException e) {
throw new SQLException("Failed to format Set into JSON content", e);
}
@@ -99,11 +99,11 @@ public class ScalarTypeJsonSet {
}
@Override
protected void bindNull(DataBind bind) throws SQLException {
protected void bindNull(DataBinder binder) throws SQLException {
if (nullable) {
bind.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
bind.setString("[]");
binder.setString("[]");
}
}
@@ -155,17 +155,17 @@ public class ScalarTypeJsonSet {
@SuppressWarnings("rawtypes")
@Override
public void bind(DataBind bind, Set value) throws SQLException {
public void bind(DataBinder binder, Set value) throws SQLException {
if (value == null) {
bindNull(bind);
bindNull(binder);
} else {
bind.setObject(PostgresHelper.asObject(pgType, formatValue(value)));
binder.setObject(PostgresHelper.asObject(pgType, formatValue(value)));
}
}
@Override
protected void bindNull(DataBind bind) throws SQLException {
bind.setObject(PostgresHelper.asObject(pgType, nullable ? null : "[]"));
protected void bindNull(DataBinder binder) throws SQLException {
binder.setObject(PostgresHelper.asObject(pgType, nullable ? null : "[]"));
}
}
@@ -28,17 +28,17 @@ public class ScalarTypeLocalTime extends ScalarTypeBase<LocalTime> {
}
@Override
public void bind(DataBind bind, LocalTime value) throws SQLException {
public void bind(DataBinder binder, LocalTime value) throws SQLException {
if (value == null) {
bind.setNull(Types.TIME);
binder.setNull(Types.TIME);
} else {
bind.setTime(Time.valueOf(value));
binder.setTime(Time.valueOf(value));
}
}
@Override
public LocalTime read(DataReader dataReader) throws SQLException {
Time time = dataReader.getTime();
public LocalTime read(DataReader reader) throws SQLException {
Time time = reader.getTime();
return (time == null) ? null : time.toLocalTime();
}
@@ -16,17 +16,17 @@ public class ScalarTypeLocalTimeWithNanos extends ScalarTypeLocalTime {
}
@Override
public void bind(DataBind bind, LocalTime value) throws SQLException {
public void bind(DataBinder binder, LocalTime value) throws SQLException {
if (value == null) {
bind.setNull(Types.BIGINT);
binder.setNull(Types.BIGINT);
} else {
bind.setLong(value.toNanoOfDay());
binder.setLong(value.toNanoOfDay());
}
}
@Override
public LocalTime read(DataReader dataReader) throws SQLException {
Long value = dataReader.getLong();
public LocalTime read(DataReader reader) throws SQLException {
Long value = reader.getLong();
return (value == null) ? null : LocalTime.ofNanoOfDay(value);
}
@@ -21,17 +21,17 @@ public class ScalarTypeLong extends ScalarTypeBase<Long> {
}
@Override
public void bind(DataBind b, Long value) throws SQLException {
public void bind(DataBinder binder, Long value) throws SQLException {
if (value == null) {
b.setNull(Types.BIGINT);
binder.setNull(Types.BIGINT);
} else {
b.setLong(value);
binder.setLong(value);
}
}
@Override
public Long read(DataReader dataReader) throws SQLException {
return dataReader.getLong();
public Long read(DataReader reader) throws SQLException {
return reader.getLong();
}
@Override
@@ -80,7 +80,6 @@ public class ScalarTypeLong extends ScalarTypeBase<Long> {
@Override
public void writeData(DataOutput dataOutput, Long value) throws IOException {
if (value == null) {
dataOutput.writeBoolean(false);
} else {
@@ -22,18 +22,17 @@ public class ScalarTypeMathBigInteger extends ScalarTypeBase<BigInteger> {
}
@Override
public void bind(DataBind b, BigInteger value) throws SQLException {
public void bind(DataBinder binder, BigInteger value) throws SQLException {
if (value == null) {
b.setNull(Types.BIGINT);
binder.setNull(Types.BIGINT);
} else {
b.setLong(value.longValue());
binder.setLong(value.longValue());
}
}
@Override
public BigInteger read(DataReader dataReader) throws SQLException {
Long value = dataReader.getLong();
public BigInteger read(DataReader reader) throws SQLException {
Long value = reader.getLong();
if (value == null) {
return null;
}
@@ -81,7 +80,6 @@ public class ScalarTypeMathBigInteger extends ScalarTypeBase<BigInteger> {
@Override
public void writeData(DataOutput dataOutput, BigInteger value) throws IOException {
if (value == null) {
dataOutput.writeBoolean(false);
} else {
@@ -35,12 +35,12 @@ public class ScalarTypeMonth extends ScalarTypeEnumWithMapping {
* Bind Month enum value.
*/
@Override
public void bind(DataBind b, Object value) throws SQLException {
public void bind(DataBinder binder, Object value) throws SQLException {
if (value == null) {
b.setNull(Types.INTEGER);
binder.setNull(Types.INTEGER);
} else {
// avoiding the map lookup
b.setInt(((Month) value).getValue());
binder.setInt(((Month) value).getValue());
}
}
@@ -48,8 +48,8 @@ public class ScalarTypeMonth extends ScalarTypeEnumWithMapping {
* Read Month enum from integer.
*/
@Override
public Object read(DataReader dataReader) throws SQLException {
Integer i = dataReader.getInt();
public Object read(DataReader reader) throws SQLException {
Integer i = reader.getInt();
if (i == null) {
return null;
} else {
@@ -49,17 +49,17 @@ public class ScalarTypeMonthDay extends ScalarTypeBase<MonthDay> {
}
@Override
public MonthDay read(DataReader dataReader) throws SQLException {
Date ts = dataReader.getDate();
public MonthDay read(DataReader reader) throws SQLException {
Date ts = reader.getDate();
return ts == null ? null : convertFromDate(ts);
}
@Override
public void bind(DataBind b, MonthDay value) throws SQLException {
public void bind(DataBinder binder, MonthDay value) throws SQLException {
if (value == null) {
b.setNull(Types.DATE);
binder.setNull(Types.DATE);
} else {
b.setDate(convertToDate(value));
binder.setDate(convertToDate(value));
}
}
@@ -37,9 +37,8 @@ public class ScalarTypePostgresHstore extends ScalarTypeBase<Map> {
@SuppressWarnings("unchecked")
@Override
public Map read(DataReader dataReader) throws SQLException {
Object value = dataReader.getObject();
public Map read(DataReader reader) throws SQLException {
Object value = reader.getObject();
if (value == null) {
return null;
}
@@ -50,8 +49,8 @@ public class ScalarTypePostgresHstore extends ScalarTypeBase<Map> {
}
@Override
public void bind(DataBind b, Map value) throws SQLException {
b.setObject(value);
public void bind(DataBinder binder, Map value) throws SQLException {
binder.setObject(value);
}
@Override
@@ -22,17 +22,17 @@ public class ScalarTypeShort extends ScalarTypeBase<Short> {
}
@Override
public void bind(DataBind b, Short value) throws SQLException {
public void bind(DataBinder binder, Short value) throws SQLException {
if (value == null) {
b.setNull(Types.SMALLINT);
binder.setNull(Types.SMALLINT);
} else {
b.setShort(value);
binder.setShort(value);
}
}
@Override
public Short read(DataReader dataReader) throws SQLException {
return dataReader.getShort();
public Short read(DataReader reader) throws SQLException {
return reader.getShort();
}
@Override
@@ -76,7 +76,6 @@ public class ScalarTypeShort extends ScalarTypeBase<Short> {
@Override
public void writeData(DataOutput dataOutput, Short value) throws IOException {
if (value == null) {
dataOutput.writeBoolean(false);
} else {
@@ -21,17 +21,17 @@ public abstract class ScalarTypeStringBase extends ScalarTypeBase<String> {
}
@Override
public void bind(DataBind b, String value) throws SQLException {
public void bind(DataBinder binder, String value) throws SQLException {
if (value == null) {
b.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
b.setString(value);
binder.setString(value);
}
}
@Override
public String read(DataReader dataReader) throws SQLException {
return dataReader.getString();
public String read(DataReader reader) throws SQLException {
return reader.getString();
}
@Override
@@ -75,7 +75,6 @@ public abstract class ScalarTypeStringBase extends ScalarTypeBase<String> {
@Override
public void writeData(DataOutput dataOutput, String value) throws IOException {
if (value == null) {
dataOutput.writeBoolean(false);
} else {
@@ -22,17 +22,17 @@ public class ScalarTypeTime extends ScalarTypeBase<Time> {
}
@Override
public void bind(DataBind b, Time value) throws SQLException {
public void bind(DataBinder binder, Time value) throws SQLException {
if (value == null) {
b.setNull(Types.TIME);
binder.setNull(Types.TIME);
} else {
b.setTime(value);
binder.setTime(value);
}
}
@Override
public Time read(DataReader dataReader) throws SQLException {
return dataReader.getTime();
public Time read(DataReader reader) throws SQLException {
return reader.getTime();
}
@Override
@@ -77,7 +77,6 @@ public class ScalarTypeTime extends ScalarTypeBase<Time> {
@Override
public void writeData(DataOutput dataOutput, Time value) throws IOException {
if (value == null) {
dataOutput.writeBoolean(false);
} else {
@@ -54,19 +54,18 @@ public class ScalarTypeTimestamp extends ScalarTypeBaseDateTime<Timestamp> {
return t;
}
@Override
public void bind(DataBind b, Timestamp value) throws SQLException {
public void bind(DataBinder binder, Timestamp value) throws SQLException {
if (value == null) {
b.setNull(Types.TIMESTAMP);
binder.setNull(Types.TIMESTAMP);
} else {
b.setTimestamp(value);
binder.setTimestamp(value);
}
}
@Override
public Timestamp read(DataReader dataReader) throws SQLException {
return dataReader.getTimestamp();
public Timestamp read(DataReader reader) throws SQLException {
return reader.getTimestamp();
}
@Override
@@ -10,7 +10,6 @@ public class ScalarTypeUUIDBinary extends ScalarTypeUUIDBase {
private final boolean optimized;
protected ScalarTypeUUIDBinary(boolean optimized) {
super(false, Types.BINARY);
this.optimized = optimized;
@@ -36,17 +35,17 @@ public class ScalarTypeUUIDBinary extends ScalarTypeUUIDBase {
}
@Override
public void bind(DataBind b, UUID value) throws SQLException {
public void bind(DataBinder binder, UUID value) throws SQLException {
if (value == null) {
b.setNull(Types.BINARY);
binder.setNull(Types.BINARY);
} else {
b.setBytes(convertToBytes(value, optimized));
binder.setBytes(convertToBytes(value, optimized));
}
}
@Override
public UUID read(DataReader dataReader) throws SQLException {
byte[] bytes = dataReader.getBytes();
public UUID read(DataReader reader) throws SQLException {
byte[] bytes = reader.getBytes();
if (bytes == null) {
return null;
} else {
@@ -106,7 +105,6 @@ public class ScalarTypeUUIDBinary extends ScalarTypeUUIDBase {
*/
public static byte[] convertToBytes(Object value, boolean optimized) {
UUID uuid = (UUID) value;
byte[] ret = new byte[16];
long l = uuid.getMostSignificantBits();
@@ -15,8 +15,8 @@ public class ScalarTypeUUIDNative extends ScalarTypeUUIDBase {
}
@Override
public UUID read(DataReader dataReader) throws SQLException {
Object value = dataReader.getObject();
public UUID read(DataReader reader) throws SQLException {
Object value = reader.getObject();
if (value == null) {
return null;
}
@@ -27,8 +27,8 @@ public class ScalarTypeUUIDNative extends ScalarTypeUUIDBase {
}
@Override
public void bind(DataBind b, UUID value) throws SQLException {
b.setObject(value);
public void bind(DataBinder binder, UUID value) throws SQLException {
binder.setObject(value);
}
@Override
@@ -19,17 +19,17 @@ public class ScalarTypeUUIDVarchar extends ScalarTypeUUIDBase {
}
@Override
public void bind(DataBind b, UUID value) throws SQLException {
public void bind(DataBinder binder, UUID value) throws SQLException {
if (value == null) {
b.setNull(Types.VARCHAR);
binder.setNull(Types.VARCHAR);
} else {
b.setString(formatValue(value));
binder.setString(formatValue(value));
}
}
@Override
public UUID read(DataReader dataReader) throws SQLException {
String value = dataReader.getString();
public UUID read(DataReader reader) throws SQLException {
String value = reader.getString();
if (value == null) {
return null;
} else {
@@ -38,8 +38,8 @@ public class ScalarTypeUtilDate {
}
@Override
public java.util.Date read(DataReader dataReader) throws SQLException {
Timestamp timestamp = dataReader.getTimestamp();
public java.util.Date read(DataReader reader) throws SQLException {
Timestamp timestamp = reader.getTimestamp();
if (timestamp == null) {
return null;
} else {
@@ -48,11 +48,11 @@ public class ScalarTypeUtilDate {
}
@Override
public void bind(DataBind dataBind, java.util.Date value) throws SQLException {
public void bind(DataBinder binder, java.util.Date value) throws SQLException {
if (value == null) {
dataBind.setNull(Types.TIMESTAMP);
binder.setNull(Types.TIMESTAMP);
} else {
dataBind.setTimestamp(new Timestamp(value.getTime()));
binder.setTimestamp(new Timestamp(value.getTime()));
}
}
@@ -66,7 +66,6 @@ public class ScalarTypeUtilDate {
return BasicTypeConverter.toUtilDate(value);
}
@Override
public Date convertFromTimestamp(Timestamp ts) {
return new java.util.Date(ts.getTime());
@@ -76,12 +76,12 @@ public class ScalarTypeWrapper<B, S> implements ScalarType<B> {
}
@Override
public void bind(DataBind b, B value) throws SQLException {
public void bind(DataBinder binder, B value) throws SQLException {
if (value == null) {
scalarType.bind(b, null);
scalarType.bind(binder, null);
} else {
S sv = converter.unwrapValue(value);
scalarType.bind(b, sv);
scalarType.bind(binder, sv);
}
}
@@ -141,14 +141,13 @@ public class ScalarTypeWrapper<B, S> implements ScalarType<B> {
}
@Override
public void loadIgnore(DataReader dataReader) {
dataReader.incrementPos(1);
public void loadIgnore(DataReader reader) {
reader.incrementPos(1);
}
@Override
public B read(DataReader dataReader) throws SQLException {
S sv = scalarType.read(dataReader);
public B read(DataReader reader) throws SQLException {
S sv = scalarType.read(reader);
if (sv == null) {
return nullValue;
}
@@ -174,7 +173,6 @@ public class ScalarTypeWrapper<B, S> implements ScalarType<B> {
@Override
@SuppressWarnings("unchecked")
public Object toJdbcType(Object value) {
Object sv = converter.unwrapValue((B) value);
if (sv == null) {
return nullValue;
@@ -23,17 +23,17 @@ public class ScalarTypeYear extends ScalarTypeBase<Year> {
}
@Override
public void bind(DataBind bind, Year value) throws SQLException {
public void bind(DataBinder binder, Year value) throws SQLException {
if (value == null) {
bind.setNull(Types.INTEGER);
binder.setNull(Types.INTEGER);
} else {
bind.setInt(value.getValue());
binder.setInt(value.getValue());
}
}
@Override
public Year read(DataReader dataReader) throws SQLException {
Integer value = dataReader.getInt();
public Year read(DataReader reader) throws SQLException {
Integer value = reader.getInt();
return (value == null) ? null : Year.of(value);
}