1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.common.lib.types;
20
21 import org.apache.syncope.common.lib.to.MacroTaskTO;
22 import org.apache.syncope.common.lib.to.NotificationTaskTO;
23 import org.apache.syncope.common.lib.to.PropagationTaskTO;
24 import org.apache.syncope.common.lib.to.PullTaskTO;
25 import org.apache.syncope.common.lib.to.PushTaskTO;
26 import org.apache.syncope.common.lib.to.SchedTaskTO;
27 import org.apache.syncope.common.lib.to.TaskTO;
28
29 public enum TaskType {
30
31 PROPAGATION(PropagationTaskTO.class),
32 NOTIFICATION(NotificationTaskTO.class),
33 SCHEDULED(SchedTaskTO.class),
34 PULL(PullTaskTO.class),
35 PUSH(PushTaskTO.class),
36 MACRO(MacroTaskTO.class);
37
38 private final Class<? extends TaskTO> toClass;
39
40 TaskType(final Class<? extends TaskTO> toClass) {
41 this.toClass = toClass;
42 }
43
44 public Class<? extends TaskTO> getToClass() {
45 return toClass;
46 }
47
48 public static TaskType fromTOClass(final Class<? extends TaskTO> clazz) {
49 return PushTaskTO.class.isAssignableFrom(clazz)
50 ? TaskType.PUSH
51 : PullTaskTO.class.isAssignableFrom(clazz)
52 ? TaskType.PULL
53 : NotificationTaskTO.class.isAssignableFrom(clazz)
54 ? TaskType.NOTIFICATION
55 : PropagationTaskTO.class.isAssignableFrom(clazz)
56 ? TaskType.PROPAGATION
57 : MacroTaskTO.class.isAssignableFrom(clazz)
58 ? TaskType.MACRO
59 : TaskType.SCHEDULED;
60 }
61 }