1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.bremersee.dccon.repository.ldap.transcoder;
18
19 import java.time.OffsetDateTime;
20 import java.time.ZonedDateTime;
21 import java.util.Optional;
22 import org.ldaptive.io.AbstractStringValueTranscoder;
23 import org.ldaptive.io.GeneralizedTimeValueTranscoder;
24 import org.springframework.util.StringUtils;
25
26
27
28
29
30
31 public class GeneralizedTimeToOffsetDateTimeValueTranscoder
32 extends AbstractStringValueTranscoder<OffsetDateTime> {
33
34 private static final GeneralizedTimeValueTranscoder transcoder
35 = new GeneralizedTimeValueTranscoder();
36
37 @Override
38 public OffsetDateTime decodeStringValue(String value) {
39 return Optional.ofNullable(value)
40 .filter(StringUtils::hasText)
41 .map(transcoder::decodeStringValue)
42 .map(ZonedDateTime::toOffsetDateTime)
43 .orElse(null);
44 }
45
46 @Override
47 public String encodeStringValue(OffsetDateTime value) {
48 return Optional.ofNullable(value)
49 .map(OffsetDateTime::toZonedDateTime)
50 .map(transcoder::encodeStringValue)
51 .orElse(null);
52 }
53
54 @Override
55 public Class<OffsetDateTime> getType() {
56 return OffsetDateTime.class;
57 }
58 }