blob: b892eff1246ab4ec219ca14d84861cb5179eab34 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftFactory
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Connection
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Modality
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output
import java.util.Map
import static extension hu.bme.mit.inf.dslreasoner.faulttree.model.util.CftExtensions.*
class InputTrace {
val Input input = CftFactory.eINSTANCE.createInput
val Map<Output, Connection> connectionsMap = newHashMap
protected new(Component component, InputEvent inputEvent) {
input.inputEvent = inputEvent
component.inputs += input
}
def void assign(Output output, Modality exists) {
val connection = connectionsMap.get(output)
if (connection === null) {
val newConnection = CftFactory.eINSTANCE.createConnection
newConnection.output = output
newConnection.exists = exists
input.incomingConnections += newConnection
connectionsMap.put(output, newConnection)
} else if (exists.isMoreConcreteThan(connection.exists)) {
connection.exists = exists
}
}
}
|