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.List;
22 import javax.persistence.MappedSuperclass;
23 import org.apache.syncope.core.persistence.api.entity.task.Task;
24 import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
25 import org.apache.syncope.core.persistence.jpa.entity.AbstractGeneratedKeyEntity;
26
27 @MappedSuperclass
28 public abstract class AbstractTask<T extends Task<T>> extends AbstractGeneratedKeyEntity implements Task<T> {
29
30 private static final long serialVersionUID = 5837401178128177511L;
31
32 protected abstract List<TaskExec<T>> executions();
33
34 protected abstract Class<? extends TaskExec<T>> executionClass();
35
36 @Override
37 public boolean add(final TaskExec<T> exec) {
38 Class<? extends TaskExec<T>> clazz = executionClass();
39 checkType(exec, clazz);
40 return exec != null
41 && !executions().contains(clazz.cast(exec))
42 && executions().add(clazz.cast(exec));
43 }
44
45 @Override
46 public List<? extends TaskExec<T>> getExecs() {
47 return executions();
48 }
49 }