1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.persistence.jpa.entity;
20
21 import com.fasterxml.jackson.core.JsonProcessingException;
22 import com.fasterxml.jackson.databind.JsonNode;
23 import com.fasterxml.jackson.databind.json.JsonMapper;
24 import java.io.IOException;
25 import javax.persistence.Entity;
26 import javax.persistence.Lob;
27 import javax.persistence.Table;
28 import org.apache.syncope.core.persistence.api.entity.ConfParam;
29
30 @Entity
31 @Table(name = JPAConfParam.TABLE)
32 public class JPAConfParam extends AbstractProvidedKeyEntity implements ConfParam {
33
34 private static final long serialVersionUID = 8742750097008236475L;
35
36 private static final JsonMapper MAPPER = JsonMapper.builder().findAndAddModules().build();
37
38 public static final String TABLE = "ConfParam";
39
40 @Lob
41 private String jsonValue;
42
43 @Override
44 public JsonNode getValue() {
45 JsonNode deserialized = null;
46 try {
47 deserialized = MAPPER.readTree(jsonValue);
48 } catch (final IOException e) {
49 LOG.error("Could not deserialize {}", jsonValue, e);
50 }
51 return deserialized;
52 }
53
54 @Override
55 public void setValue(final JsonNode value) {
56 try {
57 this.jsonValue = MAPPER.writeValueAsString(value);
58 } catch (JsonProcessingException e) {
59 LOG.error("Could not serialize {}", value, e);
60 }
61 }
62 }