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.PullCorrelationRuleEntity;
30 import org.apache.syncope.core.persistence.api.entity.policy.PullPolicy;
31
32 @Entity
33 @Table(name = JPAPullPolicy.TABLE)
34 public class JPAPullPolicy extends AbstractProvisioningPolicy implements PullPolicy {
35
36 private static final long serialVersionUID = -6090413855809521279L;
37
38 public static final String TABLE = "PullPolicy";
39
40 @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER, mappedBy = "pullPolicy")
41 private List<JPAPullCorrelationRuleEntity> correlationRules = new ArrayList<>();
42
43 @Override
44 public boolean add(final PullCorrelationRuleEntity filter) {
45 checkType(filter, JPAPullCorrelationRuleEntity.class);
46 return this.correlationRules.add((JPAPullCorrelationRuleEntity) filter);
47 }
48
49 @Override
50 public Optional<? extends PullCorrelationRuleEntity> 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 PullCorrelationRuleEntity> getCorrelationRules() {
57 return correlationRules;
58 }
59 }