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.dao;
20
21 import org.apache.syncope.core.persistence.api.dao.PlainAttrDAO;
22 import org.apache.syncope.core.persistence.api.entity.Attributable;
23 import org.apache.syncope.core.persistence.api.entity.PlainAttr;
24 import org.apache.syncope.core.persistence.api.entity.anyobject.APlainAttr;
25 import org.apache.syncope.core.persistence.api.entity.group.GPlainAttr;
26 import org.apache.syncope.core.persistence.api.entity.user.UPlainAttr;
27 import org.apache.syncope.core.persistence.jpa.entity.AbstractPlainAttr;
28 import org.apache.syncope.core.persistence.jpa.entity.anyobject.JPAAPlainAttr;
29 import org.apache.syncope.core.persistence.jpa.entity.group.JPAGPlainAttr;
30 import org.apache.syncope.core.persistence.jpa.entity.user.JPAUPlainAttr;
31
32 public class JPAPlainAttrDAO extends AbstractDAO<PlainAttr<?>> implements PlainAttrDAO {
33
34 public static <T extends PlainAttr<?>> Class<? extends AbstractPlainAttr<?>> getEntityReference(
35 final Class<T> reference) {
36
37 return GPlainAttr.class.isAssignableFrom(reference)
38 ? JPAGPlainAttr.class
39 : APlainAttr.class.isAssignableFrom(reference)
40 ? JPAAPlainAttr.class
41 : UPlainAttr.class.isAssignableFrom(reference)
42 ? JPAUPlainAttr.class
43 : null;
44 }
45
46 @Override
47 @SuppressWarnings("unchecked")
48 public <T extends PlainAttr<?>> void delete(final T plainAttr) {
49 if (plainAttr.getOwner() != null) {
50 ((Attributable<T>) plainAttr.getOwner()).remove(plainAttr);
51 }
52
53 entityManager().remove(plainAttr);
54 }
55 }