1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.provisioning.java.data;
20
21 import java.util.Optional;
22 import org.apache.syncope.common.lib.Attr;
23 import org.apache.syncope.core.persistence.api.dao.WAConfigDAO;
24 import org.apache.syncope.core.persistence.api.entity.EntityFactory;
25 import org.apache.syncope.core.persistence.api.entity.am.WAConfigEntry;
26 import org.apache.syncope.core.provisioning.api.data.WAConfigDataBinder;
27
28 public class WAConfigDataBinderImpl implements WAConfigDataBinder {
29
30 protected final WAConfigDAO waConfigDAO;
31
32 protected final EntityFactory entityFactory;
33
34 public WAConfigDataBinderImpl(final WAConfigDAO waConfigDAO, final EntityFactory entityFactory) {
35 this.waConfigDAO = waConfigDAO;
36 this.entityFactory = entityFactory;
37 }
38
39 @Override
40 public Attr get(final WAConfigEntry waConfigEntry) {
41 return new Attr.Builder(waConfigEntry.getKey()).values(waConfigEntry.getValues()).build();
42 }
43
44 @Override
45 public WAConfigEntry set(final Attr attr) {
46 WAConfigEntry entry = Optional.ofNullable(waConfigDAO.find(attr.getSchema())).orElseGet(() -> {
47 WAConfigEntry waConfigEntry = entityFactory.newEntity(WAConfigEntry.class);
48 waConfigEntry.setKey(attr.getSchema());
49 return waConfigEntry;
50 });
51 entry.setValues(attr.getValues());
52 return entry;
53 }
54 }