1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.bremersee.dccon.repository.ldap;
18
19 import static org.bremersee.data.ldaptive.LdaptiveEntryMapper.getAttributeValue;
20
21 import javax.validation.constraints.NotNull;
22 import lombok.AccessLevel;
23 import lombok.Getter;
24 import org.bremersee.dccon.config.DomainControllerProperties;
25 import org.bremersee.dccon.model.CommonAttributes;
26 import org.bremersee.dccon.repository.ldap.transcoder.GeneralizedTimeToOffsetDateTimeValueTranscoder;
27 import org.ldaptive.LdapEntry;
28
29
30
31
32
33
34 abstract class AbstractLdapMapper {
35
36 static final String WHEN_CREATED = "whenCreated";
37
38 static final String WHEN_CHANGED = "whenChanged";
39
40 private static final GeneralizedTimeToOffsetDateTimeValueTranscoder WHEN_TIME_VALUE_TRANSCODER
41 = new GeneralizedTimeToOffsetDateTimeValueTranscoder();
42
43 @Getter(AccessLevel.PROTECTED)
44 private DomainControllerProperties properties;
45
46
47
48
49
50
51 AbstractLdapMapper(DomainControllerProperties properties) {
52 this.properties = properties;
53 }
54
55
56
57
58
59
60
61
62
63 String createDn(
64 @NotNull final String rdn,
65 @NotNull final String rdnValue,
66 @NotNull final String baseDn) {
67 return rdn + "=" + rdnValue + "," + baseDn;
68 }
69
70
71
72
73
74
75
76 void mapCommonAttributes(final LdapEntry source, final CommonAttributes destination) {
77 if (source != null && destination != null) {
78 destination.setCreated(getAttributeValue(
79 source, WHEN_CREATED, WHEN_TIME_VALUE_TRANSCODER, null));
80 destination.setDistinguishedName(source.getDn());
81 destination.setModified(getAttributeValue(
82 source, WHEN_CHANGED, WHEN_TIME_VALUE_TRANSCODER, null));
83 }
84 }
85
86 }