Class ScalarTypeArrayList
- java.lang.Object
-
- io.ebeaninternal.server.type.ScalarTypeBase<T>
-
- io.ebeaninternal.server.type.ScalarTypeArrayList
-
- All Implemented Interfaces:
StringFormatter
,StringParser
,ScalarDataReader<List>
,ScalarType<List>
,ScalarTypeArray
public class ScalarTypeArrayList extends ScalarTypeBase<T> implements ScalarTypeArray
Type mapped for DB ARRAY type (Postgres only effectively).
-
-
Constructor Summary
Constructors Constructor Description ScalarTypeArrayList(boolean nullable, String arrayType, DocPropertyType docPropertyType, io.ebeaninternal.server.type.ArrayElementConverter converter)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
bind(DataBind bind, List value)
Convert (if necessary) and bind the value to the preparedStatement.T
convertFromMillis(long dateTime)
Convert the systemTimeMillis into the appropriate java object.String
formatValue(List value)
Convert the type into a string representation.String
getDbColumnDefn()
Return the DB column definition for DDL generation.DocPropertyType
getDocType()
Return the type this maps to for JSON document stores.boolean
isDateTimeCapable()
Return true if the type can accept long systemTimeMillis input.boolean
isDirty(Object value)
Return true if the value should be considered dirty (and included in an update).boolean
isMutable()
Consider as a mutable type.List
jsonRead(com.fasterxml.jackson.core.JsonParser parser)
Read the value from JsonParser.void
jsonWrite(com.fasterxml.jackson.core.JsonGenerator writer, List value)
Write the value to the JsonGenerator.List
parse(String value)
Convert the string value to the appropriate java object.T
read(DataReader reader)
Read the value from the resultSet and convert if necessary to the logical bean property value.T
readData(DataInput dataInput)
Read the value from binary input.T
toBeanType(Object value)
Convert the value as necessary to the logical Bean type.Object
toJdbcType(Object value)
Convert the value as necessary to the JDBC type.void
writeData(DataOutput dataOutput, T value)
Write the value to binary output.-
Methods inherited from class io.ebeaninternal.server.type.ScalarTypeBase
asVersion, format, getJdbcType, getLength, getType, isBinaryType, isJdbcNative, loadIgnore
-
-
-
-
Constructor Detail
-
ScalarTypeArrayList
public ScalarTypeArrayList(boolean nullable, String arrayType, DocPropertyType docPropertyType, io.ebeaninternal.server.type.ArrayElementConverter converter)
-
-
Method Detail
-
getDocType
public DocPropertyType getDocType()
Description copied from interface:ScalarType
Return the type this maps to for JSON document stores.- Specified by:
getDocType
in interfaceScalarType<List>
-
getDbColumnDefn
public String getDbColumnDefn()
Return the DB column definition for DDL generation.- Specified by:
getDbColumnDefn
in interfaceScalarTypeArray
-
bind
public void bind(DataBind bind, List value) throws SQLException
Description copied from interface:ScalarType
Convert (if necessary) and bind the value to the preparedStatement.value may need to be converted from the logical bean property type to the JDBC type.
- Specified by:
bind
in interfaceScalarType<List>
- Throws:
SQLException
-
formatValue
public String formatValue(List value)
Description copied from interface:ScalarType
Convert the type into a string representation.Reciprocal of parse().
- Specified by:
formatValue
in interfaceScalarType<List>
-
parse
public List parse(String value)
Description copied from interface:ScalarType
Convert the string value to the appropriate java object.Mostly used to support CSV, JSON and XML parsing.
Reciprocal of formatValue().
- Specified by:
parse
in interfaceScalarType<List>
- Specified by:
parse
in interfaceStringParser
-
jsonRead
public List jsonRead(com.fasterxml.jackson.core.JsonParser parser) throws IOException
Description copied from interface:ScalarType
Read the value from JsonParser.- Specified by:
jsonRead
in interfaceScalarType<List>
- Throws:
IOException
-
jsonWrite
public void jsonWrite(com.fasterxml.jackson.core.JsonGenerator writer, List value) throws IOException
Description copied from interface:ScalarType
Write the value to the JsonGenerator.- Specified by:
jsonWrite
in interfaceScalarType<List>
- Throws:
IOException
-
read
public T read(DataReader reader) throws SQLException
Description copied from interface:ScalarType
Read the value from the resultSet and convert if necessary to the logical bean property value.- Throws:
SQLException
-
isMutable
public boolean isMutable()
Consider as a mutable type. Use the isDirty() method to check for dirty state.- Specified by:
isMutable
in interfaceScalarType<T>
- Overrides:
isMutable
in classScalarTypeBase<T>
-
isDirty
public boolean isDirty(Object value)
Return true if the value should be considered dirty (and included in an update).- Specified by:
isDirty
in interfaceScalarType<T>
- Overrides:
isDirty
in classScalarTypeBase<T>
-
toJdbcType
public Object toJdbcType(Object value)
Description copied from interface:ScalarType
Convert the value as necessary to the JDBC type.Note that this should also match the type as per the getJdbcType() method.
This is typically used when the matching type is used in a where clause and we use this to ensure it is an appropriate jdbc type.
- Specified by:
toJdbcType
in interfaceScalarType<T>
-
toBeanType
public T toBeanType(Object value)
Description copied from interface:ScalarType
Convert the value as necessary to the logical Bean type.The type as per the bean property.
This is used to automatically convert id values (typically from a string to a int, long or UUID).
- Specified by:
toBeanType
in interfaceScalarType<T>
-
isDateTimeCapable
public boolean isDateTimeCapable()
Description copied from interface:ScalarType
Return true if the type can accept long systemTimeMillis input.This is used to determine if is is sensible to use the
ScalarType.convertFromMillis(long)
method.This includes the Date, Calendar, sql Date, Time, Timestamp, JODA types as well as Long, BigDecimal and String (although it generally is not expected to parse systemTimeMillis to a String or BigDecimal).
- Specified by:
isDateTimeCapable
in interfaceScalarType<T>
-
convertFromMillis
public T convertFromMillis(long dateTime)
Description copied from interface:ScalarType
Convert the systemTimeMillis into the appropriate java object.For non dateTime types this will throw an exception.
- Specified by:
convertFromMillis
in interfaceScalarType<T>
-
readData
public T readData(DataInput dataInput) throws IOException
Description copied from interface:ScalarType
Read the value from binary input.- Specified by:
readData
in interfaceScalarType<T>
- Throws:
IOException
-
writeData
public void writeData(DataOutput dataOutput, T value) throws IOException
Description copied from interface:ScalarType
Write the value to binary output.- Specified by:
writeData
in interfaceScalarType<T>
- Throws:
IOException
-
-