diff options
Diffstat (limited to 'Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui')
11 files changed, 0 insertions, 410 deletions
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/.classpath b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/.classpath deleted file mode 100644 index 428337e5..00000000 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/.classpath +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <classpath> | ||
3 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> | ||
4 | <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> | ||
5 | <classpathentry kind="src" path="src"/> | ||
6 | <classpathentry kind="src" path="xtend-gen"/> | ||
7 | <classpathentry kind="output" path="bin"/> | ||
8 | </classpath> | ||
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/.project b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/.project deleted file mode 100644 index 98f85839..00000000 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/.project +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <projectDescription> | ||
3 | <name>hu.bme.mit.inf.dslreasoner.faulttree.ui</name> | ||
4 | <comment></comment> | ||
5 | <projects> | ||
6 | </projects> | ||
7 | <buildSpec> | ||
8 | <buildCommand> | ||
9 | <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> | ||
10 | <arguments> | ||
11 | </arguments> | ||
12 | </buildCommand> | ||
13 | <buildCommand> | ||
14 | <name>org.eclipse.jdt.core.javabuilder</name> | ||
15 | <arguments> | ||
16 | </arguments> | ||
17 | </buildCommand> | ||
18 | <buildCommand> | ||
19 | <name>org.eclipse.pde.ManifestBuilder</name> | ||
20 | <arguments> | ||
21 | </arguments> | ||
22 | </buildCommand> | ||
23 | <buildCommand> | ||
24 | <name>org.eclipse.pde.SchemaBuilder</name> | ||
25 | <arguments> | ||
26 | </arguments> | ||
27 | </buildCommand> | ||
28 | </buildSpec> | ||
29 | <natures> | ||
30 | <nature>org.eclipse.pde.PluginNature</nature> | ||
31 | <nature>org.eclipse.jdt.core.javanature</nature> | ||
32 | <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> | ||
33 | </natures> | ||
34 | </projectDescription> | ||
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/.settings/org.eclipse.jdt.core.prefs b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 0c68a61d..00000000 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/.settings/org.eclipse.jdt.core.prefs +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | eclipse.preferences.version=1 | ||
2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled | ||
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 | ||
4 | org.eclipse.jdt.core.compiler.compliance=1.8 | ||
5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error | ||
6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error | ||
7 | org.eclipse.jdt.core.compiler.source=1.8 | ||
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/META-INF/MANIFEST.MF b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/META-INF/MANIFEST.MF deleted file mode 100644 index 59c1c5f7..00000000 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/META-INF/MANIFEST.MF +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | Manifest-Version: 1.0 | ||
2 | Bundle-ManifestVersion: 2 | ||
3 | Bundle-Name: Ui | ||
4 | Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.faulttree.ui;singleton:=true | ||
5 | Bundle-Version: 1.0.0.qualifier | ||
6 | Bundle-Activator: hu.bme.mit.inf.dslreasoner.faulttree.ui.Activator | ||
7 | Require-Bundle: org.eclipse.ui, | ||
8 | org.eclipse.core.runtime, | ||
9 | com.google.guava, | ||
10 | org.eclipse.xtext.xbase.lib, | ||
11 | org.eclipse.xtend.lib, | ||
12 | org.eclipse.xtend.lib.macro, | ||
13 | org.eclipse.core.resources, | ||
14 | org.eclipse.emf.ecore, | ||
15 | org.eclipse.viatra.query.runtime, | ||
16 | org.eclipse.viatra.query.runtime.rete, | ||
17 | org.eclipse.viatra.query.runtime.localsearch, | ||
18 | hu.bme.mit.inf.dslreasoner.logic.model, | ||
19 | hu.bme.mit.inf.dslreasoner.faulttree.components, | ||
20 | hu.bme.mit.inf.dslreasoner.faulttree.transformation, | ||
21 | hu.bme.mit.inf.dslreasoner.application, | ||
22 | hu.bme.mit.inf.dslreasoner.application.ui | ||
23 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 | ||
24 | Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.faulttree.ui | ||
25 | Bundle-ActivationPolicy: lazy | ||
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/bin/hu/bme/mit/inf/dslreasoner/faulttree/ui/handler/.gitignore b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/bin/hu/bme/mit/inf/dslreasoner/faulttree/ui/handler/.gitignore deleted file mode 100644 index b271af76..00000000 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/bin/hu/bme/mit/inf/dslreasoner/faulttree/ui/handler/.gitignore +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | /.ReliabilityAnalysisHandler.java._trace | ||
2 | /.ReliabilityAnalysisHandler.xtendbin | ||
3 | /ReliabilityAnalysisHandler.java | ||
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/bin/hu/bme/mit/inf/dslreasoner/faulttree/ui/handler/ReliabilityAnalysisHandler.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/bin/hu/bme/mit/inf/dslreasoner/faulttree/ui/handler/ReliabilityAnalysisHandler.xtend deleted file mode 100644 index 5fa89148..00000000 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/bin/hu/bme/mit/inf/dslreasoner/faulttree/ui/handler/ReliabilityAnalysisHandler.xtend +++ /dev/null | |||
@@ -1,128 +0,0 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.faulttree.ui.handler | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.application.execution.EclipseBasedProgressMonitor | ||
4 | import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.CftModel | ||
5 | import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.TransformationDefinition | ||
6 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft.Cft2FtTransformation | ||
7 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.Ecore2CftTransformation | ||
8 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.FtAnalysisObjective | ||
9 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.ReliabilityResult | ||
10 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.StormDftConfiguration | ||
11 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.StormDftSolver | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel | ||
13 | import hu.bme.mit.inf.dslreasoner.workspace.ProjectWorkspace | ||
14 | import org.eclipse.core.commands.AbstractHandler | ||
15 | import org.eclipse.core.commands.ExecutionEvent | ||
16 | import org.eclipse.core.commands.ExecutionException | ||
17 | import org.eclipse.core.resources.IFile | ||
18 | import org.eclipse.core.resources.IProject | ||
19 | import org.eclipse.core.resources.IResource | ||
20 | import org.eclipse.core.runtime.IProgressMonitor | ||
21 | import org.eclipse.core.runtime.NullProgressMonitor | ||
22 | import org.eclipse.emf.common.util.URI | ||
23 | import org.eclipse.emf.ecore.resource.Resource | ||
24 | import org.eclipse.emf.ecore.resource.ResourceSet | ||
25 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl | ||
26 | import org.eclipse.swt.widgets.MessageBox | ||
27 | import org.eclipse.ui.PlatformUI | ||
28 | import org.eclipse.ui.handlers.HandlerUtil | ||
29 | import org.eclipse.viatra.query.runtime.api.AdvancedViatraQueryEngine | ||
30 | import org.eclipse.viatra.query.runtime.emf.EMFScope | ||
31 | |||
32 | class ReliabilityAnalysisHandler extends AbstractHandler { | ||
33 | |||
34 | override execute(ExecutionEvent event) throws ExecutionException { | ||
35 | val selection = HandlerUtil.getCurrentStructuredSelection(event) | ||
36 | val resourceSet = new ResourceSetImpl | ||
37 | val iterator = selection.iterator | ||
38 | var IProject targetProject = null | ||
39 | var Resource targetResource = null | ||
40 | var TransformationDefinition transformationDefinition = null | ||
41 | while (iterator.hasNext) { | ||
42 | val selectedElement = iterator.next | ||
43 | if (selectedElement instanceof IFile) { | ||
44 | val resource = tryLoadResource(resourceSet, selectedElement) | ||
45 | if (resource !== null && !resource.contents.empty) { | ||
46 | val rootElement = resource.contents.head | ||
47 | if (rootElement instanceof CftModel) { | ||
48 | if (rootElement.transformationDefinitions.empty) { | ||
49 | throw new IllegalArgumentException("Selected cft file is not a transformation definition.") | ||
50 | } | ||
51 | if (transformationDefinition !== null) { | ||
52 | throw new IllegalArgumentException( | ||
53 | "Only a single transformation definition may be selected.") | ||
54 | } | ||
55 | transformationDefinition = rootElement.transformationDefinitions.head | ||
56 | } else { | ||
57 | if (targetResource !== null) { | ||
58 | throw new IllegalArgumentException("Only a single architecture model may be selected.") | ||
59 | } | ||
60 | targetResource = resource | ||
61 | targetProject = selectedElement.project | ||
62 | } | ||
63 | } | ||
64 | } | ||
65 | } | ||
66 | if (targetResource === null || targetResource === null) { | ||
67 | throw new IllegalArgumentException( | ||
68 | "A transformation definition and an architecture model must be selected.") | ||
69 | } | ||
70 | runAnalysis(transformationDefinition, targetResource, targetProject, new NullProgressMonitor) | ||
71 | null | ||
72 | } | ||
73 | |||
74 | private static def tryLoadResource(ResourceSet resourceSet, IFile file) { | ||
75 | val fullPath = file.fullPath.toString | ||
76 | val uri = URI.createPlatformResourceURI(fullPath, true) | ||
77 | try { | ||
78 | resourceSet.getResource(uri, true) | ||
79 | } catch (RuntimeException e) { | ||
80 | null | ||
81 | } | ||
82 | } | ||
83 | |||
84 | private def runAnalysis(TransformationDefinition transformationDefinition, Resource resource, IProject project, | ||
85 | IProgressMonitor monitor) { | ||
86 | val workspace = createWorkspace(project, monitor) | ||
87 | val cft = createComponentFaultTree(transformationDefinition, resource) | ||
88 | workspace.writeModel(cft, "cft.xmi") | ||
89 | val cft2ft = new Cft2FtTransformation | ||
90 | val ft = cft2ft.createFaultTree(cft) | ||
91 | workspace.writeModel(ft, "ft.xmi") | ||
92 | val solver = new StormDftSolver | ||
93 | val config = new StormDftConfiguration | ||
94 | config.progressMonitor = new EclipseBasedProgressMonitor(monitor) | ||
95 | config.documentationLevel = DocumentationLevel.NORMAL | ||
96 | config.objective = FtAnalysisObjective.MTTF | ||
97 | val result = solver.solve(ft, config, workspace) | ||
98 | displayResult(result) | ||
99 | } | ||
100 | |||
101 | private def createWorkspace(IProject project, IProgressMonitor monitor) { | ||
102 | val folder = project.getFolder("debug") | ||
103 | if (!folder.exists) { | ||
104 | folder.create(IResource.NONE, true, monitor) | ||
105 | } | ||
106 | val path = folder.fullPath.toString | ||
107 | val uri = URI.createPlatformResourceURI(path, true) | ||
108 | val workspace = new ProjectWorkspace(uri.toString, "") | ||
109 | workspace.initAndClear | ||
110 | workspace | ||
111 | } | ||
112 | |||
113 | private def createComponentFaultTree(TransformationDefinition transformationDefinition, Resource resource) { | ||
114 | val queryEngine = AdvancedViatraQueryEngine.createUnmanagedEngine(new EMFScope(resource)) | ||
115 | try { | ||
116 | val ecore2cft = new Ecore2CftTransformation(transformationDefinition, queryEngine) | ||
117 | ecore2cft.createComponentFaultTree | ||
118 | } finally { | ||
119 | queryEngine.dispose | ||
120 | } | ||
121 | } | ||
122 | |||
123 | private def displayResult(ReliabilityResult result) { | ||
124 | val messageBox = new MessageBox(PlatformUI.workbench.activeWorkbenchWindow.shell) | ||
125 | messageBox.message = result.toString | ||
126 | messageBox.open | ||
127 | } | ||
128 | } | ||
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/build.properties b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/build.properties deleted file mode 100644 index e9863e28..00000000 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/build.properties +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | source.. = src/ | ||
2 | output.. = bin/ | ||
3 | bin.includes = META-INF/,\ | ||
4 | .,\ | ||
5 | plugin.xml | ||
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/plugin.xml b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/plugin.xml deleted file mode 100644 index 8a01c50c..00000000 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/plugin.xml +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <?eclipse version="3.4"?> | ||
3 | <plugin> | ||
4 | <extension | ||
5 | point="org.eclipse.ui.menus"> | ||
6 | <menuContribution | ||
7 | allPopups="false" | ||
8 | locationURI="popup:hu.bme.mit.inf.dslreasoner.application.ui.menu?after=hu.bme.mit.inf.dslreasoner.application.ui.executescript"> | ||
9 | <command | ||
10 | commandId="hu.bme.mit.inf.dslreasoner.faulttree.ui.reliabilityanalysis" | ||
11 | label="Reliability Analysis..." | ||
12 | style="push"> | ||
13 | </command> | ||
14 | </menuContribution> | ||
15 | </extension> | ||
16 | <extension | ||
17 | point="org.eclipse.ui.commands"> | ||
18 | <command | ||
19 | defaultHandler="hu.bme.mit.inf.dslreasoner.faulttree.ui.handler.ReliabilityAnalysisHandler" | ||
20 | id="hu.bme.mit.inf.dslreasoner.faulttree.ui.reliabilityanalysis" | ||
21 | name="Execute Reliability Analysis"> | ||
22 | </command> | ||
23 | </extension> | ||
24 | |||
25 | </plugin> | ||
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/src/hu/bme/mit/inf/dslreasoner/faulttree/ui/Activator.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/src/hu/bme/mit/inf/dslreasoner/faulttree/ui/Activator.java deleted file mode 100644 index 4363fc63..00000000 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/src/hu/bme/mit/inf/dslreasoner/faulttree/ui/Activator.java +++ /dev/null | |||
@@ -1,44 +0,0 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.faulttree.ui; | ||
2 | |||
3 | import org.eclipse.ui.plugin.AbstractUIPlugin; | ||
4 | import org.osgi.framework.BundleContext; | ||
5 | |||
6 | /** | ||
7 | * The activator class controls the plug-in life cycle | ||
8 | */ | ||
9 | public class Activator extends AbstractUIPlugin { | ||
10 | |||
11 | // The plug-in ID | ||
12 | public static final String PLUGIN_ID = "hu.bme.mit.inf.dslreasoner.faulttree.ui"; //$NON-NLS-1$ | ||
13 | |||
14 | // The shared instance | ||
15 | private static Activator plugin; | ||
16 | |||
17 | /** | ||
18 | * The constructor | ||
19 | */ | ||
20 | public Activator() { | ||
21 | } | ||
22 | |||
23 | @Override | ||
24 | public void start(BundleContext context) throws Exception { | ||
25 | super.start(context); | ||
26 | plugin = this; | ||
27 | } | ||
28 | |||
29 | @Override | ||
30 | public void stop(BundleContext context) throws Exception { | ||
31 | plugin = null; | ||
32 | super.stop(context); | ||
33 | } | ||
34 | |||
35 | /** | ||
36 | * Returns the shared instance | ||
37 | * | ||
38 | * @return the shared instance | ||
39 | */ | ||
40 | public static Activator getDefault() { | ||
41 | return plugin; | ||
42 | } | ||
43 | |||
44 | } | ||
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/src/hu/bme/mit/inf/dslreasoner/faulttree/ui/handler/ReliabilityAnalysisHandler.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/src/hu/bme/mit/inf/dslreasoner/faulttree/ui/handler/ReliabilityAnalysisHandler.xtend deleted file mode 100644 index 5fa89148..00000000 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/src/hu/bme/mit/inf/dslreasoner/faulttree/ui/handler/ReliabilityAnalysisHandler.xtend +++ /dev/null | |||
@@ -1,128 +0,0 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.faulttree.ui.handler | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.application.execution.EclipseBasedProgressMonitor | ||
4 | import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.CftModel | ||
5 | import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.TransformationDefinition | ||
6 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft.Cft2FtTransformation | ||
7 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.Ecore2CftTransformation | ||
8 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.FtAnalysisObjective | ||
9 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.ReliabilityResult | ||
10 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.StormDftConfiguration | ||
11 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.StormDftSolver | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel | ||
13 | import hu.bme.mit.inf.dslreasoner.workspace.ProjectWorkspace | ||
14 | import org.eclipse.core.commands.AbstractHandler | ||
15 | import org.eclipse.core.commands.ExecutionEvent | ||
16 | import org.eclipse.core.commands.ExecutionException | ||
17 | import org.eclipse.core.resources.IFile | ||
18 | import org.eclipse.core.resources.IProject | ||
19 | import org.eclipse.core.resources.IResource | ||
20 | import org.eclipse.core.runtime.IProgressMonitor | ||
21 | import org.eclipse.core.runtime.NullProgressMonitor | ||
22 | import org.eclipse.emf.common.util.URI | ||
23 | import org.eclipse.emf.ecore.resource.Resource | ||
24 | import org.eclipse.emf.ecore.resource.ResourceSet | ||
25 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl | ||
26 | import org.eclipse.swt.widgets.MessageBox | ||
27 | import org.eclipse.ui.PlatformUI | ||
28 | import org.eclipse.ui.handlers.HandlerUtil | ||
29 | import org.eclipse.viatra.query.runtime.api.AdvancedViatraQueryEngine | ||
30 | import org.eclipse.viatra.query.runtime.emf.EMFScope | ||
31 | |||
32 | class ReliabilityAnalysisHandler extends AbstractHandler { | ||
33 | |||
34 | override execute(ExecutionEvent event) throws ExecutionException { | ||
35 | val selection = HandlerUtil.getCurrentStructuredSelection(event) | ||
36 | val resourceSet = new ResourceSetImpl | ||
37 | val iterator = selection.iterator | ||
38 | var IProject targetProject = null | ||
39 | var Resource targetResource = null | ||
40 | var TransformationDefinition transformationDefinition = null | ||
41 | while (iterator.hasNext) { | ||
42 | val selectedElement = iterator.next | ||
43 | if (selectedElement instanceof IFile) { | ||
44 | val resource = tryLoadResource(resourceSet, selectedElement) | ||
45 | if (resource !== null && !resource.contents.empty) { | ||
46 | val rootElement = resource.contents.head | ||
47 | if (rootElement instanceof CftModel) { | ||
48 | if (rootElement.transformationDefinitions.empty) { | ||
49 | throw new IllegalArgumentException("Selected cft file is not a transformation definition.") | ||
50 | } | ||
51 | if (transformationDefinition !== null) { | ||
52 | throw new IllegalArgumentException( | ||
53 | "Only a single transformation definition may be selected.") | ||
54 | } | ||
55 | transformationDefinition = rootElement.transformationDefinitions.head | ||
56 | } else { | ||
57 | if (targetResource !== null) { | ||
58 | throw new IllegalArgumentException("Only a single architecture model may be selected.") | ||
59 | } | ||
60 | targetResource = resource | ||
61 | targetProject = selectedElement.project | ||
62 | } | ||
63 | } | ||
64 | } | ||
65 | } | ||
66 | if (targetResource === null || targetResource === null) { | ||
67 | throw new IllegalArgumentException( | ||
68 | "A transformation definition and an architecture model must be selected.") | ||
69 | } | ||
70 | runAnalysis(transformationDefinition, targetResource, targetProject, new NullProgressMonitor) | ||
71 | null | ||
72 | } | ||
73 | |||
74 | private static def tryLoadResource(ResourceSet resourceSet, IFile file) { | ||
75 | val fullPath = file.fullPath.toString | ||
76 | val uri = URI.createPlatformResourceURI(fullPath, true) | ||
77 | try { | ||
78 | resourceSet.getResource(uri, true) | ||
79 | } catch (RuntimeException e) { | ||
80 | null | ||
81 | } | ||
82 | } | ||
83 | |||
84 | private def runAnalysis(TransformationDefinition transformationDefinition, Resource resource, IProject project, | ||
85 | IProgressMonitor monitor) { | ||
86 | val workspace = createWorkspace(project, monitor) | ||
87 | val cft = createComponentFaultTree(transformationDefinition, resource) | ||
88 | workspace.writeModel(cft, "cft.xmi") | ||
89 | val cft2ft = new Cft2FtTransformation | ||
90 | val ft = cft2ft.createFaultTree(cft) | ||
91 | workspace.writeModel(ft, "ft.xmi") | ||
92 | val solver = new StormDftSolver | ||
93 | val config = new StormDftConfiguration | ||
94 | config.progressMonitor = new EclipseBasedProgressMonitor(monitor) | ||
95 | config.documentationLevel = DocumentationLevel.NORMAL | ||
96 | config.objective = FtAnalysisObjective.MTTF | ||
97 | val result = solver.solve(ft, config, workspace) | ||
98 | displayResult(result) | ||
99 | } | ||
100 | |||
101 | private def createWorkspace(IProject project, IProgressMonitor monitor) { | ||
102 | val folder = project.getFolder("debug") | ||
103 | if (!folder.exists) { | ||
104 | folder.create(IResource.NONE, true, monitor) | ||
105 | } | ||
106 | val path = folder.fullPath.toString | ||
107 | val uri = URI.createPlatformResourceURI(path, true) | ||
108 | val workspace = new ProjectWorkspace(uri.toString, "") | ||
109 | workspace.initAndClear | ||
110 | workspace | ||
111 | } | ||
112 | |||
113 | private def createComponentFaultTree(TransformationDefinition transformationDefinition, Resource resource) { | ||
114 | val queryEngine = AdvancedViatraQueryEngine.createUnmanagedEngine(new EMFScope(resource)) | ||
115 | try { | ||
116 | val ecore2cft = new Ecore2CftTransformation(transformationDefinition, queryEngine) | ||
117 | ecore2cft.createComponentFaultTree | ||
118 | } finally { | ||
119 | queryEngine.dispose | ||
120 | } | ||
121 | } | ||
122 | |||
123 | private def displayResult(ReliabilityResult result) { | ||
124 | val messageBox = new MessageBox(PlatformUI.workbench.activeWorkbenchWindow.shell) | ||
125 | messageBox.message = result.toString | ||
126 | messageBox.open | ||
127 | } | ||
128 | } | ||
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/ui/handler/.gitignore b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/ui/handler/.gitignore deleted file mode 100644 index b271af76..00000000 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/ui/handler/.gitignore +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | /.ReliabilityAnalysisHandler.java._trace | ||
2 | /.ReliabilityAnalysisHandler.xtendbin | ||
3 | /ReliabilityAnalysisHandler.java | ||