java.lang.Object
org.tentackle.sql.datatypes.AbstractDataType<OffsetDateTime>
org.tentackle.sql.datatypes.AbstractDateTimeType<OffsetDateTime>
org.tentackle.sql.datatypes.OffsetDateTimeType
- All Implemented Interfaces:
DataType<OffsetDateTime>
@Service(DataType.class)
public final class OffsetDateTimeType
extends AbstractDateTimeType<OffsetDateTime>
Datatype for
This type is sortable by the first column.
OffsetDateTime.
Stored as 2 columns:
- the timestamp normalized to GMT (hence sortable)
- the zone offset in seconds
1970-01-01 00:00:00+00:00.This type is sortable by the first column.
-
Field Summary
Fields inherited from class org.tentackle.sql.datatypes.AbstractDataType
maxLinesInLiteral -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionformat(OffsetDateTime dateTime) Converts an offset date time object to a string.Gets the object from a result set.
Must be implemented ifDataType.isPredefined()returns false.getColumnAlias(int index) Gets the alias name of a column.intgetColumnCount(Backend backend) Gets the number of database columns.
A tentackle type may be mapped to more than one column for multi-column types such asBMoney.getColumnGetter(int index, String varName) Returns the java code to get the value of a column.getColumnValue(Backend backend, int index, OffsetDateTime value) Gets the value of a column.getCommentSuffix(Backend backend, int index) Gets the optional comment suffix.
If present, it will be appended to the comment.Gets the name of the Java type.getMappedNullValue(Backend backend, int index) Gets the mapped non-null value that represents the model's null value.
The method throws aBackendException, if !DataType.isMapNullSupported().intGets the column scale.
The scale may be differently aligned according to the backend.intGets the column size.
Sizes may be differently aligned according to the backend.getSqlType(Backend backend, int index) Gets the SQL type.
For predefined types, the type must be the same for all backends and the backend argument may be null.
Application specific types, however, can use different sql types for different backends and for those types the backend argument is always valid.booleanReturns whether this type supports mapping null values to some well-defined constant.static intoffsetOf(OffsetDateTime value) Derives the timezone offset from an OffsetDateTime value.Converts a string to an offset date time.Object[]set(Backend backend, PreparedStatement statement, int pos, OffsetDateTime object, boolean mapNull, Integer size) Sets the object into a prepared statement.
Must be implemented ifDataType.isPredefined()returns false.set(Backend backend, PreparedStatement statement, int pos, OffsetDateTime object, int index, boolean mapNull, Integer size) Sets a column of an object into a prepared statement.
Must be implemented ifDataType.isPredefined()returns false.static TimestamptimestampOf(OffsetDateTime value) Derives the timestamp from an OffsetDateTime value.Takes the string representation of a value and converts it to an SQL literal.
Some types need single quotes, for example.toString(OffsetDateTime object) Takes an object and converts it to a string that can in turn be parsed withDataType.valueOf(String).
The method is used to print a literal (for example the default value of a dumped attribute).Parses a string and converts to the value of this type.
The method is used to parse a literal (for example the default value defined in the model).valueOfLiteralToCode(String str, Integer index) Creates the java code to apply the valueOf method to a String.Methods inherited from class org.tentackle.sql.datatypes.AbstractDateTimeType
isDateOrTimeMethods inherited from class org.tentackle.sql.datatypes.AbstractDataType
assertColumnCountNotBackendSpecific, createColumnNames, createColumnNamesAsString, equals, getColumnSuffix, getDataTypeConstant, getSortableColumns, getVariant, hashCode, isBool, isColumnCountBackendSpecific, isDowncastNecessary, isJavaTypeGenerified, isLiteralSupported, isModelProvidingInnerType, isMutable, isNumeric, isPredefined, isPrimitive, isTimezoneApplicable, isUTCSupported, toNonPrimitive, toPrimitive, toString, valueStringToCode
-
Constructor Details
-
OffsetDateTimeType
public OffsetDateTimeType()Creates the datatype forOffsetDateTime.
-
-
Method Details
-
timestampOf
Derives the timestamp from an OffsetDateTime value.- Parameters:
value- the OffsetDateTime value- Returns:
- the timestamp
-
offsetOf
Derives the timezone offset from an OffsetDateTime value.- Parameters:
value- the OffsetDateTime value- Returns:
- the timezone offset in seconds
-
getJavaType
Description copied from interface:DataTypeGets the name of the Java type.- Returns:
- the type
-
isMapNullSupported
public boolean isMapNullSupported()Description copied from interface:DataTypeReturns whether this type supports mapping null values to some well-defined constant.- Specified by:
isMapNullSupportedin interfaceDataType<OffsetDateTime>- Overrides:
isMapNullSupportedin classAbstractDataType<OffsetDateTime>- Returns:
- true if mapNull supported
-
getMappedNullValue
Description copied from interface:DataTypeGets the mapped non-null value that represents the model's null value.
The method throws aBackendException, if !DataType.isMapNullSupported().- Specified by:
getMappedNullValuein interfaceDataType<OffsetDateTime>- Overrides:
getMappedNullValuein classAbstractDataType<OffsetDateTime>- Parameters:
backend- the backend, null if not backend-specificindex- the column index- Returns:
- the non-null mapped value
-
getColumnCount
Description copied from interface:DataTypeGets the number of database columns.
A tentackle type may be mapped to more than one column for multi-column types such asBMoney.- Specified by:
getColumnCountin interfaceDataType<OffsetDateTime>- Overrides:
getColumnCountin classAbstractDataType<OffsetDateTime>- Parameters:
backend- the backend, ignored if !DataType.isColumnCountBackendSpecific()- Returns:
- default is 1
-
getCommentSuffix
Description copied from interface:DataTypeGets the optional comment suffix.
If present, it will be appended to the comment.Important: for datatypes with more than one column, none or exactly one should be without suffix. See WurbletArgument in tentackle-wurblets.
- Specified by:
getCommentSuffixin interfaceDataType<OffsetDateTime>- Overrides:
getCommentSuffixin classAbstractDataType<OffsetDateTime>- Parameters:
backend- the backend, ignored if !DataType.isColumnCountBackendSpecific()index- the column index- Returns:
- the optional suffix
-
getColumnGetter
Description copied from interface:DataTypeReturns the java code to get the value of a column.- Specified by:
getColumnGetterin interfaceDataType<OffsetDateTime>- Overrides:
getColumnGetterin classAbstractDataType<OffsetDateTime>- Parameters:
index- the column indexvarName- the java variable name- Returns:
- the java code, empty string if this is a single column type
-
getColumnAlias
Description copied from interface:DataTypeGets the alias name of a column.- Specified by:
getColumnAliasin interfaceDataType<OffsetDateTime>- Overrides:
getColumnAliasin classAbstractDataType<OffsetDateTime>- Parameters:
index- the column index- Returns:
- the column's alias
-
getColumnValue
Description copied from interface:DataTypeGets the value of a column.- Specified by:
getColumnValuein interfaceDataType<OffsetDateTime>- Overrides:
getColumnValuein classAbstractDataType<OffsetDateTime>- Parameters:
backend- the backend, ignored if !DataType.isColumnCountBackendSpecific()index- the column indexvalue- the datatype's value according to the model- Returns:
- the column's value
-
getSize
Description copied from interface:DataTypeGets the column size.
Sizes may be differently aligned according to the backend.- Specified by:
getSizein interfaceDataType<OffsetDateTime>- Overrides:
getSizein classAbstractDataType<OffsetDateTime>- Parameters:
backend- the backendindex- the column indexsize- the size from the model- Returns:
- the column size
-
getScale
Description copied from interface:DataTypeGets the column scale.
The scale may be differently aligned according to the backend.- Specified by:
getScalein interfaceDataType<OffsetDateTime>- Overrides:
getScalein classAbstractDataType<OffsetDateTime>- Parameters:
backend- the backendindex- the column indexscale- the scale from the model- Returns:
- the column scale
-
getSqlType
Description copied from interface:DataTypeGets the SQL type.
For predefined types, the type must be the same for all backends and the backend argument may be null.
Application specific types, however, can use different sql types for different backends and for those types the backend argument is always valid.- Parameters:
backend- the backend, not used by predefined typesindex- the column index- Returns:
- the SQL type
-
valueOf
Description copied from interface:DataTypeParses a string and converts to the value of this type.
The method is used to parse a literal (for example the default value defined in the model).Notice: the method doesn't use any locale, so the results are always the same regardless of the JVM's locale.
- Parameters:
str- the source string- Returns:
- the value
-
toString
Description copied from interface:DataTypeTakes an object and converts it to a string that can in turn be parsed withDataType.valueOf(String).
The method is used to print a literal (for example the default value of a dumped attribute).Notice: the method doesn't use any locale, so the results are always the same regardless of the JVM's locale.
- Specified by:
toStringin interfaceDataType<OffsetDateTime>- Overrides:
toStringin classAbstractDataType<OffsetDateTime>- Parameters:
object- the object of this DataType- Returns:
- the printable string
-
toLiteral
Description copied from interface:DataTypeTakes the string representation of a value and converts it to an SQL literal.
Some types need single quotes, for example.- Specified by:
toLiteralin interfaceDataType<OffsetDateTime>- Overrides:
toLiteralin classAbstractDataType<OffsetDateTime>- Parameters:
str- the value stringindex- the column index, null if applies to object of this type- Returns:
- the SQL literal
-
valueOfLiteralToCode
Description copied from interface:DataTypeCreates the java code to apply the valueOf method to a String.- Specified by:
valueOfLiteralToCodein interfaceDataType<OffsetDateTime>- Overrides:
valueOfLiteralToCodein classAbstractDateTimeType<OffsetDateTime>- Parameters:
str- the literal to be parsedindex- the column index, null if applies to object of this type- Returns:
- the java code
-
set
public Object[] set(Backend backend, PreparedStatement statement, int pos, OffsetDateTime object, boolean mapNull, Integer size) throws SQLException Description copied from interface:DataTypeSets the object into a prepared statement.
Must be implemented ifDataType.isPredefined()returns false. Not invoked by framework otherwise.- Parameters:
backend- the database backendstatement- the prepared statementpos- the position of the first SQL valueobject- the object, may be nullmapNull- true if map null-values to non-null valuessize- the optional size specified in the model- Returns:
- the values stored in the prepared statement
- Throws:
SQLException- if failed
-
set
public Object set(Backend backend, PreparedStatement statement, int pos, OffsetDateTime object, int index, boolean mapNull, Integer size) throws SQLException Description copied from interface:DataTypeSets a column of an object into a prepared statement.
Must be implemented ifDataType.isPredefined()returns false. Not invoked by framework otherwise.- Specified by:
setin interfaceDataType<OffsetDateTime>- Overrides:
setin classAbstractDataType<OffsetDateTime>- Parameters:
backend- the database backendstatement- the prepared statementpos- the position of the first SQL valueobject- the object, may be nullindex- the column indexmapNull- true if map null-values to non-null valuessize- the optional size specified in the model- Returns:
- the object stored in the prepared statement
- Throws:
SQLException- if failed
-
get
public OffsetDateTime get(Backend backend, ResultSet resultSet, int[] pos, boolean mapNull, Integer size) throws SQLException Description copied from interface:DataTypeGets the object from a result set.
Must be implemented ifDataType.isPredefined()returns false. Not invoked by framework otherwise.- Parameters:
backend- the database backendresultSet- the result setpos- the column positions in the result setmapNull- true if unmap null-values from non-null valuessize- the optional size specified in the model- Returns:
- the object or null if column(s) IS NULL
- Throws:
SQLException- if failed
-
parse
Converts a string to an offset date time.- Parameters:
str- the string- Returns:
- the date time
- Throws:
BackendException- if parsing failed
-
format
Converts an offset date time object to a string.- Parameters:
dateTime- the date time- Returns:
- the formatted string
-