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.policy;
20
21 import java.util.ArrayList;
22 import java.util.List;
23 import java.util.Optional;
24 import javax.persistence.CascadeType;
25 import javax.persistence.Entity;
26 import javax.persistence.FetchType;
27 import javax.persistence.OneToMany;
28 import javax.persistence.Table;
29 import org.apache.syncope.core.persistence.api.entity.policy.PushCorrelationRuleEntity;
30 import org.apache.syncope.core.persistence.api.entity.policy.PushPolicy;
31
32 @Entity
33 @Table(name = JPAPushPolicy.TABLE)
34 public class JPAPushPolicy extends AbstractProvisioningPolicy implements PushPolicy {
35
36 private static final long serialVersionUID = -5875589156893921113L;
37
38 public static final String TABLE = "PushPolicy";
39
40 @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER, mappedBy = "pushPolicy")
41 private List<JPAPushCorrelationRuleEntity> correlationRules = new ArrayList<>();
42
43 @Override
44 public boolean add(final PushCorrelationRuleEntity filter) {
45 checkType(filter, JPAPushCorrelationRuleEntity.class);
46 return this.correlationRules.add((JPAPushCorrelationRuleEntity) filter);
47 }
48
49 @Override
50 public Optional<? extends PushCorrelationRuleEntity> getCorrelationRule(final String anyType) {
51 return correlationRules.stream().
52 filter(rule -> anyType != null && anyType.equals(rule.getAnyType().getKey())).findFirst();
53 }
54
55 @Override
56 public List<? extends PushCorrelationRuleEntity> getCorrelationRules() {
57 return correlationRules;
58 }
59 }