aboutsummaryrefslogtreecommitdiffstats
path: root/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.xtend
blob: 062de3df53764f692ffea052519bb3d1b9d5d5b9 (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
package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft

import com.google.common.collect.ImmutableList
import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.TransformationDefinition
import java.util.List
import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine

class Ecore2CftTransformation {
	val List<MappingHandler> mappingHandlers

	new(TransformationDefinition transformationDefinition, ViatraQueryEngine viatraQueryEngine) {
		val mappingQueries = new MappingQueries(transformationDefinition, viatraQueryEngine)
		mappingHandlers = ImmutableList.copyOf(transformationDefinition.mappingDefinitions.map [ mappingDefinition |
			new MappingHandler(mappingDefinition, mappingQueries)
		])
	}

	def createComponentFaultTree() {
		val trace = new ComponentFaultTreeTrace
		for (handler : mappingHandlers) {
			handler.instantiateComponents(trace)
		}
		for (handler : mappingHandlers) {
			handler.instantiateConnections(trace)
		}
		trace.componentFaultTree
	}
}