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.group;
20
21 import com.fasterxml.jackson.core.type.TypeReference;
22 import java.util.List;
23 import javax.persistence.PostLoad;
24 import javax.persistence.PostPersist;
25 import javax.persistence.PostUpdate;
26 import javax.persistence.PrePersist;
27 import javax.persistence.PreUpdate;
28 import org.apache.syncope.core.persistence.api.entity.JSONPlainAttr;
29 import org.apache.syncope.core.persistence.api.entity.group.Group;
30 import org.apache.syncope.core.persistence.jpa.entity.JPAJSONEntityListener;
31 import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
32
33 public class JPAJSONGroupListener extends JPAJSONEntityListener<Group> {
34
35 protected static final TypeReference<List<JPAJSONGPlainAttr>> TYPEREF =
36 new TypeReference<List<JPAJSONGPlainAttr>>() {
37 };
38
39 @Override
40 protected List<? extends JSONPlainAttr<Group>> getAttrs(final String plainAttrsJSON) {
41 return POJOHelper.deserialize(plainAttrsJSON, TYPEREF);
42 }
43
44 @PostLoad
45 public void read(final JPAJSONGroup group) {
46 super.json2list(group, false);
47 }
48
49 @PrePersist
50 @PreUpdate
51 public void save(final JPAJSONGroup group) {
52 super.list2json(group);
53 }
54
55 @PostPersist
56 @PostUpdate
57 public void readAfterSave(final JPAJSONGroup group) {
58 super.json2list(group, true);
59 }
60 }