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