From d90bedacaafe87e06fddaa05a6ff9b7b796e97e7 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sat, 16 Feb 2019 00:43:11 +0100 Subject: Two-valued fault tree analyzer WIP --- .../cft2ft/Cft2FtTransformation.java | 43 +++++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) (limited to 'Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.java') diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.java index ae750806..e87b8865 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.java @@ -1,10 +1,49 @@ package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree; +import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent; +import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel; +import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event; +import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FaultTree; +import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtFactory; +import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent; +import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ReliabilityModel; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft.EventMaterializer; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft.FaultTreeBuilder; +import org.eclipse.xtext.xbase.lib.ObjectExtensions; +import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; @SuppressWarnings("all") public class Cft2FtTransformation { - public void createFaultTree(final ComponentFaultTree componentFaultTree) { - throw new UnsupportedOperationException(); + public ReliabilityModel createFaultTree(final ComponentFaultTree componentFaultTree) { + ReliabilityModel _xblockexpression = null; + { + final EventMaterializer materializer = new EventMaterializer(); + final Event topEvent = materializer.getOrMaterialize(componentFaultTree.getTopEvent()); + ReliabilityModel _switchResult = null; + boolean _matched = false; + if (topEvent instanceof ConstantEvent) { + _matched=true; + ConstantModel _createConstantModel = FtFactory.eINSTANCE.createConstantModel(); + final Procedure1 _function = (ConstantModel it) -> { + it.setFailed(((ConstantEvent)topEvent).isFailed()); + }; + _switchResult = ObjectExtensions.operator_doubleArrow(_createConstantModel, _function); + } + if (!_matched) { + if (topEvent instanceof RandomEvent) { + _matched=true; + FaultTree _xblockexpression_1 = null; + { + final FaultTreeBuilder builder = new FaultTreeBuilder(); + builder.addTopLevel(((RandomEvent)topEvent)); + _xblockexpression_1 = builder.getFaultTree(); + } + _switchResult = _xblockexpression_1; + } + } + _xblockexpression = _switchResult; + } + return _xblockexpression; } } -- cgit v1.2.3-70-g09d2