blob: 840f501de1bbac3abf62943d672fc462eba12a69 (
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft;
import com.google.common.collect.Maps;
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.ComponentDefinition;
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree;
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.EventDeclaration;
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent;
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output;
import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentNameGenerator;
import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.InputTrace;
import java.util.Map;
import org.eclipse.emf.common.util.EList;
@SuppressWarnings("all")
public class ComponentInstanceTrace {
private final Component componentInstance = CftFactory.eINSTANCE.createComponent();
private final Map<InputEvent, InputTrace> inputEventsMap;
private final Map<EventDeclaration, Output> outputEventsMap;
protected ComponentInstanceTrace(final ComponentFaultTree faultTree, final ComponentDefinition componentDefinition, final ComponentNameGenerator nameGenerator) {
this.componentInstance.setComponentDefinition(componentDefinition);
this.componentInstance.setName(nameGenerator.nextName(componentDefinition));
this.inputEventsMap = Maps.<InputEvent, InputTrace>newHashMapWithExpectedSize(componentDefinition.getInputEvents().size());
EList<InputEvent> _inputEvents = componentDefinition.getInputEvents();
for (final InputEvent inputEvent : _inputEvents) {
{
final InputTrace inputTrace = new InputTrace(this.componentInstance, inputEvent);
this.inputEventsMap.put(inputEvent, inputTrace);
}
}
this.outputEventsMap = Maps.<EventDeclaration, Output>newHashMapWithExpectedSize(componentDefinition.getOutputEvents().size());
EList<EventDeclaration> _outputEvents = componentDefinition.getOutputEvents();
for (final EventDeclaration outputEvent : _outputEvents) {
{
final Output output = CftFactory.eINSTANCE.createOutput();
output.setEventDeclaration(outputEvent);
EList<Output> _outputs = this.componentInstance.getOutputs();
_outputs.add(output);
this.outputEventsMap.put(outputEvent, output);
}
}
EList<Component> _components = faultTree.getComponents();
_components.add(this.componentInstance);
}
public void assign(final EventDeclaration inputEvent, final ComponentInstanceTrace sourceComponent, final EventDeclaration outputEvent) {
final InputTrace inputTrace = this.inputEventsMap.get(inputEvent);
if ((inputTrace == null)) {
throw new IllegalArgumentException(("Unknown input: " + inputEvent));
}
final Output output = sourceComponent.outputEventsMap.get(outputEvent);
if ((output == null)) {
throw new IllegalArgumentException(("Unknown output: " + outputEvent));
}
inputTrace.assign(output);
}
protected EList<Output> getOutputs() {
return this.componentInstance.getOutputs();
}
}
|