1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.logic;
20
21 import java.time.OffsetDateTime;
22 import java.util.List;
23 import org.apache.commons.lang3.tuple.Pair;
24 import org.apache.syncope.common.lib.to.EntityTO;
25 import org.apache.syncope.common.lib.to.ExecTO;
26 import org.apache.syncope.common.lib.to.JobTO;
27 import org.apache.syncope.common.lib.types.JobAction;
28 import org.apache.syncope.common.rest.api.batch.BatchResponseItem;
29 import org.apache.syncope.common.rest.api.beans.ExecSpecs;
30 import org.apache.syncope.core.persistence.api.dao.JobStatusDAO;
31 import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
32 import org.apache.syncope.core.provisioning.api.job.JobManager;
33 import org.springframework.scheduling.quartz.SchedulerFactoryBean;
34
35 public abstract class AbstractExecutableLogic<T extends EntityTO> extends AbstractJobLogic<T> {
36
37 public AbstractExecutableLogic(
38 final JobManager jobManager,
39 final SchedulerFactoryBean scheduler,
40 final JobStatusDAO jobStatusDAO) {
41
42 super(jobManager, scheduler, jobStatusDAO);
43 }
44
45 public abstract ExecTO execute(ExecSpecs specs);
46
47 public abstract Pair<Integer, List<ExecTO>> listExecutions(
48 String key,
49 OffsetDateTime before,
50 OffsetDateTime after,
51 int page,
52 int size,
53 List<OrderByClause> orderByClauses);
54
55 public abstract List<ExecTO> listRecentExecutions(int max);
56
57 public abstract ExecTO deleteExecution(String executionKey);
58
59 public abstract List<BatchResponseItem> deleteExecutions(
60 String key,
61 OffsetDateTime before,
62 OffsetDateTime after);
63
64 public abstract JobTO getJob(String key);
65
66 public abstract List<JobTO> listJobs();
67
68 public abstract void actionJob(String key, JobAction action);
69 }