diff options
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.java | 77 |
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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft; | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftFactory; | ||
4 | import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentDefinition; | ||
5 | import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree; | ||
6 | import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Modality; | ||
7 | import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output; | ||
8 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentInstanceTrace; | ||
9 | import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentNameGenerator; | ||
10 | import java.util.Map; | ||
11 | import org.eclipse.emf.common.util.EList; | ||
12 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
13 | import org.eclipse.xtend.lib.annotations.Accessors; | ||
14 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
15 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
16 | import org.eclipse.xtext.xbase.lib.Pure; | ||
17 | |||
18 | @SuppressWarnings("all") | ||
19 | public 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 | } | ||