2121
2222import org .hibernate .HibernateException ;
2323import org .hibernate .dialect .Dialect ;
24- import org .hibernate .internal .util .CharSequenceHelper ;
2524import org .hibernate .sql .ast .spi .SqlAppender ;
2625import org .hibernate .type .descriptor .DateTimeUtils ;
2726import org .hibernate .type .descriptor .WrapperOptions ;
3130
3231import jakarta .persistence .TemporalType ;
3332
33+ import static org .hibernate .internal .util .CharSequenceHelper .subSequence ;
34+
3435/**
3536 * Descriptor for {@link Time} handling.
3637 *
4243public class JdbcTimeJavaType extends AbstractTemporalJavaType <Date > {
4344 public static final JdbcTimeJavaType INSTANCE = new JdbcTimeJavaType ();
4445
45- public static final String TIME_FORMAT = "HH:mm:ss.SSS" ;
46-
4746 public static final DateTimeFormatter LITERAL_FORMATTER = DateTimeFormatter .ISO_LOCAL_TIME ;
4847
49- /**
50- * Alias for {@link DateTimeFormatter#ISO_LOCAL_TIME}.
51- *
52- * Intended for use with logging
53- *
54- * @see #LITERAL_FORMATTER
55- */
56- @ SuppressWarnings ("unused" )
57- public static final DateTimeFormatter LOGGABLE_FORMATTER = DateTimeFormatter .ISO_LOCAL_TIME ;
5848 private static final DateTimeFormatter ENCODED_FORMATTER = new DateTimeFormatterBuilder ()
5949 .optionalStart ()
6050 .append ( DateTimeFormatter .ISO_DATE )
@@ -63,6 +53,7 @@ public class JdbcTimeJavaType extends AbstractTemporalJavaType<Date> {
6353 .append ( DateTimeFormatter .ISO_LOCAL_TIME )
6454 .toFormatter ();
6555
56+
6657 public JdbcTimeJavaType () {
6758 super ( Time .class , TimeMutabilityPlan .INSTANCE );
6859 }
@@ -76,7 +67,7 @@ public TemporalType getPrecision() {
7667 public boolean isInstance (Object value ) {
7768 // this check holds true for java.sql.Time as well
7869 return value instanceof Date
79- && !( value instanceof java .sql .Date );
70+ && !( value instanceof java .sql .Date );
8071 }
8172
8273 @ Override
@@ -111,9 +102,9 @@ public boolean areEqual(Date one, Date another) {
111102 calendar2 .setTime ( another );
112103
113104 return calendar1 .get ( Calendar .HOUR_OF_DAY ) == calendar2 .get ( Calendar .HOUR_OF_DAY )
114- && calendar1 .get ( Calendar .MINUTE ) == calendar2 .get ( Calendar .MINUTE )
115- && calendar1 .get ( Calendar .SECOND ) == calendar2 .get ( Calendar .SECOND )
116- && calendar1 .get ( Calendar .MILLISECOND ) == calendar2 .get ( Calendar .MILLISECOND );
105+ && calendar1 .get ( Calendar .MINUTE ) == calendar2 .get ( Calendar .MINUTE )
106+ && calendar1 .get ( Calendar .SECOND ) == calendar2 .get ( Calendar .SECOND )
107+ && calendar1 .get ( Calendar .MILLISECOND ) == calendar2 .get ( Calendar .MILLISECOND );
117108 }
118109
119110 @ Override
@@ -217,8 +208,8 @@ public Date wrap(Object value, WrapperOptions options) {
217208
218209 @ Override
219210 public String toString (Date value ) {
220- if ( value instanceof java .sql .Time ) {
221- return LITERAL_FORMATTER .format ( ( ( java . sql . Time ) value ) .toLocalTime () );
211+ if ( value instanceof java .sql .Time time ) {
212+ return LITERAL_FORMATTER .format ( time .toLocalTime () );
222213 }
223214 else {
224215 return LITERAL_FORMATTER .format ( LocalTime .ofInstant ( value .toInstant (), ZoneOffset .systemDefault () ) );
@@ -242,13 +233,7 @@ public Date fromString(CharSequence string) {
242233 @ Override
243234 public Date fromEncodedString (CharSequence charSequence , int start , int end ) {
244235 try {
245- final TemporalAccessor accessor = ENCODED_FORMATTER .parse (
246- CharSequenceHelper .subSequence (
247- charSequence ,
248- start ,
249- end
250- )
251- );
236+ final TemporalAccessor accessor = ENCODED_FORMATTER .parse ( subSequence ( charSequence , start , end ) );
252237 return java .sql .Time .valueOf ( accessor .query ( LocalTime ::from ) );
253238 }
254239 catch ( DateTimeParseException pe ) {
@@ -258,8 +243,8 @@ public Date fromEncodedString(CharSequence charSequence, int start, int end) {
258243
259244 @ Override
260245 public void appendEncodedString (SqlAppender sb , Date value ) {
261- if ( value instanceof java .sql .Time ) {
262- LITERAL_FORMATTER .formatTo ( ( ( java . sql . Time ) value ) .toLocalTime (), sb );
246+ if ( value instanceof java .sql .Time time ) {
247+ LITERAL_FORMATTER .formatTo ( time .toLocalTime (), sb );
263248 }
264249 else {
265250 LITERAL_FORMATTER .formatTo ( LocalTime .ofInstant ( value .toInstant (), ZoneOffset .systemDefault () ), sb );
0 commit comments