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 java.util.ArrayList;
22 import java.util.List;
23 import java.util.Optional;
24 import javax.persistence.Cacheable;
25 import javax.persistence.CascadeType;
26 import javax.persistence.Entity;
27 import javax.persistence.FetchType;
28 import javax.persistence.OneToMany;
29 import javax.persistence.Table;
30 import org.apache.syncope.core.persistence.api.entity.AnyType;
31 import org.apache.syncope.core.persistence.api.entity.DynRealm;
32 import org.apache.syncope.core.persistence.api.entity.DynRealmMembership;
33 import org.apache.syncope.core.persistence.jpa.validation.entity.DynRealmCheck;
34
35 @Entity
36 @Table(name = JPADynRealm.TABLE)
37 @Cacheable
38 @DynRealmCheck
39 public class JPADynRealm extends AbstractProvidedKeyEntity implements DynRealm {
40
41 private static final long serialVersionUID = -6851035842423560341L;
42
43 public static final String TABLE = "DynRealm";
44
45 @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER, mappedBy = "dynRealm")
46 private List<JPADynRealmMembership> dynMemberships = new ArrayList<>();
47
48 @Override
49 public boolean add(final DynRealmMembership dynRealmMembership) {
50 checkType(dynRealmMembership, JPADynRealmMembership.class);
51 return this.dynMemberships.add((JPADynRealmMembership) dynRealmMembership);
52 }
53
54 @Override
55 public Optional<? extends DynRealmMembership> getDynMembership(final AnyType anyType) {
56 return dynMemberships.stream().
57 filter(dynRealmMembership -> anyType != null && anyType.equals(dynRealmMembership.getAnyType())).
58 findFirst();
59 }
60
61 @Override
62 public List<? extends DynRealmMembership> getDynMemberships() {
63 return dynMemberships;
64 }
65
66 }