Prepared for the development of the next release 1.0.1
[jpa-converters] / src / main / java / de / juplo / jpa / converters / TemporalAmountToNanosConverter.java
1 package de.juplo.jpa.converters;
2
3 import java.time.Duration;
4 import java.time.temporal.ChronoUnit;
5 import java.time.temporal.TemporalAmount;
6 import javax.persistence.AttributeConverter;
7 import javax.persistence.Converter;
8
9
10 /**
11  * Converts a {@link TemporalAmount} into a {@link Long} representing
12  * nanoseconds.
13  * @author Kai Moritz
14  */
15 @Converter
16 public class TemporalAmountToNanosConverter implements AttributeConverter<TemporalAmount, Long>
17 {
18   @Override
19   public Long convertToDatabaseColumn(TemporalAmount amount)
20   {
21     if (amount == null)
22       return null;
23     return amount.get(ChronoUnit.NANOS);
24   }
25
26   @Override
27   public TemporalAmount convertToEntityAttribute(Long nanos)
28   {
29     if (nanos == null)
30       return null;
31     return Duration.ofNanos(nanos);
32   }
33 }