aboutsummaryrefslogtreecommitdiffstats
path: root/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.java
diff options
context:
space:
mode:
Diffstat (limited to 'Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.java')
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.java77
1 files changed, 77 insertions, 0 deletions
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.java
new file mode 100644
index 00000000..ddcf9036
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.java
@@ -0,0 +1,77 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft;
2
3import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftFactory;
4import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentDefinition;
5import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Modality;
7import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output;
8import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentInstanceTrace;
9import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentNameGenerator;
10import java.util.Map;
11import org.eclipse.emf.common.util.EList;
12import org.eclipse.viatra.query.runtime.api.IPatternMatch;
13import org.eclipse.xtend.lib.annotations.Accessors;
14import org.eclipse.xtext.xbase.lib.CollectionLiterals;
15import org.eclipse.xtext.xbase.lib.IterableExtensions;
16import org.eclipse.xtext.xbase.lib.Pure;
17
18@SuppressWarnings("all")
19public class ComponentFaultTreeTrace {
20 @Accessors
21 private final ComponentFaultTree componentFaultTree = CftFactory.eINSTANCE.createComponentFaultTree();
22
23 private final ComponentNameGenerator nameGenerator = new ComponentNameGenerator();
24
25 private final Map<IPatternMatch, ComponentInstanceTrace> componentInstancesMap = CollectionLiterals.<IPatternMatch, ComponentInstanceTrace>newHashMap();
26
27 public ComponentInstanceTrace instantiateComponent(final IPatternMatch patternMatch, final ComponentDefinition componenDefinition) {
28 return this.instantiateComponent(patternMatch, componenDefinition, Modality.MUST, false);
29 }
30
31 public ComponentInstanceTrace instantiateComponent(final IPatternMatch patternMatch, final ComponentDefinition componenDefinition, final Modality exists, final boolean allowMultiple) {
32 ComponentInstanceTrace _xblockexpression = null;
33 {
34 boolean _containsKey = this.componentInstancesMap.containsKey(patternMatch);
35 if (_containsKey) {
36 throw new IllegalArgumentException(("Already instantiated component for match: " + patternMatch));
37 }
38 final ComponentInstanceTrace componentTrace = new ComponentInstanceTrace(this.componentFaultTree, componenDefinition, this.nameGenerator, exists, allowMultiple);
39 this.componentInstancesMap.put(patternMatch, componentTrace);
40 _xblockexpression = componentTrace;
41 }
42 return _xblockexpression;
43 }
44
45 public void setTopLevel(final ComponentInstanceTrace trace) {
46 Output _topEvent = this.componentFaultTree.getTopEvent();
47 boolean _tripleNotEquals = (_topEvent != null);
48 if (_tripleNotEquals) {
49 throw new IllegalArgumentException("Top level component already set");
50 }
51 final EList<Output> outputs = trace.getOutputs();
52 int _size = outputs.size();
53 boolean _tripleNotEquals_1 = (_size != 1);
54 if (_tripleNotEquals_1) {
55 int _size_1 = outputs.size();
56 String _plus = ("Top level component must have 1 output, got " + Integer.valueOf(_size_1));
57 String _plus_1 = (_plus +
58 " instead");
59 throw new IllegalArgumentException(_plus_1);
60 }
61 boolean _appearsExactlyOnce = trace.appearsExactlyOnce();
62 boolean _not = (!_appearsExactlyOnce);
63 if (_not) {
64 throw new IllegalArgumentException("Top level must appear in the fault tree exactly once");
65 }
66 this.componentFaultTree.setTopEvent(IterableExtensions.<Output>head(outputs));
67 }
68
69 public ComponentInstanceTrace lookup(final IPatternMatch patternMatch) {
70 return this.componentInstancesMap.get(patternMatch);
71 }
72
73 @Pure
74 public ComponentFaultTree getComponentFaultTree() {
75 return this.componentFaultTree;
76 }
77}