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 javax.persistence.ManyToOne;
22 import javax.persistence.MappedSuperclass;
23 import org.apache.syncope.core.persistence.api.entity.AnyType;
24 import org.apache.syncope.core.persistence.api.entity.Implementation;
25 import org.apache.syncope.core.persistence.api.entity.policy.CorrelationRuleEntity;
26 import org.apache.syncope.core.persistence.jpa.entity.AbstractGeneratedKeyEntity;
27 import org.apache.syncope.core.persistence.jpa.entity.JPAAnyType;
28 import org.apache.syncope.core.persistence.jpa.entity.JPAImplementation;
29
30 @MappedSuperclass
31 abstract class AbstractCorrelationRuleEntity extends AbstractGeneratedKeyEntity implements CorrelationRuleEntity {
32
33 private static final long serialVersionUID = 4017405130146577834L;
34
35 @ManyToOne(optional = false)
36 private JPAAnyType anyType;
37
38 @ManyToOne(optional = false)
39 private JPAImplementation implementation;
40
41 @Override
42 public AnyType getAnyType() {
43 return anyType;
44 }
45
46 @Override
47 public void setAnyType(final AnyType anyType) {
48 checkType(anyType, JPAAnyType.class);
49 this.anyType = (JPAAnyType) anyType;
50 }
51
52 @Override
53 public Implementation getImplementation() {
54 return implementation;
55 }
56
57 protected abstract String getImplementationType();
58
59 @Override
60 public void setImplementation(final Implementation implementation) {
61 checkType(implementation, JPAImplementation.class);
62 checkImplementationType(implementation, getImplementationType());
63 this.implementation = (JPAImplementation) implementation;
64 }
65 }