Prepared for the development of the next release 1.0.1
[jpa-converters] / src / main / java / de / juplo / jpa / converters / OffsetTimeConverter.java
1 package de.juplo.jpa.converters;
2
3 import java.sql.Time;
4 import java.time.OffsetTime;
5 import java.time.ZoneOffset;
6 import javax.persistence.AttributeConverter;
7 import javax.persistence.Converter;
8
9
10 /**
11  * Converts an {@link OffsetTime} to a {@link Time}.
12  * @author Kai Moritz
13  */
14 @Converter(autoApply = true)
15 public class OffsetTimeConverter implements AttributeConverter<OffsetTime, Time>
16 {
17   @Override
18   public Time convertToDatabaseColumn(OffsetTime ot)
19   {
20     if (ot == null)
21       return null;
22     ZoneOffset offset = ot.getOffset();
23     return Time.valueOf(ot.withOffsetSameInstant(ZoneOffset.UTC).toLocalTime());
24   }
25
26   @Override
27   public OffsetTime convertToEntityAttribute(Time time)
28   {
29     if (time == null)
30       return null;
31     return OffsetTime.of(time.toLocalTime(), ZoneOffset.UTC);
32   }
33 }