From 3f5aaab5025b8eb243f414b1c789085327df04f4 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Wed, 20 Mar 2019 16:09:09 +0100 Subject: Fault tree transformation for partial models WIP --- .../transformation/ecore2cft/ComponentInstanceTrace.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.java') diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.java index 840f501d..4034bdf3 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.java @@ -7,7 +7,9 @@ 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.Modality; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output; +import hu.bme.mit.inf.dslreasoner.faulttree.model.util.CftExtensions; import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentNameGenerator; import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.InputTrace; import java.util.Map; @@ -21,9 +23,11 @@ public class ComponentInstanceTrace { private final Map outputEventsMap; - protected ComponentInstanceTrace(final ComponentFaultTree faultTree, final ComponentDefinition componentDefinition, final ComponentNameGenerator nameGenerator) { + protected ComponentInstanceTrace(final ComponentFaultTree faultTree, final ComponentDefinition componentDefinition, final ComponentNameGenerator nameGenerator, final Modality exists, final boolean multipleAllowed) { this.componentInstance.setComponentDefinition(componentDefinition); this.componentInstance.setName(nameGenerator.nextName(componentDefinition)); + this.componentInstance.setExists(exists); + this.componentInstance.setMultipleAllowed(multipleAllowed); this.inputEventsMap = Maps.newHashMapWithExpectedSize(componentDefinition.getInputEvents().size()); EList _inputEvents = componentDefinition.getInputEvents(); for (final InputEvent inputEvent : _inputEvents) { @@ -48,6 +52,10 @@ public class ComponentInstanceTrace { } public void assign(final EventDeclaration inputEvent, final ComponentInstanceTrace sourceComponent, final EventDeclaration outputEvent) { + this.assign(inputEvent, sourceComponent, outputEvent, Modality.MUST); + } + + public void assign(final EventDeclaration inputEvent, final ComponentInstanceTrace sourceComponent, final EventDeclaration outputEvent, final Modality exists) { final InputTrace inputTrace = this.inputEventsMap.get(inputEvent); if ((inputTrace == null)) { throw new IllegalArgumentException(("Unknown input: " + inputEvent)); @@ -56,10 +64,14 @@ public class ComponentInstanceTrace { if ((output == null)) { throw new IllegalArgumentException(("Unknown output: " + outputEvent)); } - inputTrace.assign(output); + inputTrace.assign(output, exists); } protected EList getOutputs() { return this.componentInstance.getOutputs(); } + + protected boolean appearsExactlyOnce() { + return CftExtensions.appearsExactlyOnce(this.componentInstance); + } } -- cgit v1.2.3-70-g09d2