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.task;
20
21 import java.util.ArrayList;
22 import java.util.List;
23 import javax.persistence.CascadeType;
24 import javax.persistence.Entity;
25 import javax.persistence.EnumType;
26 import javax.persistence.Enumerated;
27 import javax.persistence.Lob;
28 import javax.persistence.ManyToOne;
29 import javax.persistence.OneToMany;
30 import javax.persistence.Table;
31 import org.apache.commons.lang3.StringUtils;
32 import org.apache.syncope.common.lib.types.AnyTypeKind;
33 import org.apache.syncope.common.lib.types.ResourceOperation;
34 import org.apache.syncope.core.persistence.api.entity.ExternalResource;
35 import org.apache.syncope.core.persistence.api.entity.task.PropagationData;
36 import org.apache.syncope.core.persistence.api.entity.task.PropagationTask;
37 import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
38 import org.apache.syncope.core.persistence.jpa.entity.JPAExternalResource;
39 import org.apache.syncope.core.persistence.jpa.validation.entity.PropagationTaskCheck;
40 import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
41
42
43
44
45 @Entity
46 @Table(name = JPAPropagationTask.TABLE)
47 @PropagationTaskCheck
48 public class JPAPropagationTask extends AbstractTask<PropagationTask> implements PropagationTask {
49
50 private static final long serialVersionUID = 7086054884614511210L;
51
52 public static final String TABLE = "PropagationTask";
53
54
55
56
57 @Enumerated(EnumType.STRING)
58 private ResourceOperation operation;
59
60
61
62
63 private String connObjectKey;
64
65
66
67
68 private String oldConnObjectKey;
69
70
71
72
73 @Lob
74 private String propagationData;
75
76 private String objectClassName;
77
78 @Enumerated(EnumType.STRING)
79 private AnyTypeKind anyTypeKind;
80
81 private String anyType;
82
83 private String entityKey;
84
85
86
87
88 @ManyToOne
89 private JPAExternalResource resource;
90
91 @OneToMany(targetEntity = JPAPropagationTaskExec.class,
92 cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "task")
93 private List<TaskExec<PropagationTask>> executions = new ArrayList<>();
94
95 @Override
96 public String getConnObjectKey() {
97 return connObjectKey;
98 }
99
100 @Override
101 public void setConnObjectKey(final String connObjectKey) {
102 this.connObjectKey = connObjectKey;
103 }
104
105 @Override
106 public String getOldConnObjectKey() {
107 return oldConnObjectKey;
108 }
109
110 @Override
111 public void setOldConnObjectKey(final String oldConnObjectKey) {
112 this.oldConnObjectKey = oldConnObjectKey;
113 }
114
115 @Override
116 public String getSerializedPropagationData() {
117 return propagationData;
118 }
119
120 @Override
121 public PropagationData getPropagationData() {
122 PropagationData result = null;
123 if (StringUtils.isNotBlank(propagationData)) {
124 result = POJOHelper.deserialize(propagationData, PropagationData.class);
125 }
126 return result;
127 }
128
129 @Override
130 public void setPropagationData(final PropagationData propagationData) {
131 this.propagationData = POJOHelper.serialize(propagationData);
132 }
133
134 @Override
135 public ResourceOperation getOperation() {
136 return operation;
137 }
138
139 @Override
140
141 public void setOperation(final ResourceOperation operation) {
142 this.operation = operation;
143 }
144
145 @Override
146 public String getObjectClassName() {
147 return objectClassName;
148 }
149
150 @Override
151 public void setObjectClassName(final String objectClassName) {
152 this.objectClassName = objectClassName;
153 }
154
155 @Override
156 public AnyTypeKind getAnyTypeKind() {
157 return anyTypeKind;
158 }
159
160 @Override
161 public void setAnyTypeKind(final AnyTypeKind anyTypeKind) {
162 this.anyTypeKind = anyTypeKind;
163 }
164
165 @Override
166 public String getAnyType() {
167 return anyType;
168 }
169
170 @Override
171 public void setAnyType(final String anyType) {
172 this.anyType = anyType;
173 }
174
175 @Override
176 public String getEntityKey() {
177 return entityKey;
178 }
179
180 @Override
181 public void setEntityKey(final String entityKey) {
182 this.entityKey = entityKey;
183 }
184
185 @Override
186 public ExternalResource getResource() {
187 return resource;
188 }
189
190 @Override
191 public void setResource(final ExternalResource resource) {
192 checkType(resource, JPAExternalResource.class);
193 this.resource = (JPAExternalResource) resource;
194 }
195
196 @Override
197 protected Class<? extends TaskExec<PropagationTask>> executionClass() {
198 return JPAPropagationTaskExec.class;
199 }
200
201 @Override
202 protected List<TaskExec<PropagationTask>> executions() {
203 return executions;
204 }
205 }