]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/execution/tasks/SlcManagerTask.java
Une nouvelle version du SlcManager qui peut se lancer dans un simpleFlow
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.simple / src / main / java / org / argeo / slc / core / execution / tasks / SlcManagerTask.java
1 package org.argeo.slc.core.execution.tasks;
2
3 import java.lang.reflect.Method;
4 import java.util.UUID;
5
6 import org.argeo.slc.SlcException;
7 import org.argeo.slc.deploy.DeployedSystem;
8 import org.argeo.slc.deploy.DeployedSystemManager;
9 import org.argeo.slc.execution.Executable;
10 import org.argeo.slc.process.SlcExecution;
11 import org.argeo.slc.process.SlcExecutionRelated;
12 import org.argeo.slc.process.SlcExecutionStep;
13 import org.argeo.slc.structure.StructureRegistry;
14
15 public class SlcManagerTask implements Executable, SlcExecutionRelated {
16 private String uuid;
17 private String slcExecutionUuid;
18 private String slcExecutionStepUuid;
19
20 private String action;
21 private DeployedSystemManager<DeployedSystem> manager;
22
23 public final void execute() {
24 uuid = UUID.randomUUID().toString();
25 executeActions(StructureRegistry.ALL);
26 }
27
28 protected void executeActions(String mode) {
29 try {
30 Method method = manager.getClass().getMethod(action, null);
31 method.invoke(manager, null);
32 } catch (Exception e) {
33 throw new SlcException("Cannot execute action " + action
34 + " for manager " + manager, e);
35 }
36 }
37
38 public void setAction(String action) {
39 this.action = action;
40 }
41
42 public void setManager(DeployedSystemManager<DeployedSystem> manager) {
43 this.manager = manager;
44 }
45
46 public String getUuid() {
47 return uuid;
48 }
49
50 public void setUuid(String uuid) {
51 this.uuid = uuid;
52 }
53
54 public String getSlcExecutionUuid() {
55 return slcExecutionUuid;
56 }
57
58 public void setSlcExecutionUuid(String slcExecutionUuid) {
59 this.slcExecutionUuid = slcExecutionUuid;
60 }
61
62 public String getSlcExecutionStepUuid() {
63 return slcExecutionStepUuid;
64 }
65
66 public void setSlcExecutionStepUuid(String slcExecutionStepUuid) {
67 this.slcExecutionStepUuid = slcExecutionStepUuid;
68 }
69
70 public void notifySlcExecution(SlcExecution slcExecution) {
71 if (slcExecution != null) {
72 slcExecutionUuid = slcExecution.getUuid();
73 SlcExecutionStep step = slcExecution.currentStep();
74 if (step != null) {
75 slcExecutionStepUuid = step.getUuid();
76 }
77 }
78 }
79 }