aboutsummaryrefslogtreecommitdiffstats
path: root/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.xtend
blob: a522654ceb17b90cc2d8fc224c3d01bf94547a26 (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
package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft

import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree
import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent
import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtFactory
import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent

class Cft2FtTransformation {
	def createFaultTree(ComponentFaultTree componentFaultTree) {
		val materializer = new EventMaterializer
		val topEvent = materializer.getOrMaterialize(componentFaultTree.topEvent)
		switch (topEvent) {
			ConstantEvent:
				FtFactory.eINSTANCE.createConstantModel => [
					failed = topEvent.failed
				]
			RandomEvent: {
				val builder = new FaultTreeBuilder
				builder.addTopLevel(topEvent)
				builder.faultTree
			}
		}
	}
}