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 --- .../transformation/cft2ft/FaultTreeBuilder.java | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/FaultTreeBuilder.java (limited to 'Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/FaultTreeBuilder.java') diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/FaultTreeBuilder.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/FaultTreeBuilder.java new file mode 100644 index 00000000..9b2dfd76 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/FaultTreeBuilder.java @@ -0,0 +1,57 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft; + +import com.google.common.base.Objects; +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.Gate; +import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent; +import java.util.Collection; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtend.lib.annotations.Accessors; +import org.eclipse.xtext.xbase.lib.Pure; + +@SuppressWarnings("all") +public class FaultTreeBuilder { + @Accessors + private final FaultTree faultTree = FtFactory.eINSTANCE.createFaultTree(); + + public void addTopLevel(final RandomEvent event) { + RandomEvent _topEvent = this.faultTree.getTopEvent(); + boolean _tripleNotEquals = (_topEvent != null); + if (_tripleNotEquals) { + throw new IllegalStateException("Top event was already set"); + } + this.add(event); + this.faultTree.setTopEvent(event); + } + + protected void add(final RandomEvent event) { + EObject _eContainer = this.faultTree.eContainer(); + boolean _equals = Objects.equal(_eContainer, this.faultTree); + if (_equals) { + return; + } + EObject _eContainer_1 = this.faultTree.eContainer(); + boolean _tripleNotEquals = (_eContainer_1 != null); + if (_tripleNotEquals) { + throw new IllegalStateException("Event is already in a different fault tree"); + } + EList _events = this.faultTree.getEvents(); + _events.add(event); + if ((event instanceof Gate)) { + this.addAll(((Gate)event).getInputEvents()); + } + } + + protected void addAll(final Collection events) { + for (final RandomEvent event : events) { + this.add(event); + } + } + + @Pure + public FaultTree getFaultTree() { + return this.faultTree; + } +} -- cgit v1.2.3-70-g09d2