aboutsummaryrefslogtreecommitdiffstats
path: root/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.xtend')
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.xtend65
1 files changed, 0 insertions, 65 deletions
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.xtend
deleted file mode 100644
index 158ab2e1..00000000
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.xtend
+++ /dev/null
@@ -1,65 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft
2
3import com.google.common.collect.Maps
4import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftFactory
5import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentDefinition
6import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree
7import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.EventDeclaration
8import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent
9import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Modality
10import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output
11import java.util.Map
12
13import static extension hu.bme.mit.inf.dslreasoner.faulttree.model.util.CftExtensions.*
14
15class ComponentInstanceTrace {
16 val componentInstance = CftFactory.eINSTANCE.createComponent
17 val Map<InputEvent, InputTrace> inputEventsMap
18 val Map<EventDeclaration, Output> outputEventsMap
19
20 protected new(ComponentFaultTree faultTree, ComponentDefinition componentDefinition,
21 ComponentNameGenerator nameGenerator, Modality exists, boolean multipleAllowed) {
22 componentInstance.componentDefinition = componentDefinition
23 componentInstance.name = nameGenerator.nextName(componentDefinition)
24 componentInstance.exists = exists
25 componentInstance.multipleAllowed = multipleAllowed
26 inputEventsMap = Maps.newHashMapWithExpectedSize(componentDefinition.inputEvents.size)
27 for (inputEvent : componentDefinition.inputEvents) {
28 val inputTrace = new InputTrace(componentInstance, inputEvent)
29 inputEventsMap.put(inputEvent, inputTrace)
30 }
31 outputEventsMap = Maps.newHashMapWithExpectedSize(componentDefinition.outputEvents.size)
32 for (outputEvent : componentDefinition.outputEvents) {
33 val output = CftFactory.eINSTANCE.createOutput
34 output.eventDeclaration = outputEvent
35 componentInstance.outputs += output
36 outputEventsMap.put(outputEvent, output)
37 }
38 faultTree.components += componentInstance
39 }
40
41 def void assign(EventDeclaration inputEvent, ComponentInstanceTrace sourceComponent, EventDeclaration outputEvent) {
42 assign(inputEvent, sourceComponent, outputEvent, Modality.MUST)
43 }
44
45 def void assign(EventDeclaration inputEvent, ComponentInstanceTrace sourceComponent, EventDeclaration outputEvent,
46 Modality exists) {
47 val inputTrace = inputEventsMap.get(inputEvent)
48 if (inputTrace === null) {
49 throw new IllegalArgumentException("Unknown input: " + inputEvent)
50 }
51 val output = sourceComponent.outputEventsMap.get(outputEvent)
52 if (output === null) {
53 throw new IllegalArgumentException("Unknown output: " + outputEvent)
54 }
55 inputTrace.assign(output, exists)
56 }
57
58 protected def getOutputs() {
59 componentInstance.outputs
60 }
61
62 protected def appearsExactlyOnce() {
63 componentInstance.appearsExactlyOnce
64 }
65}