1 | package de.uka.ipd.sdq.reliability.solver.runconfig; |
2 | |
3 | import org.eclipse.debug.core.ILaunch; |
4 | |
5 | import de.fzi.se.accuracy.jobs.TransformPCMForAccuracyInfluenceAnalysisJob; |
6 | import de.uka.ipd.sdq.pcmsolver.runconfig.PCMSolverWorkflowRunConfiguration; |
7 | import de.uka.ipd.sdq.workflow.ICompositeJob; |
8 | import de.uka.ipd.sdq.workflow.OrderPreservingBlackboardCompositeJob; |
9 | import de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard; |
10 | import de.uka.ipd.sdq.workflow.pcm.jobs.EventsTransformationJob; |
11 | import de.uka.ipd.sdq.workflow.pcm.jobs.LoadMiddlewareConfigurationIntoBlackboardJob; |
12 | import de.uka.ipd.sdq.workflow.pcm.jobs.LoadPCMModelsIntoBlackboardJob; |
13 | import de.uka.ipd.sdq.workflow.pcm.jobs.StoreAllPCMModelsJob; |
14 | import de.uka.ipd.sdq.workflow.pcm.jobs.ValidatePCMModelsJob; |
15 | |
16 | public class PCMSolverReliabilityJob extends |
17 | OrderPreservingBlackboardCompositeJob<MDSDBlackboard> implements |
18 | ICompositeJob { |
19 | |
20 | public PCMSolverReliabilityJob(PCMSolverWorkflowRunConfiguration config, |
21 | ILaunch launch) { |
22 | super(); |
23 | |
24 | // 1. Load PCM Models into memory |
25 | // This now also creates a plug-in in the workspace and stores temporary |
26 | // data there: |
27 | this.addJob(new LoadPCMModelsIntoBlackboardJob(config)); |
28 | this.addJob(new LoadMiddlewareConfigurationIntoBlackboardJob(config)); |
29 | |
30 | // 2. Validate PCM Models |
31 | this.addJob(new ValidatePCMModelsJob(config)); |
32 | |
33 | // -- Stage Model modification |
34 | // 3. Modification for AccuracyInfluenceAnalysis |
35 | if (config.isAccuracyInfluenceAnalysisEnabled()) { |
36 | this.add(new TransformPCMForAccuracyInfluenceAnalysisJob(config)); |
37 | } |
38 | |
39 | // 4. Transform Event Model Elements |
40 | this.add(new EventsTransformationJob(config)); |
41 | |
42 | // -- Stage analysis |
43 | // 5. Store resulting model(s) |
44 | this.add(new StoreAllPCMModelsJob(config)); |
45 | |
46 | // 6. Run Analysis on Loaded Models |
47 | this.add(new RunPCMReliabilityAnalysisJob(config)); |
48 | } |
49 | } |