aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-02-16 00:43:11 +0100
committerLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-02-19 19:18:25 +0100
commitd90bedacaafe87e06fddaa05a6ff9b7b796e97e7 (patch)
tree3631e27854b40de3bce7606f60113054c77bd391
parentEcore2Cft transformation (diff)
downloadVIATRA-Generator-d90bedacaafe87e06fddaa05a6ff9b7b796e97e7.tar.gz
VIATRA-Generator-d90bedacaafe87e06fddaa05a6ff9b7b796e97e7.tar.zst
VIATRA-Generator-d90bedacaafe87e06fddaa05a6ff9b7b796e97e7.zip
Two-valued fault tree analyzer WIP
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeModule.xtendbinbin1701 -> 1701 bytes
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeSetup.xtendbinbin2526 -> 2526 bytes
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application.ui/plugin.xml12
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicSolver.xtend6
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguage.g12
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguage.tokens2
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguageLexer.java122
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguageParser.java53
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/.CftLanguageIdeModule.xtendbinbin1712 -> 1712 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/.CftLanguageIdeSetup.xtendbinbin2549 -> 2549 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/.CftLanguageUiModule.xtendbinbin3606 -> 3606 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/contentassist/.CftLanguageProposalProvider.xtendbinbin1820 -> 1820 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/labeling/.CftLanguageDescriptionLabelProvider.xtendbinbin1993 -> 1993 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/labeling/.CftLanguageLabelProvider.xtendbinbin2885 -> 2885 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/outline/.CftLanguageOutlineTreeProvider.xtendbinbin2451 -> 2451 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/quickfix/.CftLanguageQuickfixProvider.xtendbinbin1819 -> 1819 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/syntaxcoloring/.CftLanguageSemanticHighlightingCalculator.xtendbinbin3773 -> 3773 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/syntaxcoloring/.CftLanguageTokenToAttributeIdMapper.xtendbinbin2740 -> 2740 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/CftLanguage.xtextbinbin5923 -> 5927 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguage.g15
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguage.tokens2
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguageLexer.java198
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguageParser.java143
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/serializer/CftLanguageSemanticSequencer.java2
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/services/CftLanguageGrammarAccess.java26
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/CftLanguage.xtext4
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/.CftLanguageRuntimeModule.xtendbinbin3436 -> 3436 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/.CftLanguageStandaloneSetup.xtendbinbin2015 -> 2015 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/.CftLanguageValueConverterService.xtendbinbin3002 -> 3002 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/.OF_INTValueConverter.xtendbinbin4411 -> 4411 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/generator/.CftLanguageGenerator.xtendbinbin2365 -> 2365 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.CftLanguageQualifiedNameProvider.xtendbinbin3630 -> 3630 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.PackageNameProvider.xtendbinbin3283 -> 3283 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/scoping/.CftLanguageImportedNamespaceAwareLocalScopeProvider.xtendbinbin4651 -> 4651 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/scoping/.CftLanguageScopeProvider.xtendbinbin8989 -> 8989 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/validation/.CftLanguageValidator.xtendbinbin1760 -> 1760 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/BasicEvent.java2
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/ConstantEvent.java49
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/ConstantModel.java49
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/Event.java32
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FaultTree.java14
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FtFactory.java18
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FtPackage.java308
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/Gate.java8
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/KOfMGate.java27
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/RandomEvent.java49
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/ReliabilityModel.java18
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/BasicEventImpl.java2
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/ConstantEventImpl.java164
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/ConstantModelImpl.java164
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/EventImpl.java126
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FaultTreeImpl.java29
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FtFactoryImpl.java24
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FtPackageImpl.java140
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/GateImpl.java12
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/KOfMGateImpl.java56
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/RandomEventImpl.java164
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/ReliabilityModelImpl.java39
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/util/FtAdapterFactory.java82
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/util/FtSwitch.java105
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/ft.ecore25
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/ft.genmodel13
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/representations.aird291
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/META-INF/MANIFEST.MF9
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/build.properties3
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.xtend20
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventCollection.xtend90
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventMaterializer.xtend192
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/FaultTreeBuilder.xtend39
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.xtend1
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/Ft2GalileoTransformation.xtend56
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/ReliabilityResult.xtend51
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftConfiguration.xtend45
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftHandler.xtend186
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftSolver.xtend43
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.Cft2FtTransformation.xtendbinbin2298 -> 2825 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.EventCollection.xtendbinbin0 -> 7022 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.EventMaterializer.xtendbinbin0 -> 11749 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.FaultTreeBuilder.xtendbinbin0 -> 4029 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.gitignore7
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.java43
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventCollection.java188
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventMaterializer.java456
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/FaultTreeBuilder.java57
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentFaultTreeTrace.xtendbinbin5009 -> 5009 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentInstanceTrace.xtendbinbin5190 -> 5190 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentNameGenerator.xtendbinbin3472 -> 3472 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.Ecore2CftTransformation.xtendbinbin3400 -> 3431 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.InputTrace.xtendbinbin3849 -> 3849 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.LookupHandler.xtendbinbin5169 -> 5169 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingHandler.xtendbinbin6876 -> 6876 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingQueries.xtendbinbin4833 -> 4833 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.java20
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/.Ft2GalileoTransformation.xtendbinbin0 -> 4761 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/.gitignore1
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/Ft2GalileoTransformation.java181
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.ReliabilityResult.xtendbinbin0 -> 5435 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.StormDftConfiguration.xtendbinbin0 -> 4311 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.StormDftHandler.xtendbinbin0 -> 13615 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.StormDftSolver.xtendbinbin0 -> 4801 bytes
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.gitignore9
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/ApproximationHeuristic.java8
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/FtAnalysisObjective.java14
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/ReliabilityResult.java156
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftConfiguration.java31
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftException.java12
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftHandler.java351
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftSolver.java79
108 files changed, 4251 insertions, 704 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeModule.xtendbin b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeModule.xtendbin
index 879d3171..d13742f9 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeModule.xtendbin
+++ b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeModule.xtendbin
Binary files differ
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeSetup.xtendbin b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeSetup.xtendbin
index 1583d4f9..dc0a79cc 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeSetup.xtendbin
+++ b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeSetup.xtendbin
Binary files differ
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application.ui/plugin.xml b/Application/hu.bme.mit.inf.dslreasoner.application.ui/plugin.xml
index 099d6993..304df098 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application.ui/plugin.xml
+++ b/Application/hu.bme.mit.inf.dslreasoner.application.ui/plugin.xml
@@ -419,12 +419,20 @@
419 point="org.eclipse.ui.menus"> 419 point="org.eclipse.ui.menus">
420 <menuContribution 420 <menuContribution
421 allPopups="false" 421 allPopups="false"
422 locationURI="popup:org.eclipse.ui.popup.any?after=org.eclipse.viatra.addon.validation.runtime.ui.menu"> 422 locationURI="popup:hu.bme.mit.inf.dslreasoner.application.ui.menu">
423 <command 423 <command
424 commandId="hu.bme.mit.inf.dslreasoner.application.ui.executescript" 424 commandId="hu.bme.mit.inf.dslreasoner.application.ui.executescript"
425 label="VIATRA Solver: Execute" 425 label="Execute Application Configuration"
426 style="push"> 426 style="push">
427 </command> 427 </command>
428 </menuContribution> 428 </menuContribution>
429 <menuContribution
430 allPopups="false"
431 locationURI="popup:org.eclipse.ui.popup.any?after=org.eclipse.viatra.addon.validation.runtime.ui.menu">
432 <menu
433 id="hu.bme.mit.inf.dslreasoner.application.ui.menu"
434 label="VIATRA Solver">
435 </menu>
436 </menuContribution>
429 </extension> 437 </extension>
430</plugin> 438</plugin>
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicSolver.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicSolver.xtend
index f1d410d8..d88e2a52 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicSolver.xtend
+++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/builder/LogicSolver.xtend
@@ -34,7 +34,7 @@ public class LogicReasonerException extends Exception {
34 } 34 }
35} 35}
36 36
37abstract class LogicSolverConfiguration { 37abstract class SolverConfiguration {
38 public static val Unlimited = -1; 38 public static val Unlimited = -1;
39 public static val String UndefinedPath = null 39 public static val String UndefinedPath = null
40 40
@@ -42,7 +42,7 @@ abstract class LogicSolverConfiguration {
42 public String solverPath = UndefinedPath 42 public String solverPath = UndefinedPath
43 /** Max runtime limit in seconds. */ 43 /** Max runtime limit in seconds. */
44 public int runtimeLimit = Unlimited 44 public int runtimeLimit = Unlimited
45 /** Max runtime limit in seconds. */ 45 /** Max memory limit in megabytes. */
46 public int memoryLimit = Unlimited 46 public int memoryLimit = Unlimited
47 /** Documentation level of the solver. */ 47 /** Documentation level of the solver. */
48 public DocumentationLevel documentationLevel = DocumentationLevel::NONE 48 public DocumentationLevel documentationLevel = DocumentationLevel::NONE
@@ -52,7 +52,9 @@ abstract class LogicSolverConfiguration {
52 * or via a listener registered by {@link progressMonitor.addCancelListener}</li> 52 * or via a listener registered by {@link progressMonitor.addCancelListener}</li>
53 */ 53 */
54 public SolverProgressMonitor progressMonitor = new NullSolverProgressMonitor 54 public SolverProgressMonitor progressMonitor = new NullSolverProgressMonitor
55}
55 56
57abstract class LogicSolverConfiguration extends SolverConfiguration {
56 public var TypeScopes typeScopes = new TypeScopes; 58 public var TypeScopes typeScopes = new TypeScopes;
57 public var SolutionScope solutionScope = new SolutionScope 59 public var SolutionScope solutionScope = new SolutionScope
58} 60}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguage.g b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguage.g
index 7c04c163..6ccf7334 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguage.g
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguage.g
@@ -1564,9 +1564,9 @@ rule__ConstantDistribution__Group__0__Impl
1564 } 1564 }
1565: 1565:
1566( 1566(
1567 { before(grammarAccess.getConstantDistributionAccess().getPKeyword_0()); } 1567 { before(grammarAccess.getConstantDistributionAccess().getProbKeyword_0()); }
1568 'p' 1568 'prob'
1569 { after(grammarAccess.getConstantDistributionAccess().getPKeyword_0()); } 1569 { after(grammarAccess.getConstantDistributionAccess().getProbKeyword_0()); }
1570) 1570)
1571; 1571;
1572finally { 1572finally {
@@ -4133,9 +4133,9 @@ rule__ComponentInstance__NameAssignment_2
4133 } 4133 }
4134: 4134:
4135 ( 4135 (
4136 { before(grammarAccess.getComponentInstanceAccess().getNameIDTerminalRuleCall_2_0()); } 4136 { before(grammarAccess.getComponentInstanceAccess().getNameValidIdParserRuleCall_2_0()); }
4137 RULE_ID 4137 ruleValidId
4138 { after(grammarAccess.getComponentInstanceAccess().getNameIDTerminalRuleCall_2_0()); } 4138 { after(grammarAccess.getComponentInstanceAccess().getNameValidIdParserRuleCall_2_0()); }
4139 ) 4139 )
4140; 4140;
4141finally { 4141finally {
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguage.tokens b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguage.tokens
index ee87b574..76556942 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguage.tokens
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguage.tokens
@@ -20,8 +20,8 @@
20'of'=27 20'of'=27
21'or'=26 21'or'=26
22'out'=21 22'out'=21
23'p'=22
24'package'=14 23'package'=14
24'prob'=22
25'toplevel'=39 25'toplevel'=39
26'transformation'=28 26'transformation'=28
27'{'=18 27'{'=18
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguageLexer.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguageLexer.java
index 21e09c33..6a06d1ec 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguageLexer.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguageLexer.java
@@ -255,10 +255,11 @@ public class InternalCftLanguageLexer extends Lexer {
255 try { 255 try {
256 int _type = T__22; 256 int _type = T__22;
257 int _channel = DEFAULT_TOKEN_CHANNEL; 257 int _channel = DEFAULT_TOKEN_CHANNEL;
258 // InternalCftLanguage.g:20:7: ( 'p' ) 258 // InternalCftLanguage.g:20:7: ( 'prob' )
259 // InternalCftLanguage.g:20:9: 'p' 259 // InternalCftLanguage.g:20:9: 'prob'
260 { 260 {
261 match('p'); 261 match("prob");
262
262 263
263 } 264 }
264 265
@@ -1729,21 +1730,21 @@ public class InternalCftLanguageLexer extends Lexer {
1729 } 1730 }
1730 } 1731 }
1731 static final String DFA20_eotS = 1732 static final String DFA20_eotS =
1732 "\1\uffff\1\34\1\37\1\uffff\2\40\2\uffff\1\40\1\53\4\40\5\uffff\2\34\1\72\1\34\1\uffff\3\34\3\uffff\1\40\3\uffff\1\40\1\103\1\40\2\uffff\1\40\1\106\1\110\2\uffff\3\40\1\114\3\40\10\uffff\1\72\5\uffff\2\40\1\uffff\1\122\1\123\1\uffff\1\124\1\uffff\2\40\1\127\1\uffff\5\40\3\uffff\2\40\1\uffff\13\40\1\152\1\153\1\154\3\40\1\160\3\uffff\2\40\1\163\1\uffff\1\40\1\165\1\uffff\1\40\1\uffff\4\40\1\173\1\uffff"; 1733 "\1\uffff\1\34\1\40\1\uffff\2\40\2\uffff\1\40\1\53\4\40\5\uffff\2\34\1\74\1\34\1\uffff\3\34\3\uffff\2\40\2\uffff\1\40\1\104\1\40\2\uffff\1\40\1\107\1\110\2\uffff\3\40\1\115\3\40\10\uffff\1\74\5\uffff\3\40\1\uffff\1\124\1\125\2\uffff\1\126\2\40\1\131\1\uffff\4\40\1\136\1\40\3\uffff\2\40\1\uffff\4\40\1\uffff\7\40\1\155\1\156\1\157\3\40\1\163\3\uffff\2\40\1\166\1\uffff\1\40\1\170\1\uffff\1\40\1\uffff\4\40\1\176\1\uffff";
1733 static final String DFA20_eofS = 1734 static final String DFA20_eofS =
1734 "\174\uffff"; 1735 "\177\uffff";
1735 static final String DFA20_minS = 1736 static final String DFA20_minS =
1736 "\1\0\1\75\1\60\1\uffff\1\155\1\146\2\uffff\1\146\1\76\1\141\1\156\1\157\1\141\5\uffff\1\135\1\75\1\56\1\101\1\uffff\2\0\1\52\3\uffff\1\143\3\uffff\1\160\1\60\1\164\2\uffff\1\164\2\60\2\uffff\1\155\1\157\1\144\1\60\1\141\2\160\10\uffff\1\56\5\uffff\1\153\1\157\1\uffff\2\60\1\uffff\1\60\1\uffff\1\142\1\153\1\60\1\uffff\1\156\1\154\1\160\1\141\1\162\3\uffff\1\144\1\165\1\uffff\1\163\1\145\1\151\1\147\1\164\1\141\1\160\1\146\1\166\1\156\1\145\3\60\1\157\1\145\1\147\1\60\3\uffff\1\162\1\154\1\60\1\uffff\1\155\1\60\1\uffff\1\141\1\uffff\1\164\1\151\1\157\1\156\1\60\1\uffff"; 1737 "\1\0\1\75\1\141\1\uffff\1\155\1\146\2\uffff\1\146\1\76\1\141\1\156\1\157\1\141\5\uffff\1\135\1\75\1\56\1\101\1\uffff\2\0\1\52\3\uffff\1\143\1\157\2\uffff\1\160\1\60\1\164\2\uffff\1\164\2\60\2\uffff\1\155\1\157\1\144\1\60\1\141\2\160\10\uffff\1\56\5\uffff\1\153\1\142\1\157\1\uffff\2\60\2\uffff\1\60\1\142\1\153\1\60\1\uffff\1\156\1\154\1\160\1\141\1\60\1\162\3\uffff\1\144\1\165\1\uffff\1\163\1\145\1\151\1\147\1\uffff\1\164\1\141\1\160\1\146\1\166\1\156\1\145\3\60\1\157\1\145\1\147\1\60\3\uffff\1\162\1\154\1\60\1\uffff\1\155\1\60\1\uffff\1\141\1\uffff\1\164\1\151\1\157\1\156\1\60\1\uffff";
1737 static final String DFA20_maxS = 1738 static final String DFA20_maxS =
1738 "\1\uffff\1\75\1\172\1\uffff\1\156\1\146\2\uffff\1\165\1\76\1\157\1\163\1\162\1\141\5\uffff\1\135\1\75\1\145\1\172\1\uffff\2\uffff\1\57\3\uffff\1\143\3\uffff\1\160\1\172\1\164\2\uffff\1\164\2\172\2\uffff\1\155\1\157\1\144\1\172\1\141\2\160\10\uffff\1\145\5\uffff\1\153\1\157\1\uffff\2\172\1\uffff\1\172\1\uffff\1\142\1\153\1\172\1\uffff\1\156\1\154\1\160\1\141\1\162\3\uffff\1\144\1\165\1\uffff\1\163\1\145\1\151\1\147\1\164\1\141\1\160\1\146\1\166\1\156\1\145\3\172\1\157\1\145\1\147\1\172\3\uffff\1\162\1\154\1\172\1\uffff\1\155\1\172\1\uffff\1\141\1\uffff\1\164\1\151\1\157\1\156\1\172\1\uffff"; 1739 "\1\uffff\1\75\1\162\1\uffff\1\156\1\146\2\uffff\1\165\1\76\1\157\1\163\1\162\1\141\5\uffff\1\135\1\75\1\145\1\172\1\uffff\2\uffff\1\57\3\uffff\1\143\1\157\2\uffff\1\160\1\172\1\164\2\uffff\1\164\2\172\2\uffff\1\155\1\157\1\144\1\172\1\141\2\160\10\uffff\1\145\5\uffff\1\153\1\142\1\157\1\uffff\2\172\2\uffff\1\172\1\142\1\153\1\172\1\uffff\1\156\1\154\1\160\1\141\1\172\1\162\3\uffff\1\144\1\165\1\uffff\1\163\1\145\1\151\1\147\1\uffff\1\164\1\141\1\160\1\146\1\166\1\156\1\145\3\172\1\157\1\145\1\147\1\172\3\uffff\1\162\1\154\1\172\1\uffff\1\155\1\172\1\uffff\1\141\1\uffff\1\164\1\151\1\157\1\156\1\172\1\uffff";
1739 static final String DFA20_acceptS = 1740 static final String DFA20_acceptS =
1740 "\3\uffff\1\3\2\uffff\1\6\1\7\6\uffff\1\22\1\23\1\24\1\27\1\31\4\uffff\1\37\3\uffff\1\44\1\45\1\1\1\uffff\1\12\1\37\1\3\3\uffff\1\6\1\7\3\uffff\1\30\1\13\7\uffff\1\22\1\23\1\24\1\27\1\31\1\32\1\34\1\40\1\uffff\1\36\1\41\1\42\1\43\1\44\2\uffff\1\10\2\uffff\1\16\1\uffff\1\17\3\uffff\1\26\5\uffff\1\5\1\11\1\35\2\uffff\1\15\22\uffff\1\4\1\14\1\25\3\uffff\1\2\2\uffff\1\21\1\uffff\1\33\5\uffff\1\20"; 1741 "\3\uffff\1\3\2\uffff\1\6\1\7\6\uffff\1\22\1\23\1\24\1\27\1\31\4\uffff\1\37\3\uffff\1\44\1\45\1\1\2\uffff\1\37\1\3\3\uffff\1\6\1\7\3\uffff\1\30\1\13\7\uffff\1\22\1\23\1\24\1\27\1\31\1\32\1\34\1\36\1\uffff\1\40\1\41\1\42\1\43\1\44\3\uffff\1\10\2\uffff\1\16\1\17\4\uffff\1\26\6\uffff\1\5\1\11\1\35\2\uffff\1\15\4\uffff\1\12\16\uffff\1\4\1\14\1\25\3\uffff\1\2\2\uffff\1\21\1\uffff\1\33\5\uffff\1\20";
1741 static final String DFA20_specialS = 1742 static final String DFA20_specialS =
1742 "\1\2\27\uffff\1\1\1\0\142\uffff}>"; 1743 "\1\0\27\uffff\1\2\1\1\145\uffff}>";
1743 static final String[] DFA20_transitionS = { 1744 static final String[] DFA20_transitionS = {
1744 "\11\34\2\33\2\34\1\33\22\34\1\33\1\34\1\30\4\34\1\31\1\16\1\17\1\22\1\24\1\20\1\34\1\21\1\32\12\25\1\1\1\3\1\34\1\11\3\34\32\27\1\23\2\34\1\26\1\27\1\34\1\13\1\27\1\5\5\27\1\4\2\27\1\12\1\15\1\27\1\10\1\2\3\27\1\14\6\27\1\6\1\34\1\7\uff82\34", 1745 "\11\34\2\33\2\34\1\33\22\34\1\33\1\34\1\30\4\34\1\31\1\16\1\17\1\22\1\24\1\20\1\34\1\21\1\32\12\25\1\1\1\3\1\34\1\11\3\34\32\27\1\23\2\34\1\26\1\27\1\34\1\13\1\27\1\5\5\27\1\4\2\27\1\12\1\15\1\27\1\10\1\2\3\27\1\14\6\27\1\6\1\34\1\7\uff82\34",
1745 "\1\35", 1746 "\1\35",
1746 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\1\36\31\40", 1747 "\1\36\20\uffff\1\37",
1747 "", 1748 "",
1748 "\1\42\1\43", 1749 "\1\42\1\43",
1749 "\1\44", 1750 "\1\44",
@@ -1762,7 +1763,7 @@ public class InternalCftLanguageLexer extends Lexer {
1762 "", 1763 "",
1763 "\1\70", 1764 "\1\70",
1764 "\1\71", 1765 "\1\71",
1765 "\1\74\1\uffff\12\73\13\uffff\1\74\37\uffff\1\74", 1766 "\1\72\1\uffff\12\73\13\uffff\1\72\37\uffff\1\72",
1766 "\32\40\4\uffff\1\40\1\uffff\32\40", 1767 "\32\40\4\uffff\1\40\1\uffff\32\40",
1767 "", 1768 "",
1768 "\0\75", 1769 "\0\75",
@@ -1772,26 +1773,26 @@ public class InternalCftLanguageLexer extends Lexer {
1772 "", 1773 "",
1773 "", 1774 "",
1774 "\1\101", 1775 "\1\101",
1776 "\1\102",
1775 "", 1777 "",
1776 "", 1778 "",
1777 "", 1779 "\1\103",
1778 "\1\102",
1779 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", 1780 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1780 "\1\104", 1781 "\1\105",
1781 "", 1782 "",
1782 "", 1783 "",
1783 "\1\105", 1784 "\1\106",
1784 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", 1785 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1785 "\12\107\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", 1786 "\12\111\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1786 "", 1787 "",
1787 "", 1788 "",
1788 "\1\111",
1789 "\1\112", 1789 "\1\112",
1790 "\1\113", 1790 "\1\113",
1791 "\1\114",
1791 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", 1792 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1792 "\1\115",
1793 "\1\116", 1793 "\1\116",
1794 "\1\117", 1794 "\1\117",
1795 "\1\120",
1795 "", 1796 "",
1796 "", 1797 "",
1797 "", 1798 "",
@@ -1800,69 +1801,72 @@ public class InternalCftLanguageLexer extends Lexer {
1800 "", 1801 "",
1801 "", 1802 "",
1802 "", 1803 "",
1803 "\1\74\1\uffff\12\73\13\uffff\1\74\37\uffff\1\74", 1804 "\1\72\1\uffff\12\73\13\uffff\1\72\37\uffff\1\72",
1804 "", 1805 "",
1805 "", 1806 "",
1806 "", 1807 "",
1807 "", 1808 "",
1808 "", 1809 "",
1809 "\1\120",
1810 "\1\121", 1810 "\1\121",
1811 "\1\122",
1812 "\1\123",
1811 "", 1813 "",
1812 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", 1814 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1813 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", 1815 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1814 "", 1816 "",
1815 "\12\107\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1816 "", 1817 "",
1817 "\1\125", 1818 "\12\111\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1818 "\1\126", 1819 "\1\127",
1820 "\1\130",
1819 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", 1821 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1820 "", 1822 "",
1821 "\1\130",
1822 "\1\131",
1823 "\1\132", 1823 "\1\132",
1824 "\1\133", 1824 "\1\133",
1825 "\1\134", 1825 "\1\134",
1826 "\1\135",
1827 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1828 "\1\137",
1826 "", 1829 "",
1827 "", 1830 "",
1828 "", 1831 "",
1829 "\1\135",
1830 "\1\136",
1831 "",
1832 "\1\137",
1833 "\1\140", 1832 "\1\140",
1834 "\1\141", 1833 "\1\141",
1834 "",
1835 "\1\142", 1835 "\1\142",
1836 "\1\143", 1836 "\1\143",
1837 "\1\144", 1837 "\1\144",
1838 "\1\145", 1838 "\1\145",
1839 "",
1839 "\1\146", 1840 "\1\146",
1840 "\1\147", 1841 "\1\147",
1841 "\1\150", 1842 "\1\150",
1842 "\1\151", 1843 "\1\151",
1844 "\1\152",
1845 "\1\153",
1846 "\1\154",
1843 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", 1847 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1844 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", 1848 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1845 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", 1849 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1846 "\1\155", 1850 "\1\160",
1847 "\1\156",
1848 "\1\157",
1849 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1850 "",
1851 "",
1852 "",
1853 "\1\161", 1851 "\1\161",
1854 "\1\162", 1852 "\1\162",
1855 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", 1853 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1856 "", 1854 "",
1855 "",
1856 "",
1857 "\1\164", 1857 "\1\164",
1858 "\1\165",
1858 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", 1859 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1859 "", 1860 "",
1860 "\1\166",
1861 "",
1862 "\1\167", 1861 "\1\167",
1863 "\1\170", 1862 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1863 "",
1864 "\1\171", 1864 "\1\171",
1865 "",
1865 "\1\172", 1866 "\1\172",
1867 "\1\173",
1868 "\1\174",
1869 "\1\175",
1866 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40", 1870 "\12\40\7\uffff\32\40\4\uffff\1\40\1\uffff\32\40",
1867 "" 1871 ""
1868 }; 1872 };
@@ -1904,26 +1908,6 @@ public class InternalCftLanguageLexer extends Lexer {
1904 int _s = s; 1908 int _s = s;
1905 switch ( s ) { 1909 switch ( s ) {
1906 case 0 : 1910 case 0 :
1907 int LA20_25 = input.LA(1);
1908
1909 s = -1;
1910 if ( ((LA20_25>='\u0000' && LA20_25<='\uFFFF')) ) {s = 61;}
1911
1912 else s = 28;
1913
1914 if ( s>=0 ) return s;
1915 break;
1916 case 1 :
1917 int LA20_24 = input.LA(1);
1918
1919 s = -1;
1920 if ( ((LA20_24>='\u0000' && LA20_24<='\uFFFF')) ) {s = 61;}
1921
1922 else s = 28;
1923
1924 if ( s>=0 ) return s;
1925 break;
1926 case 2 :
1927 int LA20_0 = input.LA(1); 1911 int LA20_0 = input.LA(1);
1928 1912
1929 s = -1; 1913 s = -1;
@@ -1985,6 +1969,26 @@ public class InternalCftLanguageLexer extends Lexer {
1985 1969
1986 if ( s>=0 ) return s; 1970 if ( s>=0 ) return s;
1987 break; 1971 break;
1972 case 1 :
1973 int LA20_25 = input.LA(1);
1974
1975 s = -1;
1976 if ( ((LA20_25>='\u0000' && LA20_25<='\uFFFF')) ) {s = 61;}
1977
1978 else s = 28;
1979
1980 if ( s>=0 ) return s;
1981 break;
1982 case 2 :
1983 int LA20_24 = input.LA(1);
1984
1985 s = -1;
1986 if ( ((LA20_24>='\u0000' && LA20_24<='\uFFFF')) ) {s = 61;}
1987
1988 else s = 28;
1989
1990 if ( s>=0 ) return s;
1991 break;
1988 } 1992 }
1989 NoViableAltException nvae = 1993 NoViableAltException nvae =
1990 new NoViableAltException(getDescription(), 20, _s, input); 1994 new NoViableAltException(getDescription(), 20, _s, input);
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguageParser.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguageParser.java
index be5e3140..df83084b 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguageParser.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/contentassist/antlr/internal/InternalCftLanguageParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
22@SuppressWarnings("all") 22@SuppressWarnings("all")
23public class InternalCftLanguageParser extends AbstractInternalContentAssistParser { 23public class InternalCftLanguageParser extends AbstractInternalContentAssistParser {
24 public static final String[] tokenNames = new String[] { 24 public static final String[] tokenNames = new String[] {
25 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_OF_INT", "RULE_INT", "RULE_T_DOUBLE", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "':='", "'package'", "';'", "'import'", "'cft'", "'{'", "'}'", "'in'", "'out'", "'p'", "'='", "'lambda'", "'and'", "'or'", "'of'", "'transformation'", "'mapping'", "'('", "')'", "','", "'lookup'", "'as'", "'.'", "'=>'", "'*'", "'[]'", "'toplevel'", "'+='" 25 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_OF_INT", "RULE_INT", "RULE_T_DOUBLE", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "':='", "'package'", "';'", "'import'", "'cft'", "'{'", "'}'", "'in'", "'out'", "'prob'", "'='", "'lambda'", "'and'", "'or'", "'of'", "'transformation'", "'mapping'", "'('", "')'", "','", "'lookup'", "'as'", "'.'", "'=>'", "'*'", "'[]'", "'toplevel'", "'+='"
26 }; 26 };
27 public static final int RULE_STRING=8; 27 public static final int RULE_STRING=8;
28 public static final int RULE_SL_COMMENT=10; 28 public static final int RULE_SL_COMMENT=10;
@@ -4992,21 +4992,21 @@ public class InternalCftLanguageParser extends AbstractInternalContentAssistPars
4992 4992
4993 4993
4994 // $ANTLR start "rule__ConstantDistribution__Group__0__Impl" 4994 // $ANTLR start "rule__ConstantDistribution__Group__0__Impl"
4995 // InternalCftLanguage.g:1561:1: rule__ConstantDistribution__Group__0__Impl : ( 'p' ) ; 4995 // InternalCftLanguage.g:1561:1: rule__ConstantDistribution__Group__0__Impl : ( 'prob' ) ;
4996 public final void rule__ConstantDistribution__Group__0__Impl() throws RecognitionException { 4996 public final void rule__ConstantDistribution__Group__0__Impl() throws RecognitionException {
4997 4997
4998 int stackSize = keepStackSize(); 4998 int stackSize = keepStackSize();
4999 4999
5000 try { 5000 try {
5001 // InternalCftLanguage.g:1565:1: ( ( 'p' ) ) 5001 // InternalCftLanguage.g:1565:1: ( ( 'prob' ) )
5002 // InternalCftLanguage.g:1566:1: ( 'p' ) 5002 // InternalCftLanguage.g:1566:1: ( 'prob' )
5003 { 5003 {
5004 // InternalCftLanguage.g:1566:1: ( 'p' ) 5004 // InternalCftLanguage.g:1566:1: ( 'prob' )
5005 // InternalCftLanguage.g:1567:2: 'p' 5005 // InternalCftLanguage.g:1567:2: 'prob'
5006 { 5006 {
5007 before(grammarAccess.getConstantDistributionAccess().getPKeyword_0()); 5007 before(grammarAccess.getConstantDistributionAccess().getProbKeyword_0());
5008 match(input,22,FOLLOW_2); 5008 match(input,22,FOLLOW_2);
5009 after(grammarAccess.getConstantDistributionAccess().getPKeyword_0()); 5009 after(grammarAccess.getConstantDistributionAccess().getProbKeyword_0());
5010 5010
5011 } 5011 }
5012 5012
@@ -9567,7 +9567,7 @@ public class InternalCftLanguageParser extends AbstractInternalContentAssistPars
9567 // InternalCftLanguage.g:3065:1: ( rule__ComponentInstance__Group__1__Impl rule__ComponentInstance__Group__2 ) 9567 // InternalCftLanguage.g:3065:1: ( rule__ComponentInstance__Group__1__Impl rule__ComponentInstance__Group__2 )
9568 // InternalCftLanguage.g:3066:2: rule__ComponentInstance__Group__1__Impl rule__ComponentInstance__Group__2 9568 // InternalCftLanguage.g:3066:2: rule__ComponentInstance__Group__1__Impl rule__ComponentInstance__Group__2
9569 { 9569 {
9570 pushFollow(FOLLOW_34); 9570 pushFollow(FOLLOW_3);
9571 rule__ComponentInstance__Group__1__Impl(); 9571 rule__ComponentInstance__Group__1__Impl();
9572 9572
9573 state._fsp--; 9573 state._fsp--;
@@ -9693,7 +9693,7 @@ public class InternalCftLanguageParser extends AbstractInternalContentAssistPars
9693 int alt28=2; 9693 int alt28=2;
9694 int LA28_0 = input.LA(1); 9694 int LA28_0 = input.LA(1);
9695 9695
9696 if ( (LA28_0==RULE_ID) ) { 9696 if ( ((LA28_0>=RULE_ID && LA28_0<=RULE_OF_INT)) ) {
9697 alt28=1; 9697 alt28=1;
9698 } 9698 }
9699 switch (alt28) { 9699 switch (alt28) {
@@ -9880,7 +9880,7 @@ public class InternalCftLanguageParser extends AbstractInternalContentAssistPars
9880 case 1 : 9880 case 1 :
9881 // InternalCftLanguage.g:3160:3: rule__QualifiedName__Group_1__0 9881 // InternalCftLanguage.g:3160:3: rule__QualifiedName__Group_1__0
9882 { 9882 {
9883 pushFollow(FOLLOW_35); 9883 pushFollow(FOLLOW_34);
9884 rule__QualifiedName__Group_1__0(); 9884 rule__QualifiedName__Group_1__0();
9885 9885
9886 state._fsp--; 9886 state._fsp--;
@@ -10245,7 +10245,7 @@ public class InternalCftLanguageParser extends AbstractInternalContentAssistPars
10245 // InternalCftLanguage.g:3281:1: ( rule__QualifiedNameWithWildcard__Group_1__0__Impl rule__QualifiedNameWithWildcard__Group_1__1 ) 10245 // InternalCftLanguage.g:3281:1: ( rule__QualifiedNameWithWildcard__Group_1__0__Impl rule__QualifiedNameWithWildcard__Group_1__1 )
10246 // InternalCftLanguage.g:3282:2: rule__QualifiedNameWithWildcard__Group_1__0__Impl rule__QualifiedNameWithWildcard__Group_1__1 10246 // InternalCftLanguage.g:3282:2: rule__QualifiedNameWithWildcard__Group_1__0__Impl rule__QualifiedNameWithWildcard__Group_1__1
10247 { 10247 {
10248 pushFollow(FOLLOW_36); 10248 pushFollow(FOLLOW_35);
10249 rule__QualifiedNameWithWildcard__Group_1__0__Impl(); 10249 rule__QualifiedNameWithWildcard__Group_1__0__Impl();
10250 10250
10251 state._fsp--; 10251 state._fsp--;
@@ -10588,7 +10588,7 @@ public class InternalCftLanguageParser extends AbstractInternalContentAssistPars
10588 // InternalCftLanguage.g:3394:1: ( rule__ComponentDefinition__UnorderedGroup_3__Impl ( rule__ComponentDefinition__UnorderedGroup_3__1 )? ) 10588 // InternalCftLanguage.g:3394:1: ( rule__ComponentDefinition__UnorderedGroup_3__Impl ( rule__ComponentDefinition__UnorderedGroup_3__1 )? )
10589 // InternalCftLanguage.g:3395:2: rule__ComponentDefinition__UnorderedGroup_3__Impl ( rule__ComponentDefinition__UnorderedGroup_3__1 )? 10589 // InternalCftLanguage.g:3395:2: rule__ComponentDefinition__UnorderedGroup_3__Impl ( rule__ComponentDefinition__UnorderedGroup_3__1 )?
10590 { 10590 {
10591 pushFollow(FOLLOW_37); 10591 pushFollow(FOLLOW_36);
10592 rule__ComponentDefinition__UnorderedGroup_3__Impl(); 10592 rule__ComponentDefinition__UnorderedGroup_3__Impl();
10593 10593
10594 state._fsp--; 10594 state._fsp--;
@@ -12562,21 +12562,25 @@ public class InternalCftLanguageParser extends AbstractInternalContentAssistPars
12562 12562
12563 12563
12564 // $ANTLR start "rule__ComponentInstance__NameAssignment_2" 12564 // $ANTLR start "rule__ComponentInstance__NameAssignment_2"
12565 // InternalCftLanguage.g:4130:1: rule__ComponentInstance__NameAssignment_2 : ( RULE_ID ) ; 12565 // InternalCftLanguage.g:4130:1: rule__ComponentInstance__NameAssignment_2 : ( ruleValidId ) ;
12566 public final void rule__ComponentInstance__NameAssignment_2() throws RecognitionException { 12566 public final void rule__ComponentInstance__NameAssignment_2() throws RecognitionException {
12567 12567
12568 int stackSize = keepStackSize(); 12568 int stackSize = keepStackSize();
12569 12569
12570 try { 12570 try {
12571 // InternalCftLanguage.g:4134:1: ( ( RULE_ID ) ) 12571 // InternalCftLanguage.g:4134:1: ( ( ruleValidId ) )
12572 // InternalCftLanguage.g:4135:2: ( RULE_ID ) 12572 // InternalCftLanguage.g:4135:2: ( ruleValidId )
12573 { 12573 {
12574 // InternalCftLanguage.g:4135:2: ( RULE_ID ) 12574 // InternalCftLanguage.g:4135:2: ( ruleValidId )
12575 // InternalCftLanguage.g:4136:3: RULE_ID 12575 // InternalCftLanguage.g:4136:3: ruleValidId
12576 { 12576 {
12577 before(grammarAccess.getComponentInstanceAccess().getNameIDTerminalRuleCall_2_0()); 12577 before(grammarAccess.getComponentInstanceAccess().getNameValidIdParserRuleCall_2_0());
12578 match(input,RULE_ID,FOLLOW_2); 12578 pushFollow(FOLLOW_2);
12579 after(grammarAccess.getComponentInstanceAccess().getNameIDTerminalRuleCall_2_0()); 12579 ruleValidId();
12580
12581 state._fsp--;
12582
12583 after(grammarAccess.getComponentInstanceAccess().getNameValidIdParserRuleCall_2_0());
12580 12584
12581 } 12585 }
12582 12586
@@ -12635,9 +12639,8 @@ public class InternalCftLanguageParser extends AbstractInternalContentAssistPars
12635 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000010000002000L}); 12639 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000010000002000L});
12636 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000200000030L}); 12640 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000200000030L});
12637 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000800000000L}); 12641 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000800000000L});
12638 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000010L}); 12642 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000800000002L});
12639 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000800000002L}); 12643 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000002000000000L});
12640 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000002000000000L}); 12644 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000300002L});
12641 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000300002L});
12642 12645
12643} 12646}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/.CftLanguageIdeModule.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/.CftLanguageIdeModule.xtendbin
index b146c48b..65b90333 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/.CftLanguageIdeModule.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/.CftLanguageIdeModule.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/.CftLanguageIdeSetup.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/.CftLanguageIdeSetup.xtendbin
index 8fc21e17..7fbd4ad1 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/.CftLanguageIdeSetup.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ide/.CftLanguageIdeSetup.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/.CftLanguageUiModule.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/.CftLanguageUiModule.xtendbin
index 56635dea..77bd6532 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/.CftLanguageUiModule.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/.CftLanguageUiModule.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/contentassist/.CftLanguageProposalProvider.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/contentassist/.CftLanguageProposalProvider.xtendbin
index c62e6652..33d0e601 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/contentassist/.CftLanguageProposalProvider.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/contentassist/.CftLanguageProposalProvider.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/labeling/.CftLanguageDescriptionLabelProvider.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/labeling/.CftLanguageDescriptionLabelProvider.xtendbin
index 21bd15b6..6617b26f 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/labeling/.CftLanguageDescriptionLabelProvider.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/labeling/.CftLanguageDescriptionLabelProvider.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/labeling/.CftLanguageLabelProvider.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/labeling/.CftLanguageLabelProvider.xtendbin
index ae92f324..82af00d7 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/labeling/.CftLanguageLabelProvider.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/labeling/.CftLanguageLabelProvider.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/outline/.CftLanguageOutlineTreeProvider.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/outline/.CftLanguageOutlineTreeProvider.xtendbin
index e8595819..adffb198 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/outline/.CftLanguageOutlineTreeProvider.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/outline/.CftLanguageOutlineTreeProvider.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/quickfix/.CftLanguageQuickfixProvider.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/quickfix/.CftLanguageQuickfixProvider.xtendbin
index 637b4e7e..2ecc121e 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/quickfix/.CftLanguageQuickfixProvider.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/quickfix/.CftLanguageQuickfixProvider.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/syntaxcoloring/.CftLanguageSemanticHighlightingCalculator.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/syntaxcoloring/.CftLanguageSemanticHighlightingCalculator.xtendbin
index d88f5256..ce699deb 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/syntaxcoloring/.CftLanguageSemanticHighlightingCalculator.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/syntaxcoloring/.CftLanguageSemanticHighlightingCalculator.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/syntaxcoloring/.CftLanguageTokenToAttributeIdMapper.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/syntaxcoloring/.CftLanguageTokenToAttributeIdMapper.xtendbin
index d8af5320..86752345 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/syntaxcoloring/.CftLanguageTokenToAttributeIdMapper.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/syntaxcoloring/.CftLanguageTokenToAttributeIdMapper.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/CftLanguage.xtextbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/CftLanguage.xtextbin
index ffe22f72..eb879e93 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/CftLanguage.xtextbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/CftLanguage.xtextbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguage.g b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguage.g
index 2d1b9490..51479ad3 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguage.g
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguage.g
@@ -575,9 +575,9 @@ ruleConstantDistribution returns [EObject current=null]
575 leaveRule(); 575 leaveRule();
576}: 576}:
577 ( 577 (
578 otherlv_0='p' 578 otherlv_0='prob'
579 { 579 {
580 newLeafNode(otherlv_0, grammarAccess.getConstantDistributionAccess().getPKeyword_0()); 580 newLeafNode(otherlv_0, grammarAccess.getConstantDistributionAccess().getProbKeyword_0());
581 } 581 }
582 otherlv_1='=' 582 otherlv_1='='
583 { 583 {
@@ -1494,19 +1494,20 @@ ruleComponentInstance returns [EObject current=null]
1494 ) 1494 )
1495 ( 1495 (
1496 ( 1496 (
1497 lv_name_2_0=RULE_ID
1498 { 1497 {
1499 newLeafNode(lv_name_2_0, grammarAccess.getComponentInstanceAccess().getNameIDTerminalRuleCall_2_0()); 1498 newCompositeNode(grammarAccess.getComponentInstanceAccess().getNameValidIdParserRuleCall_2_0());
1500 } 1499 }
1500 lv_name_2_0=ruleValidId
1501 { 1501 {
1502 if ($current==null) { 1502 if ($current==null) {
1503 $current = createModelElement(grammarAccess.getComponentInstanceRule()); 1503 $current = createModelElementForParent(grammarAccess.getComponentInstanceRule());
1504 } 1504 }
1505 setWithLastConsumed( 1505 set(
1506 $current, 1506 $current,
1507 "name", 1507 "name",
1508 lv_name_2_0, 1508 lv_name_2_0,
1509 "org.eclipse.xtext.common.Terminals.ID"); 1509 "hu.bme.mit.inf.dslreasoner.faulttree.components.CftLanguage.ValidId");
1510 afterParserOrEnumRuleCall();
1510 } 1511 }
1511 ) 1512 )
1512 )? 1513 )?
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguage.tokens b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguage.tokens
index 2183a28f..24a3b0ab 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguage.tokens
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguage.tokens
@@ -20,8 +20,8 @@
20'of'=27 20'of'=27
21'or'=26 21'or'=26
22'out'=19 22'out'=19
23'p'=22
24'package'=13 23'package'=13
24'prob'=22
25'toplevel'=29 25'toplevel'=29
26'transformation'=28 26'transformation'=28
27'{'=17 27'{'=17
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguageLexer.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguageLexer.java
index d7e9807d..c15c826a 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguageLexer.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguageLexer.java
@@ -255,10 +255,11 @@ public class InternalCftLanguageLexer extends Lexer {
255 try { 255 try {
256 int _type = T__22; 256 int _type = T__22;
257 int _channel = DEFAULT_TOKEN_CHANNEL; 257 int _channel = DEFAULT_TOKEN_CHANNEL;
258 // InternalCftLanguage.g:20:7: ( 'p' ) 258 // InternalCftLanguage.g:20:7: ( 'prob' )
259 // InternalCftLanguage.g:20:9: 'p' 259 // InternalCftLanguage.g:20:9: 'prob'
260 { 260 {
261 match('p'); 261 match("prob");
262
262 263
263 } 264 }
264 265
@@ -647,12 +648,12 @@ public class InternalCftLanguageLexer extends Lexer {
647 try { 648 try {
648 int _type = RULE_OF_INT; 649 int _type = RULE_OF_INT;
649 int _channel = DEFAULT_TOKEN_CHANNEL; 650 int _channel = DEFAULT_TOKEN_CHANNEL;
650 // InternalCftLanguage.g:1671:13: ( 'o' 'f' ( '0' .. '9' )+ ) 651 // InternalCftLanguage.g:1672:13: ( 'o' 'f' ( '0' .. '9' )+ )
651 // InternalCftLanguage.g:1671:15: 'o' 'f' ( '0' .. '9' )+ 652 // InternalCftLanguage.g:1672:15: 'o' 'f' ( '0' .. '9' )+
652 { 653 {
653 match('o'); 654 match('o');
654 match('f'); 655 match('f');
655 // InternalCftLanguage.g:1671:23: ( '0' .. '9' )+ 656 // InternalCftLanguage.g:1672:23: ( '0' .. '9' )+
656 int cnt1=0; 657 int cnt1=0;
657 loop1: 658 loop1:
658 do { 659 do {
@@ -666,7 +667,7 @@ public class InternalCftLanguageLexer extends Lexer {
666 667
667 switch (alt1) { 668 switch (alt1) {
668 case 1 : 669 case 1 :
669 // InternalCftLanguage.g:1671:24: '0' .. '9' 670 // InternalCftLanguage.g:1672:24: '0' .. '9'
670 { 671 {
671 matchRange('0','9'); 672 matchRange('0','9');
672 673
@@ -698,10 +699,10 @@ public class InternalCftLanguageLexer extends Lexer {
698 try { 699 try {
699 int _type = RULE_T_DOUBLE; 700 int _type = RULE_T_DOUBLE;
700 int _channel = DEFAULT_TOKEN_CHANNEL; 701 int _channel = DEFAULT_TOKEN_CHANNEL;
701 // InternalCftLanguage.g:1673:15: ( ( '0' .. '9' )+ ( '.' ( '0' .. '9' )+ | ( '.' ( '0' .. '9' )+ )? ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ ) ) 702 // InternalCftLanguage.g:1674:15: ( ( '0' .. '9' )+ ( '.' ( '0' .. '9' )+ | ( '.' ( '0' .. '9' )+ )? ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ ) )
702 // InternalCftLanguage.g:1673:17: ( '0' .. '9' )+ ( '.' ( '0' .. '9' )+ | ( '.' ( '0' .. '9' )+ )? ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ ) 703 // InternalCftLanguage.g:1674:17: ( '0' .. '9' )+ ( '.' ( '0' .. '9' )+ | ( '.' ( '0' .. '9' )+ )? ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
703 { 704 {
704 // InternalCftLanguage.g:1673:17: ( '0' .. '9' )+ 705 // InternalCftLanguage.g:1674:17: ( '0' .. '9' )+
705 int cnt2=0; 706 int cnt2=0;
706 loop2: 707 loop2:
707 do { 708 do {
@@ -715,7 +716,7 @@ public class InternalCftLanguageLexer extends Lexer {
715 716
716 switch (alt2) { 717 switch (alt2) {
717 case 1 : 718 case 1 :
718 // InternalCftLanguage.g:1673:18: '0' .. '9' 719 // InternalCftLanguage.g:1674:18: '0' .. '9'
719 { 720 {
720 matchRange('0','9'); 721 matchRange('0','9');
721 722
@@ -731,15 +732,15 @@ public class InternalCftLanguageLexer extends Lexer {
731 cnt2++; 732 cnt2++;
732 } while (true); 733 } while (true);
733 734
734 // InternalCftLanguage.g:1673:29: ( '.' ( '0' .. '9' )+ | ( '.' ( '0' .. '9' )+ )? ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ ) 735 // InternalCftLanguage.g:1674:29: ( '.' ( '0' .. '9' )+ | ( '.' ( '0' .. '9' )+ )? ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
735 int alt8=2; 736 int alt8=2;
736 alt8 = dfa8.predict(input); 737 alt8 = dfa8.predict(input);
737 switch (alt8) { 738 switch (alt8) {
738 case 1 : 739 case 1 :
739 // InternalCftLanguage.g:1673:30: '.' ( '0' .. '9' )+ 740 // InternalCftLanguage.g:1674:30: '.' ( '0' .. '9' )+
740 { 741 {
741 match('.'); 742 match('.');
742 // InternalCftLanguage.g:1673:34: ( '0' .. '9' )+ 743 // InternalCftLanguage.g:1674:34: ( '0' .. '9' )+
743 int cnt3=0; 744 int cnt3=0;
744 loop3: 745 loop3:
745 do { 746 do {
@@ -753,7 +754,7 @@ public class InternalCftLanguageLexer extends Lexer {
753 754
754 switch (alt3) { 755 switch (alt3) {
755 case 1 : 756 case 1 :
756 // InternalCftLanguage.g:1673:35: '0' .. '9' 757 // InternalCftLanguage.g:1674:35: '0' .. '9'
757 { 758 {
758 matchRange('0','9'); 759 matchRange('0','9');
759 760
@@ -773,9 +774,9 @@ public class InternalCftLanguageLexer extends Lexer {
773 } 774 }
774 break; 775 break;
775 case 2 : 776 case 2 :
776 // InternalCftLanguage.g:1673:46: ( '.' ( '0' .. '9' )+ )? ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ 777 // InternalCftLanguage.g:1674:46: ( '.' ( '0' .. '9' )+ )? ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
777 { 778 {
778 // InternalCftLanguage.g:1673:46: ( '.' ( '0' .. '9' )+ )? 779 // InternalCftLanguage.g:1674:46: ( '.' ( '0' .. '9' )+ )?
779 int alt5=2; 780 int alt5=2;
780 int LA5_0 = input.LA(1); 781 int LA5_0 = input.LA(1);
781 782
@@ -784,10 +785,10 @@ public class InternalCftLanguageLexer extends Lexer {
784 } 785 }
785 switch (alt5) { 786 switch (alt5) {
786 case 1 : 787 case 1 :
787 // InternalCftLanguage.g:1673:47: '.' ( '0' .. '9' )+ 788 // InternalCftLanguage.g:1674:47: '.' ( '0' .. '9' )+
788 { 789 {
789 match('.'); 790 match('.');
790 // InternalCftLanguage.g:1673:51: ( '0' .. '9' )+ 791 // InternalCftLanguage.g:1674:51: ( '0' .. '9' )+
791 int cnt4=0; 792 int cnt4=0;
792 loop4: 793 loop4:
793 do { 794 do {
@@ -801,7 +802,7 @@ public class InternalCftLanguageLexer extends Lexer {
801 802
802 switch (alt4) { 803 switch (alt4) {
803 case 1 : 804 case 1 :
804 // InternalCftLanguage.g:1673:52: '0' .. '9' 805 // InternalCftLanguage.g:1674:52: '0' .. '9'
805 { 806 {
806 matchRange('0','9'); 807 matchRange('0','9');
807 808
@@ -832,7 +833,7 @@ public class InternalCftLanguageLexer extends Lexer {
832 recover(mse); 833 recover(mse);
833 throw mse;} 834 throw mse;}
834 835
835 // InternalCftLanguage.g:1673:75: ( '+' | '-' )? 836 // InternalCftLanguage.g:1674:75: ( '+' | '-' )?
836 int alt6=2; 837 int alt6=2;
837 int LA6_0 = input.LA(1); 838 int LA6_0 = input.LA(1);
838 839
@@ -858,7 +859,7 @@ public class InternalCftLanguageLexer extends Lexer {
858 859
859 } 860 }
860 861
861 // InternalCftLanguage.g:1673:86: ( '0' .. '9' )+ 862 // InternalCftLanguage.g:1674:86: ( '0' .. '9' )+
862 int cnt7=0; 863 int cnt7=0;
863 loop7: 864 loop7:
864 do { 865 do {
@@ -872,7 +873,7 @@ public class InternalCftLanguageLexer extends Lexer {
872 873
873 switch (alt7) { 874 switch (alt7) {
874 case 1 : 875 case 1 :
875 // InternalCftLanguage.g:1673:87: '0' .. '9' 876 // InternalCftLanguage.g:1674:87: '0' .. '9'
876 { 877 {
877 matchRange('0','9'); 878 matchRange('0','9');
878 879
@@ -910,10 +911,10 @@ public class InternalCftLanguageLexer extends Lexer {
910 try { 911 try {
911 int _type = RULE_ID; 912 int _type = RULE_ID;
912 int _channel = DEFAULT_TOKEN_CHANNEL; 913 int _channel = DEFAULT_TOKEN_CHANNEL;
913 // InternalCftLanguage.g:1675:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) 914 // InternalCftLanguage.g:1676:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
914 // InternalCftLanguage.g:1675:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* 915 // InternalCftLanguage.g:1676:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
915 { 916 {
916 // InternalCftLanguage.g:1675:11: ( '^' )? 917 // InternalCftLanguage.g:1676:11: ( '^' )?
917 int alt9=2; 918 int alt9=2;
918 int LA9_0 = input.LA(1); 919 int LA9_0 = input.LA(1);
919 920
@@ -922,7 +923,7 @@ public class InternalCftLanguageLexer extends Lexer {
922 } 923 }
923 switch (alt9) { 924 switch (alt9) {
924 case 1 : 925 case 1 :
925 // InternalCftLanguage.g:1675:11: '^' 926 // InternalCftLanguage.g:1676:11: '^'
926 { 927 {
927 match('^'); 928 match('^');
928 929
@@ -940,7 +941,7 @@ public class InternalCftLanguageLexer extends Lexer {
940 recover(mse); 941 recover(mse);
941 throw mse;} 942 throw mse;}
942 943
943 // InternalCftLanguage.g:1675:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* 944 // InternalCftLanguage.g:1676:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
944 loop10: 945 loop10:
945 do { 946 do {
946 int alt10=2; 947 int alt10=2;
@@ -989,10 +990,10 @@ public class InternalCftLanguageLexer extends Lexer {
989 try { 990 try {
990 int _type = RULE_INT; 991 int _type = RULE_INT;
991 int _channel = DEFAULT_TOKEN_CHANNEL; 992 int _channel = DEFAULT_TOKEN_CHANNEL;
992 // InternalCftLanguage.g:1677:10: ( ( '0' .. '9' )+ ) 993 // InternalCftLanguage.g:1678:10: ( ( '0' .. '9' )+ )
993 // InternalCftLanguage.g:1677:12: ( '0' .. '9' )+ 994 // InternalCftLanguage.g:1678:12: ( '0' .. '9' )+
994 { 995 {
995 // InternalCftLanguage.g:1677:12: ( '0' .. '9' )+ 996 // InternalCftLanguage.g:1678:12: ( '0' .. '9' )+
996 int cnt11=0; 997 int cnt11=0;
997 loop11: 998 loop11:
998 do { 999 do {
@@ -1006,7 +1007,7 @@ public class InternalCftLanguageLexer extends Lexer {
1006 1007
1007 switch (alt11) { 1008 switch (alt11) {
1008 case 1 : 1009 case 1 :
1009 // InternalCftLanguage.g:1677:13: '0' .. '9' 1010 // InternalCftLanguage.g:1678:13: '0' .. '9'
1010 { 1011 {
1011 matchRange('0','9'); 1012 matchRange('0','9');
1012 1013
@@ -1038,10 +1039,10 @@ public class InternalCftLanguageLexer extends Lexer {
1038 try { 1039 try {
1039 int _type = RULE_STRING; 1040 int _type = RULE_STRING;
1040 int _channel = DEFAULT_TOKEN_CHANNEL; 1041 int _channel = DEFAULT_TOKEN_CHANNEL;
1041 // InternalCftLanguage.g:1679:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) 1042 // InternalCftLanguage.g:1680:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
1042 // InternalCftLanguage.g:1679:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) 1043 // InternalCftLanguage.g:1680:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
1043 { 1044 {
1044 // InternalCftLanguage.g:1679:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) 1045 // InternalCftLanguage.g:1680:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
1045 int alt14=2; 1046 int alt14=2;
1046 int LA14_0 = input.LA(1); 1047 int LA14_0 = input.LA(1);
1047 1048
@@ -1059,10 +1060,10 @@ public class InternalCftLanguageLexer extends Lexer {
1059 } 1060 }
1060 switch (alt14) { 1061 switch (alt14) {
1061 case 1 : 1062 case 1 :
1062 // InternalCftLanguage.g:1679:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' 1063 // InternalCftLanguage.g:1680:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
1063 { 1064 {
1064 match('\"'); 1065 match('\"');
1065 // InternalCftLanguage.g:1679:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* 1066 // InternalCftLanguage.g:1680:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
1066 loop12: 1067 loop12:
1067 do { 1068 do {
1068 int alt12=3; 1069 int alt12=3;
@@ -1078,7 +1079,7 @@ public class InternalCftLanguageLexer extends Lexer {
1078 1079
1079 switch (alt12) { 1080 switch (alt12) {
1080 case 1 : 1081 case 1 :
1081 // InternalCftLanguage.g:1679:21: '\\\\' . 1082 // InternalCftLanguage.g:1680:21: '\\\\' .
1082 { 1083 {
1083 match('\\'); 1084 match('\\');
1084 matchAny(); 1085 matchAny();
@@ -1086,7 +1087,7 @@ public class InternalCftLanguageLexer extends Lexer {
1086 } 1087 }
1087 break; 1088 break;
1088 case 2 : 1089 case 2 :
1089 // InternalCftLanguage.g:1679:28: ~ ( ( '\\\\' | '\"' ) ) 1090 // InternalCftLanguage.g:1680:28: ~ ( ( '\\\\' | '\"' ) )
1090 { 1091 {
1091 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { 1092 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
1092 input.consume(); 1093 input.consume();
@@ -1111,10 +1112,10 @@ public class InternalCftLanguageLexer extends Lexer {
1111 } 1112 }
1112 break; 1113 break;
1113 case 2 : 1114 case 2 :
1114 // InternalCftLanguage.g:1679:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' 1115 // InternalCftLanguage.g:1680:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
1115 { 1116 {
1116 match('\''); 1117 match('\'');
1117 // InternalCftLanguage.g:1679:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* 1118 // InternalCftLanguage.g:1680:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
1118 loop13: 1119 loop13:
1119 do { 1120 do {
1120 int alt13=3; 1121 int alt13=3;
@@ -1130,7 +1131,7 @@ public class InternalCftLanguageLexer extends Lexer {
1130 1131
1131 switch (alt13) { 1132 switch (alt13) {
1132 case 1 : 1133 case 1 :
1133 // InternalCftLanguage.g:1679:54: '\\\\' . 1134 // InternalCftLanguage.g:1680:54: '\\\\' .
1134 { 1135 {
1135 match('\\'); 1136 match('\\');
1136 matchAny(); 1137 matchAny();
@@ -1138,7 +1139,7 @@ public class InternalCftLanguageLexer extends Lexer {
1138 } 1139 }
1139 break; 1140 break;
1140 case 2 : 1141 case 2 :
1141 // InternalCftLanguage.g:1679:61: ~ ( ( '\\\\' | '\\'' ) ) 1142 // InternalCftLanguage.g:1680:61: ~ ( ( '\\\\' | '\\'' ) )
1142 { 1143 {
1143 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { 1144 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
1144 input.consume(); 1145 input.consume();
@@ -1181,12 +1182,12 @@ public class InternalCftLanguageLexer extends Lexer {
1181 try { 1182 try {
1182 int _type = RULE_ML_COMMENT; 1183 int _type = RULE_ML_COMMENT;
1183 int _channel = DEFAULT_TOKEN_CHANNEL; 1184 int _channel = DEFAULT_TOKEN_CHANNEL;
1184 // InternalCftLanguage.g:1681:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) 1185 // InternalCftLanguage.g:1682:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
1185 // InternalCftLanguage.g:1681:19: '/*' ( options {greedy=false; } : . )* '*/' 1186 // InternalCftLanguage.g:1682:19: '/*' ( options {greedy=false; } : . )* '*/'
1186 { 1187 {
1187 match("/*"); 1188 match("/*");
1188 1189
1189 // InternalCftLanguage.g:1681:24: ( options {greedy=false; } : . )* 1190 // InternalCftLanguage.g:1682:24: ( options {greedy=false; } : . )*
1190 loop15: 1191 loop15:
1191 do { 1192 do {
1192 int alt15=2; 1193 int alt15=2;
@@ -1211,7 +1212,7 @@ public class InternalCftLanguageLexer extends Lexer {
1211 1212
1212 switch (alt15) { 1213 switch (alt15) {
1213 case 1 : 1214 case 1 :
1214 // InternalCftLanguage.g:1681:52: . 1215 // InternalCftLanguage.g:1682:52: .
1215 { 1216 {
1216 matchAny(); 1217 matchAny();
1217 1218
@@ -1241,12 +1242,12 @@ public class InternalCftLanguageLexer extends Lexer {
1241 try { 1242 try {
1242 int _type = RULE_SL_COMMENT; 1243 int _type = RULE_SL_COMMENT;
1243 int _channel = DEFAULT_TOKEN_CHANNEL; 1244 int _channel = DEFAULT_TOKEN_CHANNEL;
1244 // InternalCftLanguage.g:1683:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) 1245 // InternalCftLanguage.g:1684:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
1245 // InternalCftLanguage.g:1683:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? 1246 // InternalCftLanguage.g:1684:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
1246 { 1247 {
1247 match("//"); 1248 match("//");
1248 1249
1249 // InternalCftLanguage.g:1683:24: (~ ( ( '\\n' | '\\r' ) ) )* 1250 // InternalCftLanguage.g:1684:24: (~ ( ( '\\n' | '\\r' ) ) )*
1250 loop16: 1251 loop16:
1251 do { 1252 do {
1252 int alt16=2; 1253 int alt16=2;
@@ -1259,7 +1260,7 @@ public class InternalCftLanguageLexer extends Lexer {
1259 1260
1260 switch (alt16) { 1261 switch (alt16) {
1261 case 1 : 1262 case 1 :
1262 // InternalCftLanguage.g:1683:24: ~ ( ( '\\n' | '\\r' ) ) 1263 // InternalCftLanguage.g:1684:24: ~ ( ( '\\n' | '\\r' ) )
1263 { 1264 {
1264 if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { 1265 if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
1265 input.consume(); 1266 input.consume();
@@ -1279,7 +1280,7 @@ public class InternalCftLanguageLexer extends Lexer {
1279 } 1280 }
1280 } while (true); 1281 } while (true);
1281 1282
1282 // InternalCftLanguage.g:1683:40: ( ( '\\r' )? '\\n' )? 1283 // InternalCftLanguage.g:1684:40: ( ( '\\r' )? '\\n' )?
1283 int alt18=2; 1284 int alt18=2;
1284 int LA18_0 = input.LA(1); 1285 int LA18_0 = input.LA(1);
1285 1286
@@ -1288,9 +1289,9 @@ public class InternalCftLanguageLexer extends Lexer {
1288 } 1289 }
1289 switch (alt18) { 1290 switch (alt18) {
1290 case 1 : 1291 case 1 :
1291 // InternalCftLanguage.g:1683:41: ( '\\r' )? '\\n' 1292 // InternalCftLanguage.g:1684:41: ( '\\r' )? '\\n'
1292 { 1293 {
1293 // InternalCftLanguage.g:1683:41: ( '\\r' )? 1294 // InternalCftLanguage.g:1684:41: ( '\\r' )?
1294 int alt17=2; 1295 int alt17=2;
1295 int LA17_0 = input.LA(1); 1296 int LA17_0 = input.LA(1);
1296 1297
@@ -1299,7 +1300,7 @@ public class InternalCftLanguageLexer extends Lexer {
1299 } 1300 }
1300 switch (alt17) { 1301 switch (alt17) {
1301 case 1 : 1302 case 1 :
1302 // InternalCftLanguage.g:1683:41: '\\r' 1303 // InternalCftLanguage.g:1684:41: '\\r'
1303 { 1304 {
1304 match('\r'); 1305 match('\r');
1305 1306
@@ -1331,10 +1332,10 @@ public class InternalCftLanguageLexer extends Lexer {
1331 try { 1332 try {
1332 int _type = RULE_WS; 1333 int _type = RULE_WS;
1333 int _channel = DEFAULT_TOKEN_CHANNEL; 1334 int _channel = DEFAULT_TOKEN_CHANNEL;
1334 // InternalCftLanguage.g:1685:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) 1335 // InternalCftLanguage.g:1686:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
1335 // InternalCftLanguage.g:1685:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1336 // InternalCftLanguage.g:1686:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1336 { 1337 {
1337 // InternalCftLanguage.g:1685:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1338 // InternalCftLanguage.g:1686:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1338 int cnt19=0; 1339 int cnt19=0;
1339 loop19: 1340 loop19:
1340 do { 1341 do {
@@ -1388,8 +1389,8 @@ public class InternalCftLanguageLexer extends Lexer {
1388 try { 1389 try {
1389 int _type = RULE_ANY_OTHER; 1390 int _type = RULE_ANY_OTHER;
1390 int _channel = DEFAULT_TOKEN_CHANNEL; 1391 int _channel = DEFAULT_TOKEN_CHANNEL;
1391 // InternalCftLanguage.g:1687:16: ( . ) 1392 // InternalCftLanguage.g:1688:16: ( . )
1392 // InternalCftLanguage.g:1687:18: . 1393 // InternalCftLanguage.g:1688:18: .
1393 { 1394 {
1394 matchAny(); 1395 matchAny();
1395 1396
@@ -1725,24 +1726,24 @@ public class InternalCftLanguageLexer extends Lexer {
1725 this.transition = DFA8_transition; 1726 this.transition = DFA8_transition;
1726 } 1727 }
1727 public String getDescription() { 1728 public String getDescription() {
1728 return "1673:29: ( '.' ( '0' .. '9' )+ | ( '.' ( '0' .. '9' )+ )? ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )"; 1729 return "1674:29: ( '.' ( '0' .. '9' )+ | ( '.' ( '0' .. '9' )+ )? ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )";
1729 } 1730 }
1730 } 1731 }
1731 static final String DFA20_eotS = 1732 static final String DFA20_eotS =
1732 "\1\uffff\1\36\1\uffff\2\37\1\uffff\1\37\1\uffff\1\34\1\53\4\37\3\uffff\2\34\2\uffff\1\72\1\34\1\uffff\3\34\2\uffff\1\37\3\uffff\1\37\1\103\1\37\1\uffff\1\37\1\106\1\110\4\uffff\3\37\1\114\3\37\10\uffff\1\72\5\uffff\2\37\1\uffff\1\122\1\123\1\uffff\1\124\1\uffff\2\37\1\127\1\uffff\5\37\3\uffff\2\37\1\uffff\13\37\1\152\1\153\1\154\3\37\1\160\3\uffff\2\37\1\163\1\uffff\1\37\1\165\1\uffff\1\37\1\uffff\4\37\1\173\1\uffff"; 1733 "\1\uffff\1\37\1\uffff\2\37\1\uffff\1\37\1\uffff\1\34\1\53\4\37\3\uffff\2\34\2\uffff\1\74\1\34\1\uffff\3\34\2\uffff\2\37\2\uffff\1\37\1\104\1\37\1\uffff\1\37\1\107\1\110\4\uffff\3\37\1\115\3\37\10\uffff\1\74\5\uffff\3\37\1\uffff\1\124\1\125\2\uffff\1\126\2\37\1\131\1\uffff\4\37\1\136\1\37\3\uffff\2\37\1\uffff\4\37\1\uffff\7\37\1\155\1\156\1\157\3\37\1\163\3\uffff\2\37\1\166\1\uffff\1\37\1\170\1\uffff\1\37\1\uffff\4\37\1\176\1\uffff";
1733 static final String DFA20_eofS = 1734 static final String DFA20_eofS =
1734 "\174\uffff"; 1735 "\177\uffff";
1735 static final String DFA20_minS = 1736 static final String DFA20_minS =
1736 "\1\0\1\60\1\uffff\1\155\1\146\1\uffff\1\146\1\uffff\1\135\1\76\1\141\1\156\1\157\1\141\3\uffff\2\75\2\uffff\1\56\1\101\1\uffff\2\0\1\52\2\uffff\1\143\3\uffff\1\160\1\60\1\164\1\uffff\1\164\2\60\4\uffff\1\155\1\157\1\144\1\60\1\141\2\160\10\uffff\1\56\5\uffff\1\153\1\157\1\uffff\2\60\1\uffff\1\60\1\uffff\1\142\1\153\1\60\1\uffff\1\156\1\154\1\160\1\141\1\162\3\uffff\1\144\1\165\1\uffff\1\163\1\145\1\151\1\147\1\164\1\141\1\160\1\146\1\166\1\156\1\145\3\60\1\157\1\145\1\147\1\60\3\uffff\1\162\1\154\1\60\1\uffff\1\155\1\60\1\uffff\1\141\1\uffff\1\164\1\151\1\157\1\156\1\60\1\uffff"; 1737 "\1\0\1\141\1\uffff\1\155\1\146\1\uffff\1\146\1\uffff\1\135\1\76\1\141\1\156\1\157\1\141\3\uffff\2\75\2\uffff\1\56\1\101\1\uffff\2\0\1\52\2\uffff\1\143\1\157\2\uffff\1\160\1\60\1\164\1\uffff\1\164\2\60\4\uffff\1\155\1\157\1\144\1\60\1\141\2\160\10\uffff\1\56\5\uffff\1\153\1\142\1\157\1\uffff\2\60\2\uffff\1\60\1\142\1\153\1\60\1\uffff\1\156\1\154\1\160\1\141\1\60\1\162\3\uffff\1\144\1\165\1\uffff\1\163\1\145\1\151\1\147\1\uffff\1\164\1\141\1\160\1\146\1\166\1\156\1\145\3\60\1\157\1\145\1\147\1\60\3\uffff\1\162\1\154\1\60\1\uffff\1\155\1\60\1\uffff\1\141\1\uffff\1\164\1\151\1\157\1\156\1\60\1\uffff";
1737 static final String DFA20_maxS = 1738 static final String DFA20_maxS =
1738 "\1\uffff\1\172\1\uffff\1\156\1\146\1\uffff\1\165\1\uffff\1\135\1\76\1\157\1\163\1\162\1\141\3\uffff\2\75\2\uffff\1\145\1\172\1\uffff\2\uffff\1\57\2\uffff\1\143\3\uffff\1\160\1\172\1\164\1\uffff\1\164\2\172\4\uffff\1\155\1\157\1\144\1\172\1\141\2\160\10\uffff\1\145\5\uffff\1\153\1\157\1\uffff\2\172\1\uffff\1\172\1\uffff\1\142\1\153\1\172\1\uffff\1\156\1\154\1\160\1\141\1\162\3\uffff\1\144\1\165\1\uffff\1\163\1\145\1\151\1\147\1\164\1\141\1\160\1\146\1\166\1\156\1\145\3\172\1\157\1\145\1\147\1\172\3\uffff\1\162\1\154\1\172\1\uffff\1\155\1\172\1\uffff\1\141\1\uffff\1\164\1\151\1\157\1\156\1\172\1\uffff"; 1739 "\1\uffff\1\162\1\uffff\1\156\1\146\1\uffff\1\165\1\uffff\1\135\1\76\1\157\1\163\1\162\1\141\3\uffff\2\75\2\uffff\1\145\1\172\1\uffff\2\uffff\1\57\2\uffff\1\143\1\157\2\uffff\1\160\1\172\1\164\1\uffff\1\164\2\172\4\uffff\1\155\1\157\1\144\1\172\1\141\2\160\10\uffff\1\145\5\uffff\1\153\1\142\1\157\1\uffff\2\172\2\uffff\1\172\1\142\1\153\1\172\1\uffff\1\156\1\154\1\160\1\141\1\172\1\162\3\uffff\1\144\1\165\1\uffff\1\163\1\145\1\151\1\147\1\uffff\1\164\1\141\1\160\1\146\1\166\1\156\1\145\3\172\1\157\1\145\1\147\1\172\3\uffff\1\162\1\154\1\172\1\uffff\1\155\1\172\1\uffff\1\141\1\uffff\1\164\1\151\1\157\1\156\1\172\1\uffff";
1739 static final String DFA20_acceptS = 1740 static final String DFA20_acceptS =
1740 "\2\uffff\1\2\2\uffff\1\5\1\uffff\1\10\6\uffff\1\23\1\24\1\25\2\uffff\1\32\1\34\2\uffff\1\37\3\uffff\1\44\1\45\1\uffff\1\12\1\37\1\2\3\uffff\1\5\3\uffff\1\10\1\11\1\33\1\13\7\uffff\1\23\1\24\1\25\1\30\1\31\1\32\1\34\1\40\1\uffff\1\36\1\41\1\42\1\43\1\44\2\uffff\1\6\2\uffff\1\16\1\uffff\1\17\3\uffff\1\27\5\uffff\1\4\1\7\1\35\2\uffff\1\15\22\uffff\1\3\1\14\1\26\3\uffff\1\1\2\uffff\1\22\1\uffff\1\21\5\uffff\1\20"; 1741 "\2\uffff\1\2\2\uffff\1\5\1\uffff\1\10\6\uffff\1\23\1\24\1\25\2\uffff\1\32\1\34\2\uffff\1\37\3\uffff\1\44\1\45\2\uffff\1\37\1\2\3\uffff\1\5\3\uffff\1\10\1\11\1\33\1\13\7\uffff\1\23\1\24\1\25\1\30\1\31\1\32\1\34\1\36\1\uffff\1\40\1\41\1\42\1\43\1\44\3\uffff\1\6\2\uffff\1\16\1\17\4\uffff\1\27\6\uffff\1\4\1\7\1\35\2\uffff\1\15\4\uffff\1\12\16\uffff\1\3\1\14\1\26\3\uffff\1\1\2\uffff\1\22\1\uffff\1\21\5\uffff\1\20";
1741 static final String DFA20_specialS = 1742 static final String DFA20_specialS =
1742 "\1\1\27\uffff\1\2\1\0\142\uffff}>"; 1743 "\1\1\27\uffff\1\2\1\0\145\uffff}>";
1743 static final String[] DFA20_transitionS = { 1744 static final String[] DFA20_transitionS = {
1744 "\11\34\2\33\2\34\1\33\22\34\1\33\1\34\1\30\4\34\1\31\1\16\1\20\1\24\1\21\1\17\1\34\1\23\1\32\12\25\1\22\1\2\1\34\1\11\3\34\32\27\1\10\2\34\1\26\1\27\1\34\1\13\1\27\1\4\5\27\1\3\2\27\1\12\1\15\1\27\1\6\1\1\3\27\1\14\6\27\1\5\1\34\1\7\uff82\34", 1745 "\11\34\2\33\2\34\1\33\22\34\1\33\1\34\1\30\4\34\1\31\1\16\1\20\1\24\1\21\1\17\1\34\1\23\1\32\12\25\1\22\1\2\1\34\1\11\3\34\32\27\1\10\2\34\1\26\1\27\1\34\1\13\1\27\1\4\5\27\1\3\2\27\1\12\1\15\1\27\1\6\1\1\3\27\1\14\6\27\1\5\1\34\1\7\uff82\34",
1745 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\1\35\31\37", 1746 "\1\35\20\uffff\1\36",
1746 "", 1747 "",
1747 "\1\41\1\42", 1748 "\1\41\1\42",
1748 "\1\43", 1749 "\1\43",
@@ -1762,7 +1763,7 @@ public class InternalCftLanguageLexer extends Lexer {
1762 "\1\67", 1763 "\1\67",
1763 "", 1764 "",
1764 "", 1765 "",
1765 "\1\74\1\uffff\12\73\13\uffff\1\74\37\uffff\1\74", 1766 "\1\72\1\uffff\12\73\13\uffff\1\72\37\uffff\1\72",
1766 "\32\37\4\uffff\1\37\1\uffff\32\37", 1767 "\32\37\4\uffff\1\37\1\uffff\32\37",
1767 "", 1768 "",
1768 "\0\75", 1769 "\0\75",
@@ -1771,27 +1772,27 @@ public class InternalCftLanguageLexer extends Lexer {
1771 "", 1772 "",
1772 "", 1773 "",
1773 "\1\101", 1774 "\1\101",
1775 "\1\102",
1774 "", 1776 "",
1775 "", 1777 "",
1776 "", 1778 "\1\103",
1777 "\1\102",
1778 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", 1779 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1779 "\1\104",
1780 "",
1781 "\1\105", 1780 "\1\105",
1781 "",
1782 "\1\106",
1782 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", 1783 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1783 "\12\107\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", 1784 "\12\111\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1784 "", 1785 "",
1785 "", 1786 "",
1786 "", 1787 "",
1787 "", 1788 "",
1788 "\1\111",
1789 "\1\112", 1789 "\1\112",
1790 "\1\113", 1790 "\1\113",
1791 "\1\114",
1791 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", 1792 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1792 "\1\115",
1793 "\1\116", 1793 "\1\116",
1794 "\1\117", 1794 "\1\117",
1795 "\1\120",
1795 "", 1796 "",
1796 "", 1797 "",
1797 "", 1798 "",
@@ -1800,69 +1801,72 @@ public class InternalCftLanguageLexer extends Lexer {
1800 "", 1801 "",
1801 "", 1802 "",
1802 "", 1803 "",
1803 "\1\74\1\uffff\12\73\13\uffff\1\74\37\uffff\1\74", 1804 "\1\72\1\uffff\12\73\13\uffff\1\72\37\uffff\1\72",
1804 "", 1805 "",
1805 "", 1806 "",
1806 "", 1807 "",
1807 "", 1808 "",
1808 "", 1809 "",
1809 "\1\120",
1810 "\1\121", 1810 "\1\121",
1811 "\1\122",
1812 "\1\123",
1811 "", 1813 "",
1812 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", 1814 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1813 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", 1815 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1814 "", 1816 "",
1815 "\12\107\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1816 "", 1817 "",
1817 "\1\125", 1818 "\12\111\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1818 "\1\126", 1819 "\1\127",
1820 "\1\130",
1819 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", 1821 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1820 "", 1822 "",
1821 "\1\130",
1822 "\1\131",
1823 "\1\132", 1823 "\1\132",
1824 "\1\133", 1824 "\1\133",
1825 "\1\134", 1825 "\1\134",
1826 "\1\135",
1827 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1828 "\1\137",
1826 "", 1829 "",
1827 "", 1830 "",
1828 "", 1831 "",
1829 "\1\135",
1830 "\1\136",
1831 "",
1832 "\1\137",
1833 "\1\140", 1832 "\1\140",
1834 "\1\141", 1833 "\1\141",
1834 "",
1835 "\1\142", 1835 "\1\142",
1836 "\1\143", 1836 "\1\143",
1837 "\1\144", 1837 "\1\144",
1838 "\1\145", 1838 "\1\145",
1839 "",
1839 "\1\146", 1840 "\1\146",
1840 "\1\147", 1841 "\1\147",
1841 "\1\150", 1842 "\1\150",
1842 "\1\151", 1843 "\1\151",
1844 "\1\152",
1845 "\1\153",
1846 "\1\154",
1843 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", 1847 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1844 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", 1848 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1845 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", 1849 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1846 "\1\155", 1850 "\1\160",
1847 "\1\156",
1848 "\1\157",
1849 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1850 "",
1851 "",
1852 "",
1853 "\1\161", 1851 "\1\161",
1854 "\1\162", 1852 "\1\162",
1855 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", 1853 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1856 "", 1854 "",
1855 "",
1856 "",
1857 "\1\164", 1857 "\1\164",
1858 "\1\165",
1858 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", 1859 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1859 "", 1860 "",
1860 "\1\166",
1861 "",
1862 "\1\167", 1861 "\1\167",
1863 "\1\170", 1862 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1863 "",
1864 "\1\171", 1864 "\1\171",
1865 "",
1865 "\1\172", 1866 "\1\172",
1867 "\1\173",
1868 "\1\174",
1869 "\1\175",
1866 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37", 1870 "\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
1867 "" 1871 ""
1868 }; 1872 };
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguageParser.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguageParser.java
index 4727763e..0da9c0f1 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguageParser.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/parser/antlr/internal/InternalCftLanguageParser.java
@@ -21,7 +21,7 @@ import java.util.ArrayList;
21@SuppressWarnings("all") 21@SuppressWarnings("all")
22public class InternalCftLanguageParser extends AbstractInternalAntlrParser { 22public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
23 public static final String[] tokenNames = new String[] { 23 public static final String[] tokenNames = new String[] {
24 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_OF_INT", "RULE_ID", "RULE_T_DOUBLE", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "';'", "'import'", "'cft'", "'{'", "'in'", "'out'", "'}'", "'[]'", "'p'", "'='", "'lambda'", "'and'", "'or'", "'of'", "'transformation'", "'toplevel'", "'mapping'", "'('", "','", "')'", "'lookup'", "'as'", "'+='", "':='", "'.'", "'=>'", "'*'" 24 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_OF_INT", "RULE_ID", "RULE_T_DOUBLE", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "';'", "'import'", "'cft'", "'{'", "'in'", "'out'", "'}'", "'[]'", "'prob'", "'='", "'lambda'", "'and'", "'or'", "'of'", "'transformation'", "'toplevel'", "'mapping'", "'('", "','", "')'", "'lookup'", "'as'", "'+='", "':='", "'.'", "'=>'", "'*'"
25 }; 25 };
26 public static final int RULE_STRING=8; 26 public static final int RULE_STRING=8;
27 public static final int RULE_SL_COMMENT=10; 27 public static final int RULE_SL_COMMENT=10;
@@ -1549,7 +1549,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
1549 1549
1550 1550
1551 // $ANTLR start "ruleConstantDistribution" 1551 // $ANTLR start "ruleConstantDistribution"
1552 // InternalCftLanguage.g:570:1: ruleConstantDistribution returns [EObject current=null] : (otherlv_0= 'p' otherlv_1= '=' ( (lv_p_2_0= ruleDouble ) ) ) ; 1552 // InternalCftLanguage.g:570:1: ruleConstantDistribution returns [EObject current=null] : (otherlv_0= 'prob' otherlv_1= '=' ( (lv_p_2_0= ruleDouble ) ) ) ;
1553 public final EObject ruleConstantDistribution() throws RecognitionException { 1553 public final EObject ruleConstantDistribution() throws RecognitionException {
1554 EObject current = null; 1554 EObject current = null;
1555 1555
@@ -1562,15 +1562,15 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
1562 enterRule(); 1562 enterRule();
1563 1563
1564 try { 1564 try {
1565 // InternalCftLanguage.g:576:2: ( (otherlv_0= 'p' otherlv_1= '=' ( (lv_p_2_0= ruleDouble ) ) ) ) 1565 // InternalCftLanguage.g:576:2: ( (otherlv_0= 'prob' otherlv_1= '=' ( (lv_p_2_0= ruleDouble ) ) ) )
1566 // InternalCftLanguage.g:577:2: (otherlv_0= 'p' otherlv_1= '=' ( (lv_p_2_0= ruleDouble ) ) ) 1566 // InternalCftLanguage.g:577:2: (otherlv_0= 'prob' otherlv_1= '=' ( (lv_p_2_0= ruleDouble ) ) )
1567 { 1567 {
1568 // InternalCftLanguage.g:577:2: (otherlv_0= 'p' otherlv_1= '=' ( (lv_p_2_0= ruleDouble ) ) ) 1568 // InternalCftLanguage.g:577:2: (otherlv_0= 'prob' otherlv_1= '=' ( (lv_p_2_0= ruleDouble ) ) )
1569 // InternalCftLanguage.g:578:3: otherlv_0= 'p' otherlv_1= '=' ( (lv_p_2_0= ruleDouble ) ) 1569 // InternalCftLanguage.g:578:3: otherlv_0= 'prob' otherlv_1= '=' ( (lv_p_2_0= ruleDouble ) )
1570 { 1570 {
1571 otherlv_0=(Token)match(input,22,FOLLOW_15); 1571 otherlv_0=(Token)match(input,22,FOLLOW_15);
1572 1572
1573 newLeafNode(otherlv_0, grammarAccess.getConstantDistributionAccess().getPKeyword_0()); 1573 newLeafNode(otherlv_0, grammarAccess.getConstantDistributionAccess().getProbKeyword_0());
1574 1574
1575 otherlv_1=(Token)match(input,23,FOLLOW_16); 1575 otherlv_1=(Token)match(input,23,FOLLOW_16);
1576 1576
@@ -3861,22 +3861,23 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
3861 3861
3862 3862
3863 // $ANTLR start "ruleComponentInstance" 3863 // $ANTLR start "ruleComponentInstance"
3864 // InternalCftLanguage.g:1467:1: ruleComponentInstance returns [EObject current=null] : (otherlv_0= '=>' ( ( ruleQualifiedName ) ) ( (lv_name_2_0= RULE_ID ) )? ) ; 3864 // InternalCftLanguage.g:1467:1: ruleComponentInstance returns [EObject current=null] : (otherlv_0= '=>' ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleValidId ) )? ) ;
3865 public final EObject ruleComponentInstance() throws RecognitionException { 3865 public final EObject ruleComponentInstance() throws RecognitionException {
3866 EObject current = null; 3866 EObject current = null;
3867 3867
3868 Token otherlv_0=null; 3868 Token otherlv_0=null;
3869 Token lv_name_2_0=null; 3869 AntlrDatatypeRuleToken lv_name_2_0 = null;
3870
3870 3871
3871 3872
3872 enterRule(); 3873 enterRule();
3873 3874
3874 try { 3875 try {
3875 // InternalCftLanguage.g:1473:2: ( (otherlv_0= '=>' ( ( ruleQualifiedName ) ) ( (lv_name_2_0= RULE_ID ) )? ) ) 3876 // InternalCftLanguage.g:1473:2: ( (otherlv_0= '=>' ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleValidId ) )? ) )
3876 // InternalCftLanguage.g:1474:2: (otherlv_0= '=>' ( ( ruleQualifiedName ) ) ( (lv_name_2_0= RULE_ID ) )? ) 3877 // InternalCftLanguage.g:1474:2: (otherlv_0= '=>' ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleValidId ) )? )
3877 { 3878 {
3878 // InternalCftLanguage.g:1474:2: (otherlv_0= '=>' ( ( ruleQualifiedName ) ) ( (lv_name_2_0= RULE_ID ) )? ) 3879 // InternalCftLanguage.g:1474:2: (otherlv_0= '=>' ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleValidId ) )? )
3879 // InternalCftLanguage.g:1475:3: otherlv_0= '=>' ( ( ruleQualifiedName ) ) ( (lv_name_2_0= RULE_ID ) )? 3880 // InternalCftLanguage.g:1475:3: otherlv_0= '=>' ( ( ruleQualifiedName ) ) ( (lv_name_2_0= ruleValidId ) )?
3880 { 3881 {
3881 otherlv_0=(Token)match(input,39,FOLLOW_3); 3882 otherlv_0=(Token)match(input,39,FOLLOW_3);
3882 3883
@@ -3896,7 +3897,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
3896 3897
3897 newCompositeNode(grammarAccess.getComponentInstanceAccess().getComponentTypeComponentDefinitionCrossReference_1_0()); 3898 newCompositeNode(grammarAccess.getComponentInstanceAccess().getComponentTypeComponentDefinitionCrossReference_1_0());
3898 3899
3899 pushFollow(FOLLOW_33); 3900 pushFollow(FOLLOW_18);
3900 ruleQualifiedName(); 3901 ruleQualifiedName();
3901 3902
3902 state._fsp--; 3903 state._fsp--;
@@ -3910,33 +3911,38 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
3910 3911
3911 } 3912 }
3912 3913
3913 // InternalCftLanguage.g:1495:3: ( (lv_name_2_0= RULE_ID ) )? 3914 // InternalCftLanguage.g:1495:3: ( (lv_name_2_0= ruleValidId ) )?
3914 int alt26=2; 3915 int alt26=2;
3915 int LA26_0 = input.LA(1); 3916 int LA26_0 = input.LA(1);
3916 3917
3917 if ( (LA26_0==RULE_ID) ) { 3918 if ( ((LA26_0>=RULE_OF_INT && LA26_0<=RULE_ID)) ) {
3918 alt26=1; 3919 alt26=1;
3919 } 3920 }
3920 switch (alt26) { 3921 switch (alt26) {
3921 case 1 : 3922 case 1 :
3922 // InternalCftLanguage.g:1496:4: (lv_name_2_0= RULE_ID ) 3923 // InternalCftLanguage.g:1496:4: (lv_name_2_0= ruleValidId )
3923 { 3924 {
3924 // InternalCftLanguage.g:1496:4: (lv_name_2_0= RULE_ID ) 3925 // InternalCftLanguage.g:1496:4: (lv_name_2_0= ruleValidId )
3925 // InternalCftLanguage.g:1497:5: lv_name_2_0= RULE_ID 3926 // InternalCftLanguage.g:1497:5: lv_name_2_0= ruleValidId
3926 { 3927 {
3927 lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_2);
3928 3928
3929 newLeafNode(lv_name_2_0, grammarAccess.getComponentInstanceAccess().getNameIDTerminalRuleCall_2_0()); 3929 newCompositeNode(grammarAccess.getComponentInstanceAccess().getNameValidIdParserRuleCall_2_0());
3930 3930
3931 pushFollow(FOLLOW_2);
3932 lv_name_2_0=ruleValidId();
3933
3934 state._fsp--;
3935
3931 3936
3932 if (current==null) { 3937 if (current==null) {
3933 current = createModelElement(grammarAccess.getComponentInstanceRule()); 3938 current = createModelElementForParent(grammarAccess.getComponentInstanceRule());
3934 } 3939 }
3935 setWithLastConsumed( 3940 set(
3936 current, 3941 current,
3937 "name", 3942 "name",
3938 lv_name_2_0, 3943 lv_name_2_0,
3939 "org.eclipse.xtext.common.Terminals.ID"); 3944 "hu.bme.mit.inf.dslreasoner.faulttree.components.CftLanguage.ValidId");
3945 afterParserOrEnumRuleCall();
3940 3946
3941 3947
3942 } 3948 }
@@ -3970,7 +3976,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
3970 3976
3971 3977
3972 // $ANTLR start "entryRuleQualifiedName" 3978 // $ANTLR start "entryRuleQualifiedName"
3973 // InternalCftLanguage.g:1517:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ; 3979 // InternalCftLanguage.g:1518:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
3974 public final String entryRuleQualifiedName() throws RecognitionException { 3980 public final String entryRuleQualifiedName() throws RecognitionException {
3975 String current = null; 3981 String current = null;
3976 3982
@@ -3978,8 +3984,8 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
3978 3984
3979 3985
3980 try { 3986 try {
3981 // InternalCftLanguage.g:1517:53: (iv_ruleQualifiedName= ruleQualifiedName EOF ) 3987 // InternalCftLanguage.g:1518:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
3982 // InternalCftLanguage.g:1518:2: iv_ruleQualifiedName= ruleQualifiedName EOF 3988 // InternalCftLanguage.g:1519:2: iv_ruleQualifiedName= ruleQualifiedName EOF
3983 { 3989 {
3984 newCompositeNode(grammarAccess.getQualifiedNameRule()); 3990 newCompositeNode(grammarAccess.getQualifiedNameRule());
3985 pushFollow(FOLLOW_1); 3991 pushFollow(FOLLOW_1);
@@ -4006,7 +4012,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4006 4012
4007 4013
4008 // $ANTLR start "ruleQualifiedName" 4014 // $ANTLR start "ruleQualifiedName"
4009 // InternalCftLanguage.g:1524:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidId_0= ruleValidId (kw= '.' this_ValidId_2= ruleValidId )* ) ; 4015 // InternalCftLanguage.g:1525:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidId_0= ruleValidId (kw= '.' this_ValidId_2= ruleValidId )* ) ;
4010 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException { 4016 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
4011 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 4017 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4012 4018
@@ -4020,16 +4026,16 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4020 enterRule(); 4026 enterRule();
4021 4027
4022 try { 4028 try {
4023 // InternalCftLanguage.g:1530:2: ( (this_ValidId_0= ruleValidId (kw= '.' this_ValidId_2= ruleValidId )* ) ) 4029 // InternalCftLanguage.g:1531:2: ( (this_ValidId_0= ruleValidId (kw= '.' this_ValidId_2= ruleValidId )* ) )
4024 // InternalCftLanguage.g:1531:2: (this_ValidId_0= ruleValidId (kw= '.' this_ValidId_2= ruleValidId )* ) 4030 // InternalCftLanguage.g:1532:2: (this_ValidId_0= ruleValidId (kw= '.' this_ValidId_2= ruleValidId )* )
4025 { 4031 {
4026 // InternalCftLanguage.g:1531:2: (this_ValidId_0= ruleValidId (kw= '.' this_ValidId_2= ruleValidId )* ) 4032 // InternalCftLanguage.g:1532:2: (this_ValidId_0= ruleValidId (kw= '.' this_ValidId_2= ruleValidId )* )
4027 // InternalCftLanguage.g:1532:3: this_ValidId_0= ruleValidId (kw= '.' this_ValidId_2= ruleValidId )* 4033 // InternalCftLanguage.g:1533:3: this_ValidId_0= ruleValidId (kw= '.' this_ValidId_2= ruleValidId )*
4028 { 4034 {
4029 4035
4030 newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIdParserRuleCall_0()); 4036 newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIdParserRuleCall_0());
4031 4037
4032 pushFollow(FOLLOW_34); 4038 pushFollow(FOLLOW_33);
4033 this_ValidId_0=ruleValidId(); 4039 this_ValidId_0=ruleValidId();
4034 4040
4035 state._fsp--; 4041 state._fsp--;
@@ -4040,7 +4046,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4040 4046
4041 afterParserOrEnumRuleCall(); 4047 afterParserOrEnumRuleCall();
4042 4048
4043 // InternalCftLanguage.g:1542:3: (kw= '.' this_ValidId_2= ruleValidId )* 4049 // InternalCftLanguage.g:1543:3: (kw= '.' this_ValidId_2= ruleValidId )*
4044 loop27: 4050 loop27:
4045 do { 4051 do {
4046 int alt27=2; 4052 int alt27=2;
@@ -4059,7 +4065,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4059 4065
4060 switch (alt27) { 4066 switch (alt27) {
4061 case 1 : 4067 case 1 :
4062 // InternalCftLanguage.g:1543:4: kw= '.' this_ValidId_2= ruleValidId 4068 // InternalCftLanguage.g:1544:4: kw= '.' this_ValidId_2= ruleValidId
4063 { 4069 {
4064 kw=(Token)match(input,38,FOLLOW_3); 4070 kw=(Token)match(input,38,FOLLOW_3);
4065 4071
@@ -4069,7 +4075,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4069 4075
4070 newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIdParserRuleCall_1_1()); 4076 newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIdParserRuleCall_1_1());
4071 4077
4072 pushFollow(FOLLOW_34); 4078 pushFollow(FOLLOW_33);
4073 this_ValidId_2=ruleValidId(); 4079 this_ValidId_2=ruleValidId();
4074 4080
4075 state._fsp--; 4081 state._fsp--;
@@ -4112,7 +4118,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4112 4118
4113 4119
4114 // $ANTLR start "entryRuleQualifiedNameWithWildcard" 4120 // $ANTLR start "entryRuleQualifiedNameWithWildcard"
4115 // InternalCftLanguage.g:1563:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ; 4121 // InternalCftLanguage.g:1564:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
4116 public final String entryRuleQualifiedNameWithWildcard() throws RecognitionException { 4122 public final String entryRuleQualifiedNameWithWildcard() throws RecognitionException {
4117 String current = null; 4123 String current = null;
4118 4124
@@ -4120,8 +4126,8 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4120 4126
4121 4127
4122 try { 4128 try {
4123 // InternalCftLanguage.g:1563:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ) 4129 // InternalCftLanguage.g:1564:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
4124 // InternalCftLanguage.g:1564:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF 4130 // InternalCftLanguage.g:1565:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
4125 { 4131 {
4126 newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); 4132 newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule());
4127 pushFollow(FOLLOW_1); 4133 pushFollow(FOLLOW_1);
@@ -4148,7 +4154,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4148 4154
4149 4155
4150 // $ANTLR start "ruleQualifiedNameWithWildcard" 4156 // $ANTLR start "ruleQualifiedNameWithWildcard"
4151 // InternalCftLanguage.g:1570:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? ) ; 4157 // InternalCftLanguage.g:1571:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? ) ;
4152 public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws RecognitionException { 4158 public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws RecognitionException {
4153 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 4159 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4154 4160
@@ -4160,16 +4166,16 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4160 enterRule(); 4166 enterRule();
4161 4167
4162 try { 4168 try {
4163 // InternalCftLanguage.g:1576:2: ( (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? ) ) 4169 // InternalCftLanguage.g:1577:2: ( (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? ) )
4164 // InternalCftLanguage.g:1577:2: (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? ) 4170 // InternalCftLanguage.g:1578:2: (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? )
4165 { 4171 {
4166 // InternalCftLanguage.g:1577:2: (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? ) 4172 // InternalCftLanguage.g:1578:2: (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? )
4167 // InternalCftLanguage.g:1578:3: this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? 4173 // InternalCftLanguage.g:1579:3: this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )?
4168 { 4174 {
4169 4175
4170 newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 4176 newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
4171 4177
4172 pushFollow(FOLLOW_34); 4178 pushFollow(FOLLOW_33);
4173 this_QualifiedName_0=ruleQualifiedName(); 4179 this_QualifiedName_0=ruleQualifiedName();
4174 4180
4175 state._fsp--; 4181 state._fsp--;
@@ -4180,7 +4186,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4180 4186
4181 afterParserOrEnumRuleCall(); 4187 afterParserOrEnumRuleCall();
4182 4188
4183 // InternalCftLanguage.g:1588:3: (kw= '.' kw= '*' )? 4189 // InternalCftLanguage.g:1589:3: (kw= '.' kw= '*' )?
4184 int alt28=2; 4190 int alt28=2;
4185 int LA28_0 = input.LA(1); 4191 int LA28_0 = input.LA(1);
4186 4192
@@ -4189,9 +4195,9 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4189 } 4195 }
4190 switch (alt28) { 4196 switch (alt28) {
4191 case 1 : 4197 case 1 :
4192 // InternalCftLanguage.g:1589:4: kw= '.' kw= '*' 4198 // InternalCftLanguage.g:1590:4: kw= '.' kw= '*'
4193 { 4199 {
4194 kw=(Token)match(input,38,FOLLOW_35); 4200 kw=(Token)match(input,38,FOLLOW_34);
4195 4201
4196 current.merge(kw); 4202 current.merge(kw);
4197 newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1_0()); 4203 newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1_0());
@@ -4230,7 +4236,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4230 4236
4231 4237
4232 // $ANTLR start "entryRuleValidId" 4238 // $ANTLR start "entryRuleValidId"
4233 // InternalCftLanguage.g:1604:1: entryRuleValidId returns [String current=null] : iv_ruleValidId= ruleValidId EOF ; 4239 // InternalCftLanguage.g:1605:1: entryRuleValidId returns [String current=null] : iv_ruleValidId= ruleValidId EOF ;
4234 public final String entryRuleValidId() throws RecognitionException { 4240 public final String entryRuleValidId() throws RecognitionException {
4235 String current = null; 4241 String current = null;
4236 4242
@@ -4238,8 +4244,8 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4238 4244
4239 4245
4240 try { 4246 try {
4241 // InternalCftLanguage.g:1604:47: (iv_ruleValidId= ruleValidId EOF ) 4247 // InternalCftLanguage.g:1605:47: (iv_ruleValidId= ruleValidId EOF )
4242 // InternalCftLanguage.g:1605:2: iv_ruleValidId= ruleValidId EOF 4248 // InternalCftLanguage.g:1606:2: iv_ruleValidId= ruleValidId EOF
4243 { 4249 {
4244 newCompositeNode(grammarAccess.getValidIdRule()); 4250 newCompositeNode(grammarAccess.getValidIdRule());
4245 pushFollow(FOLLOW_1); 4251 pushFollow(FOLLOW_1);
@@ -4266,7 +4272,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4266 4272
4267 4273
4268 // $ANTLR start "ruleValidId" 4274 // $ANTLR start "ruleValidId"
4269 // InternalCftLanguage.g:1611:1: ruleValidId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID | this_OF_INT_1= RULE_OF_INT ) ; 4275 // InternalCftLanguage.g:1612:1: ruleValidId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID | this_OF_INT_1= RULE_OF_INT ) ;
4270 public final AntlrDatatypeRuleToken ruleValidId() throws RecognitionException { 4276 public final AntlrDatatypeRuleToken ruleValidId() throws RecognitionException {
4271 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 4277 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4272 4278
@@ -4277,10 +4283,10 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4277 enterRule(); 4283 enterRule();
4278 4284
4279 try { 4285 try {
4280 // InternalCftLanguage.g:1617:2: ( (this_ID_0= RULE_ID | this_OF_INT_1= RULE_OF_INT ) ) 4286 // InternalCftLanguage.g:1618:2: ( (this_ID_0= RULE_ID | this_OF_INT_1= RULE_OF_INT ) )
4281 // InternalCftLanguage.g:1618:2: (this_ID_0= RULE_ID | this_OF_INT_1= RULE_OF_INT ) 4287 // InternalCftLanguage.g:1619:2: (this_ID_0= RULE_ID | this_OF_INT_1= RULE_OF_INT )
4282 { 4288 {
4283 // InternalCftLanguage.g:1618:2: (this_ID_0= RULE_ID | this_OF_INT_1= RULE_OF_INT ) 4289 // InternalCftLanguage.g:1619:2: (this_ID_0= RULE_ID | this_OF_INT_1= RULE_OF_INT )
4284 int alt29=2; 4290 int alt29=2;
4285 int LA29_0 = input.LA(1); 4291 int LA29_0 = input.LA(1);
4286 4292
@@ -4298,7 +4304,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4298 } 4304 }
4299 switch (alt29) { 4305 switch (alt29) {
4300 case 1 : 4306 case 1 :
4301 // InternalCftLanguage.g:1619:3: this_ID_0= RULE_ID 4307 // InternalCftLanguage.g:1620:3: this_ID_0= RULE_ID
4302 { 4308 {
4303 this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); 4309 this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2);
4304 4310
@@ -4311,7 +4317,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4311 } 4317 }
4312 break; 4318 break;
4313 case 2 : 4319 case 2 :
4314 // InternalCftLanguage.g:1627:3: this_OF_INT_1= RULE_OF_INT 4320 // InternalCftLanguage.g:1628:3: this_OF_INT_1= RULE_OF_INT
4315 { 4321 {
4316 this_OF_INT_1=(Token)match(input,RULE_OF_INT,FOLLOW_2); 4322 this_OF_INT_1=(Token)match(input,RULE_OF_INT,FOLLOW_2);
4317 4323
@@ -4346,7 +4352,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4346 4352
4347 4353
4348 // $ANTLR start "entryRuleDouble" 4354 // $ANTLR start "entryRuleDouble"
4349 // InternalCftLanguage.g:1638:1: entryRuleDouble returns [String current=null] : iv_ruleDouble= ruleDouble EOF ; 4355 // InternalCftLanguage.g:1639:1: entryRuleDouble returns [String current=null] : iv_ruleDouble= ruleDouble EOF ;
4350 public final String entryRuleDouble() throws RecognitionException { 4356 public final String entryRuleDouble() throws RecognitionException {
4351 String current = null; 4357 String current = null;
4352 4358
@@ -4354,8 +4360,8 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4354 4360
4355 4361
4356 try { 4362 try {
4357 // InternalCftLanguage.g:1638:46: (iv_ruleDouble= ruleDouble EOF ) 4363 // InternalCftLanguage.g:1639:46: (iv_ruleDouble= ruleDouble EOF )
4358 // InternalCftLanguage.g:1639:2: iv_ruleDouble= ruleDouble EOF 4364 // InternalCftLanguage.g:1640:2: iv_ruleDouble= ruleDouble EOF
4359 { 4365 {
4360 newCompositeNode(grammarAccess.getDoubleRule()); 4366 newCompositeNode(grammarAccess.getDoubleRule());
4361 pushFollow(FOLLOW_1); 4367 pushFollow(FOLLOW_1);
@@ -4382,7 +4388,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4382 4388
4383 4389
4384 // $ANTLR start "ruleDouble" 4390 // $ANTLR start "ruleDouble"
4385 // InternalCftLanguage.g:1645:1: ruleDouble returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | this_T_DOUBLE_1= RULE_T_DOUBLE ) ; 4391 // InternalCftLanguage.g:1646:1: ruleDouble returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | this_T_DOUBLE_1= RULE_T_DOUBLE ) ;
4386 public final AntlrDatatypeRuleToken ruleDouble() throws RecognitionException { 4392 public final AntlrDatatypeRuleToken ruleDouble() throws RecognitionException {
4387 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 4393 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4388 4394
@@ -4393,10 +4399,10 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4393 enterRule(); 4399 enterRule();
4394 4400
4395 try { 4401 try {
4396 // InternalCftLanguage.g:1651:2: ( (this_INT_0= RULE_INT | this_T_DOUBLE_1= RULE_T_DOUBLE ) ) 4402 // InternalCftLanguage.g:1652:2: ( (this_INT_0= RULE_INT | this_T_DOUBLE_1= RULE_T_DOUBLE ) )
4397 // InternalCftLanguage.g:1652:2: (this_INT_0= RULE_INT | this_T_DOUBLE_1= RULE_T_DOUBLE ) 4403 // InternalCftLanguage.g:1653:2: (this_INT_0= RULE_INT | this_T_DOUBLE_1= RULE_T_DOUBLE )
4398 { 4404 {
4399 // InternalCftLanguage.g:1652:2: (this_INT_0= RULE_INT | this_T_DOUBLE_1= RULE_T_DOUBLE ) 4405 // InternalCftLanguage.g:1653:2: (this_INT_0= RULE_INT | this_T_DOUBLE_1= RULE_T_DOUBLE )
4400 int alt30=2; 4406 int alt30=2;
4401 int LA30_0 = input.LA(1); 4407 int LA30_0 = input.LA(1);
4402 4408
@@ -4414,7 +4420,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4414 } 4420 }
4415 switch (alt30) { 4421 switch (alt30) {
4416 case 1 : 4422 case 1 :
4417 // InternalCftLanguage.g:1653:3: this_INT_0= RULE_INT 4423 // InternalCftLanguage.g:1654:3: this_INT_0= RULE_INT
4418 { 4424 {
4419 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2); 4425 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2);
4420 4426
@@ -4427,7 +4433,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4427 } 4433 }
4428 break; 4434 break;
4429 case 2 : 4435 case 2 :
4430 // InternalCftLanguage.g:1661:3: this_T_DOUBLE_1= RULE_T_DOUBLE 4436 // InternalCftLanguage.g:1662:3: this_T_DOUBLE_1= RULE_T_DOUBLE
4431 { 4437 {
4432 this_T_DOUBLE_1=(Token)match(input,RULE_T_DOUBLE,FOLLOW_2); 4438 this_T_DOUBLE_1=(Token)match(input,RULE_T_DOUBLE,FOLLOW_2);
4433 4439
@@ -4497,8 +4503,7 @@ public class InternalCftLanguageParser extends AbstractInternalAntlrParser {
4497 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000003000000000L}); 4503 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000003000000000L});
4498 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000400000060L}); 4504 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000400000060L});
4499 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000004000000000L}); 4505 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000004000000000L});
4500 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000042L}); 4506 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000004000000002L});
4501 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000004000000002L}); 4507 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000010000000000L});
4502 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000010000000000L});
4503 4508
4504} 4509}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/serializer/CftLanguageSemanticSequencer.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/serializer/CftLanguageSemanticSequencer.java
index 25f16824..fe329903 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/serializer/CftLanguageSemanticSequencer.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/serializer/CftLanguageSemanticSequencer.java
@@ -194,7 +194,7 @@ public class CftLanguageSemanticSequencer extends AbstractDelegatingSemanticSequ
194 * ComponentInstance returns ComponentInstance 194 * ComponentInstance returns ComponentInstance
195 * 195 *
196 * Constraint: 196 * Constraint:
197 * (componentType=[ComponentDefinition|QualifiedName] name=ID?) 197 * (componentType=[ComponentDefinition|QualifiedName] name=ValidId?)
198 */ 198 */
199 protected void sequence_ComponentInstance(ISerializationContext context, ComponentInstance semanticObject) { 199 protected void sequence_ComponentInstance(ISerializationContext context, ComponentInstance semanticObject) {
200 genericSequencer.createSequence(context, semanticObject); 200 genericSequencer.createSequence(context, semanticObject);
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/services/CftLanguageGrammarAccess.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/services/CftLanguageGrammarAccess.java
index cbcfbe95..2b9632b7 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/services/CftLanguageGrammarAccess.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/services/CftLanguageGrammarAccess.java
@@ -302,20 +302,20 @@ public class CftLanguageGrammarAccess extends AbstractGrammarElementFinder {
302 public class ConstantDistributionElements extends AbstractParserRuleElementFinder { 302 public class ConstantDistributionElements extends AbstractParserRuleElementFinder {
303 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.faulttree.components.CftLanguage.ConstantDistribution"); 303 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.faulttree.components.CftLanguage.ConstantDistribution");
304 private final Group cGroup = (Group)rule.eContents().get(1); 304 private final Group cGroup = (Group)rule.eContents().get(1);
305 private final Keyword cPKeyword_0 = (Keyword)cGroup.eContents().get(0); 305 private final Keyword cProbKeyword_0 = (Keyword)cGroup.eContents().get(0);
306 private final Keyword cEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1); 306 private final Keyword cEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
307 private final Assignment cPAssignment_2 = (Assignment)cGroup.eContents().get(2); 307 private final Assignment cPAssignment_2 = (Assignment)cGroup.eContents().get(2);
308 private final RuleCall cPDoubleParserRuleCall_2_0 = (RuleCall)cPAssignment_2.eContents().get(0); 308 private final RuleCall cPDoubleParserRuleCall_2_0 = (RuleCall)cPAssignment_2.eContents().get(0);
309 309
310 //ConstantDistribution ft::ConstantDistribution: 310 //ConstantDistribution ft::ConstantDistribution:
311 // "p" "=" p=Double; 311 // "prob" "=" p=Double;
312 @Override public ParserRule getRule() { return rule; } 312 @Override public ParserRule getRule() { return rule; }
313 313
314 //"p" "=" p=Double 314 //"prob" "=" p=Double
315 public Group getGroup() { return cGroup; } 315 public Group getGroup() { return cGroup; }
316 316
317 //"p" 317 //"prob"
318 public Keyword getPKeyword_0() { return cPKeyword_0; } 318 public Keyword getProbKeyword_0() { return cProbKeyword_0; }
319 319
320 //"=" 320 //"="
321 public Keyword getEqualsSignKeyword_1() { return cEqualsSignKeyword_1; } 321 public Keyword getEqualsSignKeyword_1() { return cEqualsSignKeyword_1; }
@@ -880,13 +880,13 @@ public class CftLanguageGrammarAccess extends AbstractGrammarElementFinder {
880 private final CrossReference cComponentTypeComponentDefinitionCrossReference_1_0 = (CrossReference)cComponentTypeAssignment_1.eContents().get(0); 880 private final CrossReference cComponentTypeComponentDefinitionCrossReference_1_0 = (CrossReference)cComponentTypeAssignment_1.eContents().get(0);
881 private final RuleCall cComponentTypeComponentDefinitionQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cComponentTypeComponentDefinitionCrossReference_1_0.eContents().get(1); 881 private final RuleCall cComponentTypeComponentDefinitionQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cComponentTypeComponentDefinitionCrossReference_1_0.eContents().get(1);
882 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); 882 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
883 private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); 883 private final RuleCall cNameValidIdParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
884 884
885 //ComponentInstance: 885 //ComponentInstance:
886 // "=>" componentType=[cft::ComponentDefinition|QualifiedName] name=ID?; 886 // "=>" componentType=[cft::ComponentDefinition|QualifiedName] name=ValidId?;
887 @Override public ParserRule getRule() { return rule; } 887 @Override public ParserRule getRule() { return rule; }
888 888
889 //"=>" componentType=[cft::ComponentDefinition|QualifiedName] name=ID? 889 //"=>" componentType=[cft::ComponentDefinition|QualifiedName] name=ValidId?
890 public Group getGroup() { return cGroup; } 890 public Group getGroup() { return cGroup; }
891 891
892 //"=>" 892 //"=>"
@@ -901,11 +901,11 @@ public class CftLanguageGrammarAccess extends AbstractGrammarElementFinder {
901 //QualifiedName 901 //QualifiedName
902 public RuleCall getComponentTypeComponentDefinitionQualifiedNameParserRuleCall_1_0_1() { return cComponentTypeComponentDefinitionQualifiedNameParserRuleCall_1_0_1; } 902 public RuleCall getComponentTypeComponentDefinitionQualifiedNameParserRuleCall_1_0_1() { return cComponentTypeComponentDefinitionQualifiedNameParserRuleCall_1_0_1; }
903 903
904 //name=ID? 904 //name=ValidId?
905 public Assignment getNameAssignment_2() { return cNameAssignment_2; } 905 public Assignment getNameAssignment_2() { return cNameAssignment_2; }
906 906
907 //ID 907 //ValidId
908 public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; } 908 public RuleCall getNameValidIdParserRuleCall_2_0() { return cNameValidIdParserRuleCall_2_0; }
909 } 909 }
910 public class QualifiedNameElements extends AbstractParserRuleElementFinder { 910 public class QualifiedNameElements extends AbstractParserRuleElementFinder {
911 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.faulttree.components.CftLanguage.QualifiedName"); 911 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "hu.bme.mit.inf.dslreasoner.faulttree.components.CftLanguage.QualifiedName");
@@ -1169,7 +1169,7 @@ public class CftLanguageGrammarAccess extends AbstractGrammarElementFinder {
1169 } 1169 }
1170 1170
1171 //ConstantDistribution ft::ConstantDistribution: 1171 //ConstantDistribution ft::ConstantDistribution:
1172 // "p" "=" p=Double; 1172 // "prob" "=" p=Double;
1173 public ConstantDistributionElements getConstantDistributionAccess() { 1173 public ConstantDistributionElements getConstantDistributionAccess() {
1174 return pConstantDistribution; 1174 return pConstantDistribution;
1175 } 1175 }
@@ -1306,7 +1306,7 @@ public class CftLanguageGrammarAccess extends AbstractGrammarElementFinder {
1306 } 1306 }
1307 1307
1308 //ComponentInstance: 1308 //ComponentInstance:
1309 // "=>" componentType=[cft::ComponentDefinition|QualifiedName] name=ID?; 1309 // "=>" componentType=[cft::ComponentDefinition|QualifiedName] name=ValidId?;
1310 public ComponentInstanceElements getComponentInstanceAccess() { 1310 public ComponentInstanceElements getComponentInstanceAccess() {
1311 return pComponentInstance; 1311 return pComponentInstance;
1312 } 1312 }
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/CftLanguage.xtext b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/CftLanguage.xtext
index b4d5338b..ab053f67 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/CftLanguage.xtext
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/CftLanguage.xtext
@@ -33,7 +33,7 @@ Distribution returns ft::Distribution:
33 ConstantDistribution | ExponentialDistribution; 33 ConstantDistribution | ExponentialDistribution;
34 34
35ConstantDistribution returns ft::ConstantDistribution: 35ConstantDistribution returns ft::ConstantDistribution:
36 "p" "=" p=Double; 36 "prob" "=" p=Double;
37 37
38ExponentialDistribution returns ft::ExponentialDistribution: 38ExponentialDistribution returns ft::ExponentialDistribution:
39 "lambda" "=" lambda=Double; 39 "lambda" "=" lambda=Double;
@@ -80,7 +80,7 @@ EventReference:
80 component=[Variable|ValidId] "." event=[cft::EventDeclaration|ValidId]; 80 component=[Variable|ValidId] "." event=[cft::EventDeclaration|ValidId];
81 81
82ComponentInstance: 82ComponentInstance:
83 "=>" componentType=[cft::ComponentDefinition|QualifiedName] name=ID?; 83 "=>" componentType=[cft::ComponentDefinition|QualifiedName] name=ValidId?;
84 84
85QualifiedName returns ecore::EString: 85QualifiedName returns ecore::EString:
86 ValidId ("." ValidId)*; 86 ValidId ("." ValidId)*;
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/.CftLanguageRuntimeModule.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/.CftLanguageRuntimeModule.xtendbin
index df7b7e51..98b07e66 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/.CftLanguageRuntimeModule.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/.CftLanguageRuntimeModule.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/.CftLanguageStandaloneSetup.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/.CftLanguageStandaloneSetup.xtendbin
index 414dfa3e..2ae80aef 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/.CftLanguageStandaloneSetup.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/.CftLanguageStandaloneSetup.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/.CftLanguageValueConverterService.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/.CftLanguageValueConverterService.xtendbin
index 80e91ebf..a97cd12c 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/.CftLanguageValueConverterService.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/.CftLanguageValueConverterService.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/.OF_INTValueConverter.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/.OF_INTValueConverter.xtendbin
index 6787af3f..25b37e6d 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/.OF_INTValueConverter.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/.OF_INTValueConverter.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/generator/.CftLanguageGenerator.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/generator/.CftLanguageGenerator.xtendbin
index 0ad3ae5a..b2a0c833 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/generator/.CftLanguageGenerator.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/generator/.CftLanguageGenerator.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.CftLanguageQualifiedNameProvider.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.CftLanguageQualifiedNameProvider.xtendbin
index 62a48625..cea3c7e0 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.CftLanguageQualifiedNameProvider.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.CftLanguageQualifiedNameProvider.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.PackageNameProvider.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.PackageNameProvider.xtendbin
index b5ec6fb3..a0a97448 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.PackageNameProvider.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.PackageNameProvider.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/scoping/.CftLanguageImportedNamespaceAwareLocalScopeProvider.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/scoping/.CftLanguageImportedNamespaceAwareLocalScopeProvider.xtendbin
index c570dbe3..a3aa3347 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/scoping/.CftLanguageImportedNamespaceAwareLocalScopeProvider.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/scoping/.CftLanguageImportedNamespaceAwareLocalScopeProvider.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/scoping/.CftLanguageScopeProvider.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/scoping/.CftLanguageScopeProvider.xtendbin
index 3c714b09..20f539ae 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/scoping/.CftLanguageScopeProvider.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/scoping/.CftLanguageScopeProvider.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/validation/.CftLanguageValidator.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/validation/.CftLanguageValidator.xtendbin
index 683ac14e..719d28f8 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/validation/.CftLanguageValidator.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/validation/.CftLanguageValidator.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/BasicEvent.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/BasicEvent.java
index acfc635b..63b8d0ed 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/BasicEvent.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/BasicEvent.java
@@ -19,7 +19,7 @@ package hu.bme.mit.inf.dslreasoner.faulttree.model.ft;
19 * @model 19 * @model
20 * @generated 20 * @generated
21 */ 21 */
22public interface BasicEvent extends Event { 22public interface BasicEvent extends RandomEvent {
23 /** 23 /**
24 * Returns the value of the '<em><b>Distribution</b></em>' containment reference. 24 * Returns the value of the '<em><b>Distribution</b></em>' containment reference.
25 * <!-- begin-user-doc --> 25 * <!-- begin-user-doc -->
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/ConstantEvent.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/ConstantEvent.java
new file mode 100644
index 00000000..a171fc95
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/ConstantEvent.java
@@ -0,0 +1,49 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.faulttree.model.ft;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Constant Event</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent#isFailed <em>Failed</em>}</li>
16 * </ul>
17 *
18 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getConstantEvent()
19 * @model
20 * @generated
21 */
22public interface ConstantEvent extends Event {
23 /**
24 * Returns the value of the '<em><b>Failed</b></em>' attribute.
25 * <!-- begin-user-doc -->
26 * <p>
27 * If the meaning of the '<em>Failed</em>' attribute isn't clear,
28 * there really should be more of a description here...
29 * </p>
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Failed</em>' attribute.
32 * @see #setFailed(boolean)
33 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getConstantEvent_Failed()
34 * @model
35 * @generated
36 */
37 boolean isFailed();
38
39 /**
40 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent#isFailed <em>Failed</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Failed</em>' attribute.
44 * @see #isFailed()
45 * @generated
46 */
47 void setFailed(boolean value);
48
49} // ConstantEvent
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/ConstantModel.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/ConstantModel.java
new file mode 100644
index 00000000..5649559f
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/ConstantModel.java
@@ -0,0 +1,49 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.faulttree.model.ft;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Constant Model</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel#isFailed <em>Failed</em>}</li>
16 * </ul>
17 *
18 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getConstantModel()
19 * @model
20 * @generated
21 */
22public interface ConstantModel extends ReliabilityModel {
23 /**
24 * Returns the value of the '<em><b>Failed</b></em>' attribute.
25 * <!-- begin-user-doc -->
26 * <p>
27 * If the meaning of the '<em>Failed</em>' attribute isn't clear,
28 * there really should be more of a description here...
29 * </p>
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Failed</em>' attribute.
32 * @see #setFailed(boolean)
33 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getConstantModel_Failed()
34 * @model
35 * @generated
36 */
37 boolean isFailed();
38
39 /**
40 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel#isFailed <em>Failed</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Failed</em>' attribute.
44 * @see #isFailed()
45 * @generated
46 */
47 void setFailed(boolean value);
48
49} // ConstantModel
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/Event.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/Event.java
index 186e23b9..a5a905a0 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/Event.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/Event.java
@@ -9,42 +9,10 @@ import org.eclipse.emf.ecore.EObject;
9 * A representation of the model object '<em><b>Event</b></em>'. 9 * A representation of the model object '<em><b>Event</b></em>'.
10 * <!-- end-user-doc --> 10 * <!-- end-user-doc -->
11 * 11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event#getName <em>Name</em>}</li>
17 * </ul>
18 * 12 *
19 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getEvent() 13 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getEvent()
20 * @model abstract="true" 14 * @model abstract="true"
21 * @generated 15 * @generated
22 */ 16 */
23public interface Event extends EObject { 17public interface Event extends EObject {
24 /**
25 * Returns the value of the '<em><b>Name</b></em>' attribute.
26 * <!-- begin-user-doc -->
27 * <p>
28 * If the meaning of the '<em>Name</em>' attribute isn't clear,
29 * there really should be more of a description here...
30 * </p>
31 * <!-- end-user-doc -->
32 * @return the value of the '<em>Name</em>' attribute.
33 * @see #setName(String)
34 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getEvent_Name()
35 * @model
36 * @generated
37 */
38 String getName();
39
40 /**
41 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event#getName <em>Name</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @param value the new value of the '<em>Name</em>' attribute.
45 * @see #getName()
46 * @generated
47 */
48 void setName(String value);
49
50} // Event 18} // Event
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FaultTree.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FaultTree.java
index 247a9918..0bf258be 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FaultTree.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FaultTree.java
@@ -4,8 +4,6 @@ package hu.bme.mit.inf.dslreasoner.faulttree.model.ft;
4 4
5import org.eclipse.emf.common.util.EList; 5import org.eclipse.emf.common.util.EList;
6 6
7import org.eclipse.emf.ecore.EObject;
8
9/** 7/**
10 * <!-- begin-user-doc --> 8 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Fault Tree</b></em>'. 9 * A representation of the model object '<em><b>Fault Tree</b></em>'.
@@ -23,10 +21,10 @@ import org.eclipse.emf.ecore.EObject;
23 * @model 21 * @model
24 * @generated 22 * @generated
25 */ 23 */
26public interface FaultTree extends EObject { 24public interface FaultTree extends ReliabilityModel {
27 /** 25 /**
28 * Returns the value of the '<em><b>Events</b></em>' containment reference list. 26 * Returns the value of the '<em><b>Events</b></em>' containment reference list.
29 * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event}. 27 * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent}.
30 * <!-- begin-user-doc --> 28 * <!-- begin-user-doc -->
31 * <p> 29 * <p>
32 * If the meaning of the '<em>Events</em>' containment reference list isn't clear, 30 * If the meaning of the '<em>Events</em>' containment reference list isn't clear,
@@ -38,7 +36,7 @@ public interface FaultTree extends EObject {
38 * @model containment="true" 36 * @model containment="true"
39 * @generated 37 * @generated
40 */ 38 */
41 EList<Event> getEvents(); 39 EList<RandomEvent> getEvents();
42 40
43 /** 41 /**
44 * Returns the value of the '<em><b>Top Event</b></em>' reference. 42 * Returns the value of the '<em><b>Top Event</b></em>' reference.
@@ -49,12 +47,12 @@ public interface FaultTree extends EObject {
49 * </p> 47 * </p>
50 * <!-- end-user-doc --> 48 * <!-- end-user-doc -->
51 * @return the value of the '<em>Top Event</em>' reference. 49 * @return the value of the '<em>Top Event</em>' reference.
52 * @see #setTopEvent(Event) 50 * @see #setTopEvent(RandomEvent)
53 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getFaultTree_TopEvent() 51 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getFaultTree_TopEvent()
54 * @model required="true" 52 * @model required="true"
55 * @generated 53 * @generated
56 */ 54 */
57 Event getTopEvent(); 55 RandomEvent getTopEvent();
58 56
59 /** 57 /**
60 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FaultTree#getTopEvent <em>Top Event</em>}' reference. 58 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FaultTree#getTopEvent <em>Top Event</em>}' reference.
@@ -64,6 +62,6 @@ public interface FaultTree extends EObject {
64 * @see #getTopEvent() 62 * @see #getTopEvent()
65 * @generated 63 * @generated
66 */ 64 */
67 void setTopEvent(Event value); 65 void setTopEvent(RandomEvent value);
68 66
69} // FaultTree 67} // FaultTree
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FtFactory.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FtFactory.java
index 20b71b1a..7d420e34 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FtFactory.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FtFactory.java
@@ -85,6 +85,24 @@ public interface FtFactory extends EFactory {
85 KOfMGate createKOfMGate(); 85 KOfMGate createKOfMGate();
86 86
87 /** 87 /**
88 * Returns a new object of class '<em>Constant Model</em>'.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @return a new object of class '<em>Constant Model</em>'.
92 * @generated
93 */
94 ConstantModel createConstantModel();
95
96 /**
97 * Returns a new object of class '<em>Constant Event</em>'.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @return a new object of class '<em>Constant Event</em>'.
101 * @generated
102 */
103 ConstantEvent createConstantEvent();
104
105 /**
88 * Returns the package supported by this factory. 106 * Returns the package supported by this factory.
89 * <!-- begin-user-doc --> 107 * <!-- begin-user-doc -->
90 * <!-- end-user-doc --> 108 * <!-- end-user-doc -->
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FtPackage.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FtPackage.java
index e376063c..dd35d666 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FtPackage.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/FtPackage.java
@@ -57,6 +57,34 @@ public interface FtPackage extends EPackage {
57 FtPackage eINSTANCE = hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl.init(); 57 FtPackage eINSTANCE = hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl.init();
58 58
59 /** 59 /**
60 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ReliabilityModelImpl <em>Reliability Model</em>}' class.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ReliabilityModelImpl
64 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl#getReliabilityModel()
65 * @generated
66 */
67 int RELIABILITY_MODEL = 10;
68
69 /**
70 * The number of structural features of the '<em>Reliability Model</em>' class.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 * @ordered
75 */
76 int RELIABILITY_MODEL_FEATURE_COUNT = 0;
77
78 /**
79 * The number of operations of the '<em>Reliability Model</em>' class.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 * @ordered
84 */
85 int RELIABILITY_MODEL_OPERATION_COUNT = 0;
86
87 /**
60 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FaultTreeImpl <em>Fault Tree</em>}' class. 88 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FaultTreeImpl <em>Fault Tree</em>}' class.
61 * <!-- begin-user-doc --> 89 * <!-- begin-user-doc -->
62 * <!-- end-user-doc --> 90 * <!-- end-user-doc -->
@@ -73,7 +101,7 @@ public interface FtPackage extends EPackage {
73 * @generated 101 * @generated
74 * @ordered 102 * @ordered
75 */ 103 */
76 int FAULT_TREE__EVENTS = 0; 104 int FAULT_TREE__EVENTS = RELIABILITY_MODEL_FEATURE_COUNT + 0;
77 105
78 /** 106 /**
79 * The feature id for the '<em><b>Top Event</b></em>' reference. 107 * The feature id for the '<em><b>Top Event</b></em>' reference.
@@ -82,7 +110,7 @@ public interface FtPackage extends EPackage {
82 * @generated 110 * @generated
83 * @ordered 111 * @ordered
84 */ 112 */
85 int FAULT_TREE__TOP_EVENT = 1; 113 int FAULT_TREE__TOP_EVENT = RELIABILITY_MODEL_FEATURE_COUNT + 1;
86 114
87 /** 115 /**
88 * The number of structural features of the '<em>Fault Tree</em>' class. 116 * The number of structural features of the '<em>Fault Tree</em>' class.
@@ -91,7 +119,7 @@ public interface FtPackage extends EPackage {
91 * @generated 119 * @generated
92 * @ordered 120 * @ordered
93 */ 121 */
94 int FAULT_TREE_FEATURE_COUNT = 2; 122 int FAULT_TREE_FEATURE_COUNT = RELIABILITY_MODEL_FEATURE_COUNT + 2;
95 123
96 /** 124 /**
97 * The number of operations of the '<em>Fault Tree</em>' class. 125 * The number of operations of the '<em>Fault Tree</em>' class.
@@ -100,7 +128,7 @@ public interface FtPackage extends EPackage {
100 * @generated 128 * @generated
101 * @ordered 129 * @ordered
102 */ 130 */
103 int FAULT_TREE_OPERATION_COUNT = 0; 131 int FAULT_TREE_OPERATION_COUNT = RELIABILITY_MODEL_OPERATION_COUNT + 0;
104 132
105 /** 133 /**
106 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.EventImpl <em>Event</em>}' class. 134 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.EventImpl <em>Event</em>}' class.
@@ -110,7 +138,35 @@ public interface FtPackage extends EPackage {
110 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl#getEvent() 138 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl#getEvent()
111 * @generated 139 * @generated
112 */ 140 */
113 int EVENT = 1; 141 int EVENT = 12;
142
143 /**
144 * The number of structural features of the '<em>Event</em>' class.
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @generated
148 * @ordered
149 */
150 int EVENT_FEATURE_COUNT = 0;
151
152 /**
153 * The number of operations of the '<em>Event</em>' class.
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @generated
157 * @ordered
158 */
159 int EVENT_OPERATION_COUNT = 0;
160
161 /**
162 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.RandomEventImpl <em>Random Event</em>}' class.
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.RandomEventImpl
166 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl#getRandomEvent()
167 * @generated
168 */
169 int RANDOM_EVENT = 1;
114 170
115 /** 171 /**
116 * The feature id for the '<em><b>Name</b></em>' attribute. 172 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -119,25 +175,25 @@ public interface FtPackage extends EPackage {
119 * @generated 175 * @generated
120 * @ordered 176 * @ordered
121 */ 177 */
122 int EVENT__NAME = 0; 178 int RANDOM_EVENT__NAME = EVENT_FEATURE_COUNT + 0;
123 179
124 /** 180 /**
125 * The number of structural features of the '<em>Event</em>' class. 181 * The number of structural features of the '<em>Random Event</em>' class.
126 * <!-- begin-user-doc --> 182 * <!-- begin-user-doc -->
127 * <!-- end-user-doc --> 183 * <!-- end-user-doc -->
128 * @generated 184 * @generated
129 * @ordered 185 * @ordered
130 */ 186 */
131 int EVENT_FEATURE_COUNT = 1; 187 int RANDOM_EVENT_FEATURE_COUNT = EVENT_FEATURE_COUNT + 1;
132 188
133 /** 189 /**
134 * The number of operations of the '<em>Event</em>' class. 190 * The number of operations of the '<em>Random Event</em>' class.
135 * <!-- begin-user-doc --> 191 * <!-- begin-user-doc -->
136 * <!-- end-user-doc --> 192 * <!-- end-user-doc -->
137 * @generated 193 * @generated
138 * @ordered 194 * @ordered
139 */ 195 */
140 int EVENT_OPERATION_COUNT = 0; 196 int RANDOM_EVENT_OPERATION_COUNT = EVENT_OPERATION_COUNT + 0;
141 197
142 /** 198 /**
143 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.BasicEventImpl <em>Basic Event</em>}' class. 199 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.BasicEventImpl <em>Basic Event</em>}' class.
@@ -156,7 +212,7 @@ public interface FtPackage extends EPackage {
156 * @generated 212 * @generated
157 * @ordered 213 * @ordered
158 */ 214 */
159 int BASIC_EVENT__NAME = EVENT__NAME; 215 int BASIC_EVENT__NAME = RANDOM_EVENT__NAME;
160 216
161 /** 217 /**
162 * The feature id for the '<em><b>Distribution</b></em>' containment reference. 218 * The feature id for the '<em><b>Distribution</b></em>' containment reference.
@@ -165,7 +221,7 @@ public interface FtPackage extends EPackage {
165 * @generated 221 * @generated
166 * @ordered 222 * @ordered
167 */ 223 */
168 int BASIC_EVENT__DISTRIBUTION = EVENT_FEATURE_COUNT + 0; 224 int BASIC_EVENT__DISTRIBUTION = RANDOM_EVENT_FEATURE_COUNT + 0;
169 225
170 /** 226 /**
171 * The number of structural features of the '<em>Basic Event</em>' class. 227 * The number of structural features of the '<em>Basic Event</em>' class.
@@ -174,7 +230,7 @@ public interface FtPackage extends EPackage {
174 * @generated 230 * @generated
175 * @ordered 231 * @ordered
176 */ 232 */
177 int BASIC_EVENT_FEATURE_COUNT = EVENT_FEATURE_COUNT + 1; 233 int BASIC_EVENT_FEATURE_COUNT = RANDOM_EVENT_FEATURE_COUNT + 1;
178 234
179 /** 235 /**
180 * The number of operations of the '<em>Basic Event</em>' class. 236 * The number of operations of the '<em>Basic Event</em>' class.
@@ -183,7 +239,7 @@ public interface FtPackage extends EPackage {
183 * @generated 239 * @generated
184 * @ordered 240 * @ordered
185 */ 241 */
186 int BASIC_EVENT_OPERATION_COUNT = EVENT_OPERATION_COUNT + 0; 242 int BASIC_EVENT_OPERATION_COUNT = RANDOM_EVENT_OPERATION_COUNT + 0;
187 243
188 /** 244 /**
189 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.GateImpl <em>Gate</em>}' class. 245 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.GateImpl <em>Gate</em>}' class.
@@ -202,7 +258,7 @@ public interface FtPackage extends EPackage {
202 * @generated 258 * @generated
203 * @ordered 259 * @ordered
204 */ 260 */
205 int GATE__NAME = EVENT__NAME; 261 int GATE__NAME = RANDOM_EVENT__NAME;
206 262
207 /** 263 /**
208 * The feature id for the '<em><b>Input Events</b></em>' reference list. 264 * The feature id for the '<em><b>Input Events</b></em>' reference list.
@@ -211,7 +267,7 @@ public interface FtPackage extends EPackage {
211 * @generated 267 * @generated
212 * @ordered 268 * @ordered
213 */ 269 */
214 int GATE__INPUT_EVENTS = EVENT_FEATURE_COUNT + 0; 270 int GATE__INPUT_EVENTS = RANDOM_EVENT_FEATURE_COUNT + 0;
215 271
216 /** 272 /**
217 * The number of structural features of the '<em>Gate</em>' class. 273 * The number of structural features of the '<em>Gate</em>' class.
@@ -220,7 +276,7 @@ public interface FtPackage extends EPackage {
220 * @generated 276 * @generated
221 * @ordered 277 * @ordered
222 */ 278 */
223 int GATE_FEATURE_COUNT = EVENT_FEATURE_COUNT + 1; 279 int GATE_FEATURE_COUNT = RANDOM_EVENT_FEATURE_COUNT + 1;
224 280
225 /** 281 /**
226 * The number of operations of the '<em>Gate</em>' class. 282 * The number of operations of the '<em>Gate</em>' class.
@@ -229,7 +285,7 @@ public interface FtPackage extends EPackage {
229 * @generated 285 * @generated
230 * @ordered 286 * @ordered
231 */ 287 */
232 int GATE_OPERATION_COUNT = EVENT_OPERATION_COUNT + 0; 288 int GATE_OPERATION_COUNT = RANDOM_EVENT_OPERATION_COUNT + 0;
233 289
234 /** 290 /**
235 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.DistributionImpl <em>Distribution</em>}' class. 291 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.DistributionImpl <em>Distribution</em>}' class.
@@ -463,31 +519,96 @@ public interface FtPackage extends EPackage {
463 int KOF_MGATE__K = GATE_FEATURE_COUNT + 0; 519 int KOF_MGATE__K = GATE_FEATURE_COUNT + 0;
464 520
465 /** 521 /**
466 * The feature id for the '<em><b>M</b></em>' attribute. 522 * The number of structural features of the '<em>KOf MGate</em>' class.
467 * <!-- begin-user-doc --> 523 * <!-- begin-user-doc -->
468 * <!-- end-user-doc --> 524 * <!-- end-user-doc -->
469 * @generated 525 * @generated
470 * @ordered 526 * @ordered
471 */ 527 */
472 int KOF_MGATE__M = GATE_FEATURE_COUNT + 1; 528 int KOF_MGATE_FEATURE_COUNT = GATE_FEATURE_COUNT + 1;
473 529
474 /** 530 /**
475 * The number of structural features of the '<em>KOf MGate</em>' class. 531 * The number of operations of the '<em>KOf MGate</em>' class.
476 * <!-- begin-user-doc --> 532 * <!-- begin-user-doc -->
477 * <!-- end-user-doc --> 533 * <!-- end-user-doc -->
478 * @generated 534 * @generated
479 * @ordered 535 * @ordered
480 */ 536 */
481 int KOF_MGATE_FEATURE_COUNT = GATE_FEATURE_COUNT + 2; 537 int KOF_MGATE_OPERATION_COUNT = GATE_OPERATION_COUNT + 0;
482 538
483 /** 539 /**
484 * The number of operations of the '<em>KOf MGate</em>' class. 540 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ConstantModelImpl <em>Constant Model</em>}' class.
541 * <!-- begin-user-doc -->
542 * <!-- end-user-doc -->
543 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ConstantModelImpl
544 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl#getConstantModel()
545 * @generated
546 */
547 int CONSTANT_MODEL = 11;
548
549 /**
550 * The feature id for the '<em><b>Failed</b></em>' attribute.
485 * <!-- begin-user-doc --> 551 * <!-- begin-user-doc -->
486 * <!-- end-user-doc --> 552 * <!-- end-user-doc -->
487 * @generated 553 * @generated
488 * @ordered 554 * @ordered
489 */ 555 */
490 int KOF_MGATE_OPERATION_COUNT = GATE_OPERATION_COUNT + 0; 556 int CONSTANT_MODEL__FAILED = RELIABILITY_MODEL_FEATURE_COUNT + 0;
557
558 /**
559 * The number of structural features of the '<em>Constant Model</em>' class.
560 * <!-- begin-user-doc -->
561 * <!-- end-user-doc -->
562 * @generated
563 * @ordered
564 */
565 int CONSTANT_MODEL_FEATURE_COUNT = RELIABILITY_MODEL_FEATURE_COUNT + 1;
566
567 /**
568 * The number of operations of the '<em>Constant Model</em>' class.
569 * <!-- begin-user-doc -->
570 * <!-- end-user-doc -->
571 * @generated
572 * @ordered
573 */
574 int CONSTANT_MODEL_OPERATION_COUNT = RELIABILITY_MODEL_OPERATION_COUNT + 0;
575
576 /**
577 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ConstantEventImpl <em>Constant Event</em>}' class.
578 * <!-- begin-user-doc -->
579 * <!-- end-user-doc -->
580 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ConstantEventImpl
581 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl#getConstantEvent()
582 * @generated
583 */
584 int CONSTANT_EVENT = 13;
585
586 /**
587 * The feature id for the '<em><b>Failed</b></em>' attribute.
588 * <!-- begin-user-doc -->
589 * <!-- end-user-doc -->
590 * @generated
591 * @ordered
592 */
593 int CONSTANT_EVENT__FAILED = EVENT_FEATURE_COUNT + 0;
594
595 /**
596 * The number of structural features of the '<em>Constant Event</em>' class.
597 * <!-- begin-user-doc -->
598 * <!-- end-user-doc -->
599 * @generated
600 * @ordered
601 */
602 int CONSTANT_EVENT_FEATURE_COUNT = EVENT_FEATURE_COUNT + 1;
603
604 /**
605 * The number of operations of the '<em>Constant Event</em>' class.
606 * <!-- begin-user-doc -->
607 * <!-- end-user-doc -->
608 * @generated
609 * @ordered
610 */
611 int CONSTANT_EVENT_OPERATION_COUNT = EVENT_OPERATION_COUNT + 0;
491 612
492 613
493 /** 614 /**
@@ -523,25 +644,25 @@ public interface FtPackage extends EPackage {
523 EReference getFaultTree_TopEvent(); 644 EReference getFaultTree_TopEvent();
524 645
525 /** 646 /**
526 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event <em>Event</em>}'. 647 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent <em>Random Event</em>}'.
527 * <!-- begin-user-doc --> 648 * <!-- begin-user-doc -->
528 * <!-- end-user-doc --> 649 * <!-- end-user-doc -->
529 * @return the meta object for class '<em>Event</em>'. 650 * @return the meta object for class '<em>Random Event</em>'.
530 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event 651 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent
531 * @generated 652 * @generated
532 */ 653 */
533 EClass getEvent(); 654 EClass getRandomEvent();
534 655
535 /** 656 /**
536 * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event#getName <em>Name</em>}'. 657 * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent#getName <em>Name</em>}'.
537 * <!-- begin-user-doc --> 658 * <!-- begin-user-doc -->
538 * <!-- end-user-doc --> 659 * <!-- end-user-doc -->
539 * @return the meta object for the attribute '<em>Name</em>'. 660 * @return the meta object for the attribute '<em>Name</em>'.
540 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event#getName() 661 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent#getName()
541 * @see #getEvent() 662 * @see #getRandomEvent()
542 * @generated 663 * @generated
543 */ 664 */
544 EAttribute getEvent_Name(); 665 EAttribute getRandomEvent_Name();
545 666
546 /** 667 /**
547 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.BasicEvent <em>Basic Event</em>}'. 668 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.BasicEvent <em>Basic Event</em>}'.
@@ -679,15 +800,66 @@ public interface FtPackage extends EPackage {
679 EAttribute getKOfMGate_K(); 800 EAttribute getKOfMGate_K();
680 801
681 /** 802 /**
682 * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.KOfMGate#getM <em>M</em>}'. 803 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ReliabilityModel <em>Reliability Model</em>}'.
683 * <!-- begin-user-doc --> 804 * <!-- begin-user-doc -->
684 * <!-- end-user-doc --> 805 * <!-- end-user-doc -->
685 * @return the meta object for the attribute '<em>M</em>'. 806 * @return the meta object for class '<em>Reliability Model</em>'.
686 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.KOfMGate#getM() 807 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ReliabilityModel
687 * @see #getKOfMGate() 808 * @generated
809 */
810 EClass getReliabilityModel();
811
812 /**
813 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel <em>Constant Model</em>}'.
814 * <!-- begin-user-doc -->
815 * <!-- end-user-doc -->
816 * @return the meta object for class '<em>Constant Model</em>'.
817 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel
818 * @generated
819 */
820 EClass getConstantModel();
821
822 /**
823 * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel#isFailed <em>Failed</em>}'.
824 * <!-- begin-user-doc -->
825 * <!-- end-user-doc -->
826 * @return the meta object for the attribute '<em>Failed</em>'.
827 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel#isFailed()
828 * @see #getConstantModel()
829 * @generated
830 */
831 EAttribute getConstantModel_Failed();
832
833 /**
834 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event <em>Event</em>}'.
835 * <!-- begin-user-doc -->
836 * <!-- end-user-doc -->
837 * @return the meta object for class '<em>Event</em>'.
838 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event
839 * @generated
840 */
841 EClass getEvent();
842
843 /**
844 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent <em>Constant Event</em>}'.
845 * <!-- begin-user-doc -->
846 * <!-- end-user-doc -->
847 * @return the meta object for class '<em>Constant Event</em>'.
848 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent
688 * @generated 849 * @generated
689 */ 850 */
690 EAttribute getKOfMGate_M(); 851 EClass getConstantEvent();
852
853 /**
854 * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent#isFailed <em>Failed</em>}'.
855 * <!-- begin-user-doc -->
856 * <!-- end-user-doc -->
857 * @return the meta object for the attribute '<em>Failed</em>'.
858 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent#isFailed()
859 * @see #getConstantEvent()
860 * @generated
861 */
862 EAttribute getConstantEvent_Failed();
691 863
692 /** 864 /**
693 * Returns the factory that creates the instances of the model. 865 * Returns the factory that creates the instances of the model.
@@ -739,14 +911,14 @@ public interface FtPackage extends EPackage {
739 EReference FAULT_TREE__TOP_EVENT = eINSTANCE.getFaultTree_TopEvent(); 911 EReference FAULT_TREE__TOP_EVENT = eINSTANCE.getFaultTree_TopEvent();
740 912
741 /** 913 /**
742 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.EventImpl <em>Event</em>}' class. 914 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.RandomEventImpl <em>Random Event</em>}' class.
743 * <!-- begin-user-doc --> 915 * <!-- begin-user-doc -->
744 * <!-- end-user-doc --> 916 * <!-- end-user-doc -->
745 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.EventImpl 917 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.RandomEventImpl
746 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl#getEvent() 918 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl#getRandomEvent()
747 * @generated 919 * @generated
748 */ 920 */
749 EClass EVENT = eINSTANCE.getEvent(); 921 EClass RANDOM_EVENT = eINSTANCE.getRandomEvent();
750 922
751 /** 923 /**
752 * The meta object literal for the '<em><b>Name</b></em>' attribute feature. 924 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
@@ -754,7 +926,7 @@ public interface FtPackage extends EPackage {
754 * <!-- end-user-doc --> 926 * <!-- end-user-doc -->
755 * @generated 927 * @generated
756 */ 928 */
757 EAttribute EVENT__NAME = eINSTANCE.getEvent_Name(); 929 EAttribute RANDOM_EVENT__NAME = eINSTANCE.getRandomEvent_Name();
758 930
759 /** 931 /**
760 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.BasicEventImpl <em>Basic Event</em>}' class. 932 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.BasicEventImpl <em>Basic Event</em>}' class.
@@ -877,12 +1049,60 @@ public interface FtPackage extends EPackage {
877 EAttribute KOF_MGATE__K = eINSTANCE.getKOfMGate_K(); 1049 EAttribute KOF_MGATE__K = eINSTANCE.getKOfMGate_K();
878 1050
879 /** 1051 /**
880 * The meta object literal for the '<em><b>M</b></em>' attribute feature. 1052 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ReliabilityModelImpl <em>Reliability Model</em>}' class.
1053 * <!-- begin-user-doc -->
1054 * <!-- end-user-doc -->
1055 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ReliabilityModelImpl
1056 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl#getReliabilityModel()
1057 * @generated
1058 */
1059 EClass RELIABILITY_MODEL = eINSTANCE.getReliabilityModel();
1060
1061 /**
1062 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ConstantModelImpl <em>Constant Model</em>}' class.
1063 * <!-- begin-user-doc -->
1064 * <!-- end-user-doc -->
1065 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ConstantModelImpl
1066 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl#getConstantModel()
1067 * @generated
1068 */
1069 EClass CONSTANT_MODEL = eINSTANCE.getConstantModel();
1070
1071 /**
1072 * The meta object literal for the '<em><b>Failed</b></em>' attribute feature.
1073 * <!-- begin-user-doc -->
1074 * <!-- end-user-doc -->
1075 * @generated
1076 */
1077 EAttribute CONSTANT_MODEL__FAILED = eINSTANCE.getConstantModel_Failed();
1078
1079 /**
1080 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.EventImpl <em>Event</em>}' class.
1081 * <!-- begin-user-doc -->
1082 * <!-- end-user-doc -->
1083 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.EventImpl
1084 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl#getEvent()
1085 * @generated
1086 */
1087 EClass EVENT = eINSTANCE.getEvent();
1088
1089 /**
1090 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ConstantEventImpl <em>Constant Event</em>}' class.
1091 * <!-- begin-user-doc -->
1092 * <!-- end-user-doc -->
1093 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ConstantEventImpl
1094 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.FtPackageImpl#getConstantEvent()
1095 * @generated
1096 */
1097 EClass CONSTANT_EVENT = eINSTANCE.getConstantEvent();
1098
1099 /**
1100 * The meta object literal for the '<em><b>Failed</b></em>' attribute feature.
881 * <!-- begin-user-doc --> 1101 * <!-- begin-user-doc -->
882 * <!-- end-user-doc --> 1102 * <!-- end-user-doc -->
883 * @generated 1103 * @generated
884 */ 1104 */
885 EAttribute KOF_MGATE__M = eINSTANCE.getKOfMGate_M(); 1105 EAttribute CONSTANT_EVENT__FAILED = eINSTANCE.getConstantEvent_Failed();
886 1106
887 } 1107 }
888 1108
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/Gate.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/Gate.java
index 0df58bb4..5015051a 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/Gate.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/Gate.java
@@ -20,10 +20,10 @@ import org.eclipse.emf.common.util.EList;
20 * @model abstract="true" 20 * @model abstract="true"
21 * @generated 21 * @generated
22 */ 22 */
23public interface Gate extends Event { 23public interface Gate extends RandomEvent {
24 /** 24 /**
25 * Returns the value of the '<em><b>Input Events</b></em>' reference list. 25 * Returns the value of the '<em><b>Input Events</b></em>' reference list.
26 * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event}. 26 * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent}.
27 * <!-- begin-user-doc --> 27 * <!-- begin-user-doc -->
28 * <p> 28 * <p>
29 * If the meaning of the '<em>Input Events</em>' reference list isn't clear, 29 * If the meaning of the '<em>Input Events</em>' reference list isn't clear,
@@ -32,9 +32,9 @@ public interface Gate extends Event {
32 * <!-- end-user-doc --> 32 * <!-- end-user-doc -->
33 * @return the value of the '<em>Input Events</em>' reference list. 33 * @return the value of the '<em>Input Events</em>' reference list.
34 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getGate_InputEvents() 34 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getGate_InputEvents()
35 * @model 35 * @model lower="2"
36 * @generated 36 * @generated
37 */ 37 */
38 EList<Event> getInputEvents(); 38 EList<RandomEvent> getInputEvents();
39 39
40} // Gate 40} // Gate
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/KOfMGate.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/KOfMGate.java
index 33334083..c891f83a 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/KOfMGate.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/KOfMGate.java
@@ -13,7 +13,6 @@ package hu.bme.mit.inf.dslreasoner.faulttree.model.ft;
13 * </p> 13 * </p>
14 * <ul> 14 * <ul>
15 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.KOfMGate#getK <em>K</em>}</li> 15 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.KOfMGate#getK <em>K</em>}</li>
16 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.KOfMGate#getM <em>M</em>}</li>
17 * </ul> 16 * </ul>
18 * 17 *
19 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getKOfMGate() 18 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getKOfMGate()
@@ -47,30 +46,4 @@ public interface KOfMGate extends Gate {
47 */ 46 */
48 void setK(int value); 47 void setK(int value);
49 48
50 /**
51 * Returns the value of the '<em><b>M</b></em>' attribute.
52 * <!-- begin-user-doc -->
53 * <p>
54 * If the meaning of the '<em>M</em>' attribute isn't clear,
55 * there really should be more of a description here...
56 * </p>
57 * <!-- end-user-doc -->
58 * @return the value of the '<em>M</em>' attribute.
59 * @see #setM(int)
60 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getKOfMGate_M()
61 * @model
62 * @generated
63 */
64 int getM();
65
66 /**
67 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.KOfMGate#getM <em>M</em>}' attribute.
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @param value the new value of the '<em>M</em>' attribute.
71 * @see #getM()
72 * @generated
73 */
74 void setM(int value);
75
76} // KOfMGate 49} // KOfMGate
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/RandomEvent.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/RandomEvent.java
new file mode 100644
index 00000000..3931ac41
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/RandomEvent.java
@@ -0,0 +1,49 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.faulttree.model.ft;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Random Event</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent#getName <em>Name</em>}</li>
16 * </ul>
17 *
18 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getRandomEvent()
19 * @model abstract="true"
20 * @generated
21 */
22public interface RandomEvent extends Event {
23 /**
24 * Returns the value of the '<em><b>Name</b></em>' attribute.
25 * <!-- begin-user-doc -->
26 * <p>
27 * If the meaning of the '<em>Name</em>' attribute isn't clear,
28 * there really should be more of a description here...
29 * </p>
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Name</em>' attribute.
32 * @see #setName(String)
33 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getRandomEvent_Name()
34 * @model
35 * @generated
36 */
37 String getName();
38
39 /**
40 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent#getName <em>Name</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Name</em>' attribute.
44 * @see #getName()
45 * @generated
46 */
47 void setName(String value);
48
49} // RandomEvent
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/ReliabilityModel.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/ReliabilityModel.java
new file mode 100644
index 00000000..c1dc2162
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/ReliabilityModel.java
@@ -0,0 +1,18 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.faulttree.model.ft;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Reliability Model</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage#getReliabilityModel()
14 * @model abstract="true"
15 * @generated
16 */
17public interface ReliabilityModel extends EObject {
18} // ReliabilityModel
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/BasicEventImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/BasicEventImpl.java
index 8fd0f613..bbed7b00 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/BasicEventImpl.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/BasicEventImpl.java
@@ -27,7 +27,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
27 * 27 *
28 * @generated 28 * @generated
29 */ 29 */
30public class BasicEventImpl extends EventImpl implements BasicEvent { 30public class BasicEventImpl extends RandomEventImpl implements BasicEvent {
31 /** 31 /**
32 * The cached value of the '{@link #getDistribution() <em>Distribution</em>}' containment reference. 32 * The cached value of the '{@link #getDistribution() <em>Distribution</em>}' containment reference.
33 * <!-- begin-user-doc --> 33 * <!-- begin-user-doc -->
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/ConstantEventImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/ConstantEventImpl.java
new file mode 100644
index 00000000..fc7bcf09
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/ConstantEventImpl.java
@@ -0,0 +1,164 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl;
4
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage;
7
8import org.eclipse.emf.common.notify.Notification;
9
10import org.eclipse.emf.ecore.EClass;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Constant Event</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ConstantEventImpl#isFailed <em>Failed</em>}</li>
23 * </ul>
24 *
25 * @generated
26 */
27public class ConstantEventImpl extends EventImpl implements ConstantEvent {
28 /**
29 * The default value of the '{@link #isFailed() <em>Failed</em>}' attribute.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @see #isFailed()
33 * @generated
34 * @ordered
35 */
36 protected static final boolean FAILED_EDEFAULT = false;
37
38 /**
39 * The cached value of the '{@link #isFailed() <em>Failed</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @see #isFailed()
43 * @generated
44 * @ordered
45 */
46 protected boolean failed = FAILED_EDEFAULT;
47
48 /**
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @generated
52 */
53 protected ConstantEventImpl() {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass() {
64 return FtPackage.Literals.CONSTANT_EVENT;
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 @Override
73 public boolean isFailed() {
74 return failed;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 @Override
83 public void setFailed(boolean newFailed) {
84 boolean oldFailed = failed;
85 failed = newFailed;
86 if (eNotificationRequired())
87 eNotify(new ENotificationImpl(this, Notification.SET, FtPackage.CONSTANT_EVENT__FAILED, oldFailed, failed));
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 @Override
96 public Object eGet(int featureID, boolean resolve, boolean coreType) {
97 switch (featureID) {
98 case FtPackage.CONSTANT_EVENT__FAILED:
99 return isFailed();
100 }
101 return super.eGet(featureID, resolve, coreType);
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 @Override
110 public void eSet(int featureID, Object newValue) {
111 switch (featureID) {
112 case FtPackage.CONSTANT_EVENT__FAILED:
113 setFailed((Boolean)newValue);
114 return;
115 }
116 super.eSet(featureID, newValue);
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public void eUnset(int featureID) {
126 switch (featureID) {
127 case FtPackage.CONSTANT_EVENT__FAILED:
128 setFailed(FAILED_EDEFAULT);
129 return;
130 }
131 super.eUnset(featureID);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @Override
140 public boolean eIsSet(int featureID) {
141 switch (featureID) {
142 case FtPackage.CONSTANT_EVENT__FAILED:
143 return failed != FAILED_EDEFAULT;
144 }
145 return super.eIsSet(featureID);
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public String toString() {
155 if (eIsProxy()) return super.toString();
156
157 StringBuilder result = new StringBuilder(super.toString());
158 result.append(" (failed: ");
159 result.append(failed);
160 result.append(')');
161 return result.toString();
162 }
163
164} //ConstantEventImpl
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/ConstantModelImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/ConstantModelImpl.java
new file mode 100644
index 00000000..52e1605b
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/ConstantModelImpl.java
@@ -0,0 +1,164 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl;
4
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage;
7
8import org.eclipse.emf.common.notify.Notification;
9
10import org.eclipse.emf.ecore.EClass;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Constant Model</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.ConstantModelImpl#isFailed <em>Failed</em>}</li>
23 * </ul>
24 *
25 * @generated
26 */
27public class ConstantModelImpl extends ReliabilityModelImpl implements ConstantModel {
28 /**
29 * The default value of the '{@link #isFailed() <em>Failed</em>}' attribute.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @see #isFailed()
33 * @generated
34 * @ordered
35 */
36 protected static final boolean FAILED_EDEFAULT = false;
37
38 /**
39 * The cached value of the '{@link #isFailed() <em>Failed</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @see #isFailed()
43 * @generated
44 * @ordered
45 */
46 protected boolean failed = FAILED_EDEFAULT;
47
48 /**
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @generated
52 */
53 protected ConstantModelImpl() {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass() {
64 return FtPackage.Literals.CONSTANT_MODEL;
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 @Override
73 public boolean isFailed() {
74 return failed;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 @Override
83 public void setFailed(boolean newFailed) {
84 boolean oldFailed = failed;
85 failed = newFailed;
86 if (eNotificationRequired())
87 eNotify(new ENotificationImpl(this, Notification.SET, FtPackage.CONSTANT_MODEL__FAILED, oldFailed, failed));
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 @Override
96 public Object eGet(int featureID, boolean resolve, boolean coreType) {
97 switch (featureID) {
98 case FtPackage.CONSTANT_MODEL__FAILED:
99 return isFailed();
100 }
101 return super.eGet(featureID, resolve, coreType);
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 @Override
110 public void eSet(int featureID, Object newValue) {
111 switch (featureID) {
112 case FtPackage.CONSTANT_MODEL__FAILED:
113 setFailed((Boolean)newValue);
114 return;
115 }
116 super.eSet(featureID, newValue);
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public void eUnset(int featureID) {
126 switch (featureID) {
127 case FtPackage.CONSTANT_MODEL__FAILED:
128 setFailed(FAILED_EDEFAULT);
129 return;
130 }
131 super.eUnset(featureID);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @Override
140 public boolean eIsSet(int featureID) {
141 switch (featureID) {
142 case FtPackage.CONSTANT_MODEL__FAILED:
143 return failed != FAILED_EDEFAULT;
144 }
145 return super.eIsSet(featureID);
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public String toString() {
155 if (eIsProxy()) return super.toString();
156
157 StringBuilder result = new StringBuilder(super.toString());
158 result.append(" (failed: ");
159 result.append(failed);
160 result.append(')');
161 return result.toString();
162 }
163
164} //ConstantModelImpl
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/EventImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/EventImpl.java
index 44ac0eb6..b37fa6bd 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/EventImpl.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/EventImpl.java
@@ -5,48 +5,19 @@ package hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl;
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event; 5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage; 6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage;
7 7
8import org.eclipse.emf.common.notify.Notification;
9
10import org.eclipse.emf.ecore.EClass; 8import org.eclipse.emf.ecore.EClass;
11 9
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; 10import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
14 11
15/** 12/**
16 * <!-- begin-user-doc --> 13 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Event</b></em>'. 14 * An implementation of the model object '<em><b>Event</b></em>'.
18 * <!-- end-user-doc --> 15 * <!-- end-user-doc -->
19 * <p>
20 * The following features are implemented:
21 * </p>
22 * <ul>
23 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.EventImpl#getName <em>Name</em>}</li>
24 * </ul>
25 * 16 *
26 * @generated 17 * @generated
27 */ 18 */
28public abstract class EventImpl extends MinimalEObjectImpl.Container implements Event { 19public abstract class EventImpl extends MinimalEObjectImpl.Container implements Event {
29 /** 20 /**
30 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @see #getName()
34 * @generated
35 * @ordered
36 */
37 protected static final String NAME_EDEFAULT = null;
38
39 /**
40 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getName()
44 * @generated
45 * @ordered
46 */
47 protected String name = NAME_EDEFAULT;
48
49 /**
50 * <!-- begin-user-doc --> 21 * <!-- begin-user-doc -->
51 * <!-- end-user-doc --> 22 * <!-- end-user-doc -->
52 * @generated 23 * @generated
@@ -65,101 +36,4 @@ public abstract class EventImpl extends MinimalEObjectImpl.Container implements
65 return FtPackage.Literals.EVENT; 36 return FtPackage.Literals.EVENT;
66 } 37 }
67 38
68 /**
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @generated
72 */
73 @Override
74 public String getName() {
75 return name;
76 }
77
78 /**
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @generated
82 */
83 @Override
84 public void setName(String newName) {
85 String oldName = name;
86 name = newName;
87 if (eNotificationRequired())
88 eNotify(new ENotificationImpl(this, Notification.SET, FtPackage.EVENT__NAME, oldName, name));
89 }
90
91 /**
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @generated
95 */
96 @Override
97 public Object eGet(int featureID, boolean resolve, boolean coreType) {
98 switch (featureID) {
99 case FtPackage.EVENT__NAME:
100 return getName();
101 }
102 return super.eGet(featureID, resolve, coreType);
103 }
104
105 /**
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 @Override
111 public void eSet(int featureID, Object newValue) {
112 switch (featureID) {
113 case FtPackage.EVENT__NAME:
114 setName((String)newValue);
115 return;
116 }
117 super.eSet(featureID, newValue);
118 }
119
120 /**
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 @Override
126 public void eUnset(int featureID) {
127 switch (featureID) {
128 case FtPackage.EVENT__NAME:
129 setName(NAME_EDEFAULT);
130 return;
131 }
132 super.eUnset(featureID);
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 @Override
141 public boolean eIsSet(int featureID) {
142 switch (featureID) {
143 case FtPackage.EVENT__NAME:
144 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
145 }
146 return super.eIsSet(featureID);
147 }
148
149 /**
150 * <!-- begin-user-doc -->
151 * <!-- end-user-doc -->
152 * @generated
153 */
154 @Override
155 public String toString() {
156 if (eIsProxy()) return super.toString();
157
158 StringBuilder result = new StringBuilder(super.toString());
159 result.append(" (name: ");
160 result.append(name);
161 result.append(')');
162 return result.toString();
163 }
164
165} //EventImpl 39} //EventImpl
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FaultTreeImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FaultTreeImpl.java
index 9c716c21..23f1d056 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FaultTreeImpl.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FaultTreeImpl.java
@@ -2,9 +2,9 @@
2 */ 2 */
3package hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl; 3package hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl;
4 4
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FaultTree; 5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FaultTree;
7import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage; 6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage;
7import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent;
8 8
9import java.util.Collection; 9import java.util.Collection;
10 10
@@ -17,7 +17,6 @@ import org.eclipse.emf.ecore.EClass;
17import org.eclipse.emf.ecore.InternalEObject; 17import org.eclipse.emf.ecore.InternalEObject;
18 18
19import org.eclipse.emf.ecore.impl.ENotificationImpl; 19import org.eclipse.emf.ecore.impl.ENotificationImpl;
20import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
21 20
22import org.eclipse.emf.ecore.util.EObjectContainmentEList; 21import org.eclipse.emf.ecore.util.EObjectContainmentEList;
23import org.eclipse.emf.ecore.util.InternalEList; 22import org.eclipse.emf.ecore.util.InternalEList;
@@ -36,7 +35,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
36 * 35 *
37 * @generated 36 * @generated
38 */ 37 */
39public class FaultTreeImpl extends MinimalEObjectImpl.Container implements FaultTree { 38public class FaultTreeImpl extends ReliabilityModelImpl implements FaultTree {
40 /** 39 /**
41 * The cached value of the '{@link #getEvents() <em>Events</em>}' containment reference list. 40 * The cached value of the '{@link #getEvents() <em>Events</em>}' containment reference list.
42 * <!-- begin-user-doc --> 41 * <!-- begin-user-doc -->
@@ -45,7 +44,7 @@ public class FaultTreeImpl extends MinimalEObjectImpl.Container implements Fault
45 * @generated 44 * @generated
46 * @ordered 45 * @ordered
47 */ 46 */
48 protected EList<Event> events; 47 protected EList<RandomEvent> events;
49 48
50 /** 49 /**
51 * The cached value of the '{@link #getTopEvent() <em>Top Event</em>}' reference. 50 * The cached value of the '{@link #getTopEvent() <em>Top Event</em>}' reference.
@@ -55,7 +54,7 @@ public class FaultTreeImpl extends MinimalEObjectImpl.Container implements Fault
55 * @generated 54 * @generated
56 * @ordered 55 * @ordered
57 */ 56 */
58 protected Event topEvent; 57 protected RandomEvent topEvent;
59 58
60 /** 59 /**
61 * <!-- begin-user-doc --> 60 * <!-- begin-user-doc -->
@@ -82,9 +81,9 @@ public class FaultTreeImpl extends MinimalEObjectImpl.Container implements Fault
82 * @generated 81 * @generated
83 */ 82 */
84 @Override 83 @Override
85 public EList<Event> getEvents() { 84 public EList<RandomEvent> getEvents() {
86 if (events == null) { 85 if (events == null) {
87 events = new EObjectContainmentEList<Event>(Event.class, this, FtPackage.FAULT_TREE__EVENTS); 86 events = new EObjectContainmentEList<RandomEvent>(RandomEvent.class, this, FtPackage.FAULT_TREE__EVENTS);
88 } 87 }
89 return events; 88 return events;
90 } 89 }
@@ -95,10 +94,10 @@ public class FaultTreeImpl extends MinimalEObjectImpl.Container implements Fault
95 * @generated 94 * @generated
96 */ 95 */
97 @Override 96 @Override
98 public Event getTopEvent() { 97 public RandomEvent getTopEvent() {
99 if (topEvent != null && topEvent.eIsProxy()) { 98 if (topEvent != null && topEvent.eIsProxy()) {
100 InternalEObject oldTopEvent = (InternalEObject)topEvent; 99 InternalEObject oldTopEvent = (InternalEObject)topEvent;
101 topEvent = (Event)eResolveProxy(oldTopEvent); 100 topEvent = (RandomEvent)eResolveProxy(oldTopEvent);
102 if (topEvent != oldTopEvent) { 101 if (topEvent != oldTopEvent) {
103 if (eNotificationRequired()) 102 if (eNotificationRequired())
104 eNotify(new ENotificationImpl(this, Notification.RESOLVE, FtPackage.FAULT_TREE__TOP_EVENT, oldTopEvent, topEvent)); 103 eNotify(new ENotificationImpl(this, Notification.RESOLVE, FtPackage.FAULT_TREE__TOP_EVENT, oldTopEvent, topEvent));
@@ -112,7 +111,7 @@ public class FaultTreeImpl extends MinimalEObjectImpl.Container implements Fault
112 * <!-- end-user-doc --> 111 * <!-- end-user-doc -->
113 * @generated 112 * @generated
114 */ 113 */
115 public Event basicGetTopEvent() { 114 public RandomEvent basicGetTopEvent() {
116 return topEvent; 115 return topEvent;
117 } 116 }
118 117
@@ -122,8 +121,8 @@ public class FaultTreeImpl extends MinimalEObjectImpl.Container implements Fault
122 * @generated 121 * @generated
123 */ 122 */
124 @Override 123 @Override
125 public void setTopEvent(Event newTopEvent) { 124 public void setTopEvent(RandomEvent newTopEvent) {
126 Event oldTopEvent = topEvent; 125 RandomEvent oldTopEvent = topEvent;
127 topEvent = newTopEvent; 126 topEvent = newTopEvent;
128 if (eNotificationRequired()) 127 if (eNotificationRequired())
129 eNotify(new ENotificationImpl(this, Notification.SET, FtPackage.FAULT_TREE__TOP_EVENT, oldTopEvent, topEvent)); 128 eNotify(new ENotificationImpl(this, Notification.SET, FtPackage.FAULT_TREE__TOP_EVENT, oldTopEvent, topEvent));
@@ -171,10 +170,10 @@ public class FaultTreeImpl extends MinimalEObjectImpl.Container implements Fault
171 switch (featureID) { 170 switch (featureID) {
172 case FtPackage.FAULT_TREE__EVENTS: 171 case FtPackage.FAULT_TREE__EVENTS:
173 getEvents().clear(); 172 getEvents().clear();
174 getEvents().addAll((Collection<? extends Event>)newValue); 173 getEvents().addAll((Collection<? extends RandomEvent>)newValue);
175 return; 174 return;
176 case FtPackage.FAULT_TREE__TOP_EVENT: 175 case FtPackage.FAULT_TREE__TOP_EVENT:
177 setTopEvent((Event)newValue); 176 setTopEvent((RandomEvent)newValue);
178 return; 177 return;
179 } 178 }
180 super.eSet(featureID, newValue); 179 super.eSet(featureID, newValue);
@@ -192,7 +191,7 @@ public class FaultTreeImpl extends MinimalEObjectImpl.Container implements Fault
192 getEvents().clear(); 191 getEvents().clear();
193 return; 192 return;
194 case FtPackage.FAULT_TREE__TOP_EVENT: 193 case FtPackage.FAULT_TREE__TOP_EVENT:
195 setTopEvent((Event)null); 194 setTopEvent((RandomEvent)null);
196 return; 195 return;
197 } 196 }
198 super.eUnset(featureID); 197 super.eUnset(featureID);
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FtFactoryImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FtFactoryImpl.java
index 59364443..126abed8 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FtFactoryImpl.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FtFactoryImpl.java
@@ -63,6 +63,8 @@ public class FtFactoryImpl extends EFactoryImpl implements FtFactory {
63 case FtPackage.AND_GATE: return createAndGate(); 63 case FtPackage.AND_GATE: return createAndGate();
64 case FtPackage.OR_GATE: return createOrGate(); 64 case FtPackage.OR_GATE: return createOrGate();
65 case FtPackage.KOF_MGATE: return createKOfMGate(); 65 case FtPackage.KOF_MGATE: return createKOfMGate();
66 case FtPackage.CONSTANT_MODEL: return createConstantModel();
67 case FtPackage.CONSTANT_EVENT: return createConstantEvent();
66 default: 68 default:
67 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); 69 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
68 } 70 }
@@ -151,6 +153,28 @@ public class FtFactoryImpl extends EFactoryImpl implements FtFactory {
151 * @generated 153 * @generated
152 */ 154 */
153 @Override 155 @Override
156 public ConstantModel createConstantModel() {
157 ConstantModelImpl constantModel = new ConstantModelImpl();
158 return constantModel;
159 }
160
161 /**
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @generated
165 */
166 @Override
167 public ConstantEvent createConstantEvent() {
168 ConstantEventImpl constantEvent = new ConstantEventImpl();
169 return constantEvent;
170 }
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 @Override
154 public FtPackage getFtPackage() { 178 public FtPackage getFtPackage() {
155 return (FtPackage)getEPackage(); 179 return (FtPackage)getEPackage();
156 } 180 }
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FtPackageImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FtPackageImpl.java
index 27ff09df..cc2c0617 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FtPackageImpl.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/FtPackageImpl.java
@@ -5,6 +5,8 @@ package hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl;
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.AndGate; 5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.AndGate;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.BasicEvent; 6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.BasicEvent;
7import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantDistribution; 7import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantDistribution;
8import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent;
9import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel;
8import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Distribution; 10import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Distribution;
9import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event; 11import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event;
10import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ExponentialDistribution; 12import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ExponentialDistribution;
@@ -14,6 +16,8 @@ import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage;
14import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Gate; 16import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Gate;
15import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.KOfMGate; 17import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.KOfMGate;
16import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.OrGate; 18import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.OrGate;
19import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent;
20import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ReliabilityModel;
17 21
18import org.eclipse.emf.ecore.EAttribute; 22import org.eclipse.emf.ecore.EAttribute;
19import org.eclipse.emf.ecore.EClass; 23import org.eclipse.emf.ecore.EClass;
@@ -41,7 +45,7 @@ public class FtPackageImpl extends EPackageImpl implements FtPackage {
41 * <!-- end-user-doc --> 45 * <!-- end-user-doc -->
42 * @generated 46 * @generated
43 */ 47 */
44 private EClass eventEClass = null; 48 private EClass randomEventEClass = null;
45 49
46 /** 50 /**
47 * <!-- begin-user-doc --> 51 * <!-- begin-user-doc -->
@@ -100,6 +104,34 @@ public class FtPackageImpl extends EPackageImpl implements FtPackage {
100 private EClass kOfMGateEClass = null; 104 private EClass kOfMGateEClass = null;
101 105
102 /** 106 /**
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 */
111 private EClass reliabilityModelEClass = null;
112
113 /**
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @generated
117 */
118 private EClass constantModelEClass = null;
119
120 /**
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 private EClass eventEClass = null;
126
127 /**
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 */
132 private EClass constantEventEClass = null;
133
134 /**
103 * Creates an instance of the model <b>Package</b>, registered with 135 * Creates an instance of the model <b>Package</b>, registered with
104 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package 136 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
105 * package URI value. 137 * package URI value.
@@ -196,8 +228,8 @@ public class FtPackageImpl extends EPackageImpl implements FtPackage {
196 * @generated 228 * @generated
197 */ 229 */
198 @Override 230 @Override
199 public EClass getEvent() { 231 public EClass getRandomEvent() {
200 return eventEClass; 232 return randomEventEClass;
201 } 233 }
202 234
203 /** 235 /**
@@ -206,8 +238,8 @@ public class FtPackageImpl extends EPackageImpl implements FtPackage {
206 * @generated 238 * @generated
207 */ 239 */
208 @Override 240 @Override
209 public EAttribute getEvent_Name() { 241 public EAttribute getRandomEvent_Name() {
210 return (EAttribute)eventEClass.getEStructuralFeatures().get(0); 242 return (EAttribute)randomEventEClass.getEStructuralFeatures().get(0);
211 } 243 }
212 244
213 /** 245 /**
@@ -346,8 +378,58 @@ public class FtPackageImpl extends EPackageImpl implements FtPackage {
346 * @generated 378 * @generated
347 */ 379 */
348 @Override 380 @Override
349 public EAttribute getKOfMGate_M() { 381 public EClass getReliabilityModel() {
350 return (EAttribute)kOfMGateEClass.getEStructuralFeatures().get(1); 382 return reliabilityModelEClass;
383 }
384
385 /**
386 * <!-- begin-user-doc -->
387 * <!-- end-user-doc -->
388 * @generated
389 */
390 @Override
391 public EClass getConstantModel() {
392 return constantModelEClass;
393 }
394
395 /**
396 * <!-- begin-user-doc -->
397 * <!-- end-user-doc -->
398 * @generated
399 */
400 @Override
401 public EAttribute getConstantModel_Failed() {
402 return (EAttribute)constantModelEClass.getEStructuralFeatures().get(0);
403 }
404
405 /**
406 * <!-- begin-user-doc -->
407 * <!-- end-user-doc -->
408 * @generated
409 */
410 @Override
411 public EClass getEvent() {
412 return eventEClass;
413 }
414
415 /**
416 * <!-- begin-user-doc -->
417 * <!-- end-user-doc -->
418 * @generated
419 */
420 @Override
421 public EClass getConstantEvent() {
422 return constantEventEClass;
423 }
424
425 /**
426 * <!-- begin-user-doc -->
427 * <!-- end-user-doc -->
428 * @generated
429 */
430 @Override
431 public EAttribute getConstantEvent_Failed() {
432 return (EAttribute)constantEventEClass.getEStructuralFeatures().get(0);
351 } 433 }
352 434
353 /** 435 /**
@@ -383,8 +465,8 @@ public class FtPackageImpl extends EPackageImpl implements FtPackage {
383 createEReference(faultTreeEClass, FAULT_TREE__EVENTS); 465 createEReference(faultTreeEClass, FAULT_TREE__EVENTS);
384 createEReference(faultTreeEClass, FAULT_TREE__TOP_EVENT); 466 createEReference(faultTreeEClass, FAULT_TREE__TOP_EVENT);
385 467
386 eventEClass = createEClass(EVENT); 468 randomEventEClass = createEClass(RANDOM_EVENT);
387 createEAttribute(eventEClass, EVENT__NAME); 469 createEAttribute(randomEventEClass, RANDOM_EVENT__NAME);
388 470
389 basicEventEClass = createEClass(BASIC_EVENT); 471 basicEventEClass = createEClass(BASIC_EVENT);
390 createEReference(basicEventEClass, BASIC_EVENT__DISTRIBUTION); 472 createEReference(basicEventEClass, BASIC_EVENT__DISTRIBUTION);
@@ -406,7 +488,16 @@ public class FtPackageImpl extends EPackageImpl implements FtPackage {
406 488
407 kOfMGateEClass = createEClass(KOF_MGATE); 489 kOfMGateEClass = createEClass(KOF_MGATE);
408 createEAttribute(kOfMGateEClass, KOF_MGATE__K); 490 createEAttribute(kOfMGateEClass, KOF_MGATE__K);
409 createEAttribute(kOfMGateEClass, KOF_MGATE__M); 491
492 reliabilityModelEClass = createEClass(RELIABILITY_MODEL);
493
494 constantModelEClass = createEClass(CONSTANT_MODEL);
495 createEAttribute(constantModelEClass, CONSTANT_MODEL__FAILED);
496
497 eventEClass = createEClass(EVENT);
498
499 constantEventEClass = createEClass(CONSTANT_EVENT);
500 createEAttribute(constantEventEClass, CONSTANT_EVENT__FAILED);
410 } 501 }
411 502
412 /** 503 /**
@@ -437,27 +528,31 @@ public class FtPackageImpl extends EPackageImpl implements FtPackage {
437 // Set bounds for type parameters 528 // Set bounds for type parameters
438 529
439 // Add supertypes to classes 530 // Add supertypes to classes
440 basicEventEClass.getESuperTypes().add(this.getEvent()); 531 faultTreeEClass.getESuperTypes().add(this.getReliabilityModel());
441 gateEClass.getESuperTypes().add(this.getEvent()); 532 randomEventEClass.getESuperTypes().add(this.getEvent());
533 basicEventEClass.getESuperTypes().add(this.getRandomEvent());
534 gateEClass.getESuperTypes().add(this.getRandomEvent());
442 constantDistributionEClass.getESuperTypes().add(this.getDistribution()); 535 constantDistributionEClass.getESuperTypes().add(this.getDistribution());
443 exponentialDistributionEClass.getESuperTypes().add(this.getDistribution()); 536 exponentialDistributionEClass.getESuperTypes().add(this.getDistribution());
444 andGateEClass.getESuperTypes().add(this.getGate()); 537 andGateEClass.getESuperTypes().add(this.getGate());
445 orGateEClass.getESuperTypes().add(this.getGate()); 538 orGateEClass.getESuperTypes().add(this.getGate());
446 kOfMGateEClass.getESuperTypes().add(this.getGate()); 539 kOfMGateEClass.getESuperTypes().add(this.getGate());
540 constantModelEClass.getESuperTypes().add(this.getReliabilityModel());
541 constantEventEClass.getESuperTypes().add(this.getEvent());
447 542
448 // Initialize classes, features, and operations; add parameters 543 // Initialize classes, features, and operations; add parameters
449 initEClass(faultTreeEClass, FaultTree.class, "FaultTree", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 544 initEClass(faultTreeEClass, FaultTree.class, "FaultTree", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
450 initEReference(getFaultTree_Events(), this.getEvent(), null, "events", null, 0, -1, FaultTree.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 545 initEReference(getFaultTree_Events(), this.getRandomEvent(), null, "events", null, 0, -1, FaultTree.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
451 initEReference(getFaultTree_TopEvent(), this.getEvent(), null, "topEvent", null, 1, 1, FaultTree.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 546 initEReference(getFaultTree_TopEvent(), this.getRandomEvent(), null, "topEvent", null, 1, 1, FaultTree.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
452 547
453 initEClass(eventEClass, Event.class, "Event", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 548 initEClass(randomEventEClass, RandomEvent.class, "RandomEvent", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
454 initEAttribute(getEvent_Name(), ecorePackage.getEString(), "name", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 549 initEAttribute(getRandomEvent_Name(), ecorePackage.getEString(), "name", null, 0, 1, RandomEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
455 550
456 initEClass(basicEventEClass, BasicEvent.class, "BasicEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 551 initEClass(basicEventEClass, BasicEvent.class, "BasicEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
457 initEReference(getBasicEvent_Distribution(), this.getDistribution(), null, "distribution", null, 1, 1, BasicEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 552 initEReference(getBasicEvent_Distribution(), this.getDistribution(), null, "distribution", null, 1, 1, BasicEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
458 553
459 initEClass(gateEClass, Gate.class, "Gate", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 554 initEClass(gateEClass, Gate.class, "Gate", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
460 initEReference(getGate_InputEvents(), this.getEvent(), null, "inputEvents", null, 0, -1, Gate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 555 initEReference(getGate_InputEvents(), this.getRandomEvent(), null, "inputEvents", null, 2, -1, Gate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
461 556
462 initEClass(distributionEClass, Distribution.class, "Distribution", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 557 initEClass(distributionEClass, Distribution.class, "Distribution", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
463 558
@@ -473,7 +568,16 @@ public class FtPackageImpl extends EPackageImpl implements FtPackage {
473 568
474 initEClass(kOfMGateEClass, KOfMGate.class, "KOfMGate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 569 initEClass(kOfMGateEClass, KOfMGate.class, "KOfMGate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
475 initEAttribute(getKOfMGate_K(), ecorePackage.getEInt(), "k", null, 0, 1, KOfMGate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 570 initEAttribute(getKOfMGate_K(), ecorePackage.getEInt(), "k", null, 0, 1, KOfMGate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
476 initEAttribute(getKOfMGate_M(), ecorePackage.getEInt(), "m", null, 0, 1, KOfMGate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 571
572 initEClass(reliabilityModelEClass, ReliabilityModel.class, "ReliabilityModel", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
573
574 initEClass(constantModelEClass, ConstantModel.class, "ConstantModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
575 initEAttribute(getConstantModel_Failed(), ecorePackage.getEBoolean(), "failed", null, 0, 1, ConstantModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
576
577 initEClass(eventEClass, Event.class, "Event", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
578
579 initEClass(constantEventEClass, ConstantEvent.class, "ConstantEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
580 initEAttribute(getConstantEvent_Failed(), ecorePackage.getEBoolean(), "failed", null, 0, 1, ConstantEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
477 581
478 // Create resource 582 // Create resource
479 createResource(eNS_URI); 583 createResource(eNS_URI);
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/GateImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/GateImpl.java
index ae6d5a8d..9e753a09 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/GateImpl.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/GateImpl.java
@@ -2,9 +2,9 @@
2 */ 2 */
3package hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl; 3package hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl;
4 4
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage; 5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage;
7import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Gate; 6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Gate;
7import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent;
8 8
9import java.util.Collection; 9import java.util.Collection;
10 10
@@ -27,7 +27,7 @@ import org.eclipse.emf.ecore.util.EObjectResolvingEList;
27 * 27 *
28 * @generated 28 * @generated
29 */ 29 */
30public abstract class GateImpl extends EventImpl implements Gate { 30public abstract class GateImpl extends RandomEventImpl implements Gate {
31 /** 31 /**
32 * The cached value of the '{@link #getInputEvents() <em>Input Events</em>}' reference list. 32 * The cached value of the '{@link #getInputEvents() <em>Input Events</em>}' reference list.
33 * <!-- begin-user-doc --> 33 * <!-- begin-user-doc -->
@@ -36,7 +36,7 @@ public abstract class GateImpl extends EventImpl implements Gate {
36 * @generated 36 * @generated
37 * @ordered 37 * @ordered
38 */ 38 */
39 protected EList<Event> inputEvents; 39 protected EList<RandomEvent> inputEvents;
40 40
41 /** 41 /**
42 * <!-- begin-user-doc --> 42 * <!-- begin-user-doc -->
@@ -63,9 +63,9 @@ public abstract class GateImpl extends EventImpl implements Gate {
63 * @generated 63 * @generated
64 */ 64 */
65 @Override 65 @Override
66 public EList<Event> getInputEvents() { 66 public EList<RandomEvent> getInputEvents() {
67 if (inputEvents == null) { 67 if (inputEvents == null) {
68 inputEvents = new EObjectResolvingEList<Event>(Event.class, this, FtPackage.GATE__INPUT_EVENTS); 68 inputEvents = new EObjectResolvingEList<RandomEvent>(RandomEvent.class, this, FtPackage.GATE__INPUT_EVENTS);
69 } 69 }
70 return inputEvents; 70 return inputEvents;
71 } 71 }
@@ -95,7 +95,7 @@ public abstract class GateImpl extends EventImpl implements Gate {
95 switch (featureID) { 95 switch (featureID) {
96 case FtPackage.GATE__INPUT_EVENTS: 96 case FtPackage.GATE__INPUT_EVENTS:
97 getInputEvents().clear(); 97 getInputEvents().clear();
98 getInputEvents().addAll((Collection<? extends Event>)newValue); 98 getInputEvents().addAll((Collection<? extends RandomEvent>)newValue);
99 return; 99 return;
100 } 100 }
101 super.eSet(featureID, newValue); 101 super.eSet(featureID, newValue);
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/KOfMGateImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/KOfMGateImpl.java
index 0f0dd205..47ca936b 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/KOfMGateImpl.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/KOfMGateImpl.java
@@ -20,7 +20,6 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
20 * </p> 20 * </p>
21 * <ul> 21 * <ul>
22 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.KOfMGateImpl#getK <em>K</em>}</li> 22 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.KOfMGateImpl#getK <em>K</em>}</li>
23 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.KOfMGateImpl#getM <em>M</em>}</li>
24 * </ul> 23 * </ul>
25 * 24 *
26 * @generated 25 * @generated
@@ -47,26 +46,6 @@ public class KOfMGateImpl extends GateImpl implements KOfMGate {
47 protected int k = K_EDEFAULT; 46 protected int k = K_EDEFAULT;
48 47
49 /** 48 /**
50 * The default value of the '{@link #getM() <em>M</em>}' attribute.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @see #getM()
54 * @generated
55 * @ordered
56 */
57 protected static final int M_EDEFAULT = 0;
58
59 /**
60 * The cached value of the '{@link #getM() <em>M</em>}' attribute.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see #getM()
64 * @generated
65 * @ordered
66 */
67 protected int m = M_EDEFAULT;
68
69 /**
70 * <!-- begin-user-doc --> 49 * <!-- begin-user-doc -->
71 * <!-- end-user-doc --> 50 * <!-- end-user-doc -->
72 * @generated 51 * @generated
@@ -114,35 +93,10 @@ public class KOfMGateImpl extends GateImpl implements KOfMGate {
114 * @generated 93 * @generated
115 */ 94 */
116 @Override 95 @Override
117 public int getM() {
118 return m;
119 }
120
121 /**
122 * <!-- begin-user-doc -->
123 * <!-- end-user-doc -->
124 * @generated
125 */
126 @Override
127 public void setM(int newM) {
128 int oldM = m;
129 m = newM;
130 if (eNotificationRequired())
131 eNotify(new ENotificationImpl(this, Notification.SET, FtPackage.KOF_MGATE__M, oldM, m));
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @Override
140 public Object eGet(int featureID, boolean resolve, boolean coreType) { 96 public Object eGet(int featureID, boolean resolve, boolean coreType) {
141 switch (featureID) { 97 switch (featureID) {
142 case FtPackage.KOF_MGATE__K: 98 case FtPackage.KOF_MGATE__K:
143 return getK(); 99 return getK();
144 case FtPackage.KOF_MGATE__M:
145 return getM();
146 } 100 }
147 return super.eGet(featureID, resolve, coreType); 101 return super.eGet(featureID, resolve, coreType);
148 } 102 }
@@ -158,9 +112,6 @@ public class KOfMGateImpl extends GateImpl implements KOfMGate {
158 case FtPackage.KOF_MGATE__K: 112 case FtPackage.KOF_MGATE__K:
159 setK((Integer)newValue); 113 setK((Integer)newValue);
160 return; 114 return;
161 case FtPackage.KOF_MGATE__M:
162 setM((Integer)newValue);
163 return;
164 } 115 }
165 super.eSet(featureID, newValue); 116 super.eSet(featureID, newValue);
166 } 117 }
@@ -176,9 +127,6 @@ public class KOfMGateImpl extends GateImpl implements KOfMGate {
176 case FtPackage.KOF_MGATE__K: 127 case FtPackage.KOF_MGATE__K:
177 setK(K_EDEFAULT); 128 setK(K_EDEFAULT);
178 return; 129 return;
179 case FtPackage.KOF_MGATE__M:
180 setM(M_EDEFAULT);
181 return;
182 } 130 }
183 super.eUnset(featureID); 131 super.eUnset(featureID);
184 } 132 }
@@ -193,8 +141,6 @@ public class KOfMGateImpl extends GateImpl implements KOfMGate {
193 switch (featureID) { 141 switch (featureID) {
194 case FtPackage.KOF_MGATE__K: 142 case FtPackage.KOF_MGATE__K:
195 return k != K_EDEFAULT; 143 return k != K_EDEFAULT;
196 case FtPackage.KOF_MGATE__M:
197 return m != M_EDEFAULT;
198 } 144 }
199 return super.eIsSet(featureID); 145 return super.eIsSet(featureID);
200 } 146 }
@@ -211,8 +157,6 @@ public class KOfMGateImpl extends GateImpl implements KOfMGate {
211 StringBuilder result = new StringBuilder(super.toString()); 157 StringBuilder result = new StringBuilder(super.toString());
212 result.append(" (k: "); 158 result.append(" (k: ");
213 result.append(k); 159 result.append(k);
214 result.append(", m: ");
215 result.append(m);
216 result.append(')'); 160 result.append(')');
217 return result.toString(); 161 return result.toString();
218 } 162 }
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/RandomEventImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/RandomEventImpl.java
new file mode 100644
index 00000000..4f9eda56
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/RandomEventImpl.java
@@ -0,0 +1,164 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl;
4
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent;
7
8import org.eclipse.emf.common.notify.Notification;
9
10import org.eclipse.emf.ecore.EClass;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Random Event</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl.RandomEventImpl#getName <em>Name</em>}</li>
23 * </ul>
24 *
25 * @generated
26 */
27public abstract class RandomEventImpl extends EventImpl implements RandomEvent {
28 /**
29 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @see #getName()
33 * @generated
34 * @ordered
35 */
36 protected static final String NAME_EDEFAULT = null;
37
38 /**
39 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @see #getName()
43 * @generated
44 * @ordered
45 */
46 protected String name = NAME_EDEFAULT;
47
48 /**
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @generated
52 */
53 protected RandomEventImpl() {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass() {
64 return FtPackage.Literals.RANDOM_EVENT;
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 @Override
73 public String getName() {
74 return name;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 @Override
83 public void setName(String newName) {
84 String oldName = name;
85 name = newName;
86 if (eNotificationRequired())
87 eNotify(new ENotificationImpl(this, Notification.SET, FtPackage.RANDOM_EVENT__NAME, oldName, name));
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 @Override
96 public Object eGet(int featureID, boolean resolve, boolean coreType) {
97 switch (featureID) {
98 case FtPackage.RANDOM_EVENT__NAME:
99 return getName();
100 }
101 return super.eGet(featureID, resolve, coreType);
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 @Override
110 public void eSet(int featureID, Object newValue) {
111 switch (featureID) {
112 case FtPackage.RANDOM_EVENT__NAME:
113 setName((String)newValue);
114 return;
115 }
116 super.eSet(featureID, newValue);
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public void eUnset(int featureID) {
126 switch (featureID) {
127 case FtPackage.RANDOM_EVENT__NAME:
128 setName(NAME_EDEFAULT);
129 return;
130 }
131 super.eUnset(featureID);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @Override
140 public boolean eIsSet(int featureID) {
141 switch (featureID) {
142 case FtPackage.RANDOM_EVENT__NAME:
143 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
144 }
145 return super.eIsSet(featureID);
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public String toString() {
155 if (eIsProxy()) return super.toString();
156
157 StringBuilder result = new StringBuilder(super.toString());
158 result.append(" (name: ");
159 result.append(name);
160 result.append(')');
161 return result.toString();
162 }
163
164} //RandomEventImpl
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/ReliabilityModelImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/ReliabilityModelImpl.java
new file mode 100644
index 00000000..e3d0eec1
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/impl/ReliabilityModelImpl.java
@@ -0,0 +1,39 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.faulttree.model.ft.impl;
4
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtPackage;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ReliabilityModel;
7
8import org.eclipse.emf.ecore.EClass;
9
10import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
11
12/**
13 * <!-- begin-user-doc -->
14 * An implementation of the model object '<em><b>Reliability Model</b></em>'.
15 * <!-- end-user-doc -->
16 *
17 * @generated
18 */
19public abstract class ReliabilityModelImpl extends MinimalEObjectImpl.Container implements ReliabilityModel {
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected ReliabilityModelImpl() {
26 super();
27 }
28
29 /**
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 @Override
35 protected EClass eStaticClass() {
36 return FtPackage.Literals.RELIABILITY_MODEL;
37 }
38
39} //ReliabilityModelImpl
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/util/FtAdapterFactory.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/util/FtAdapterFactory.java
index 17daaad3..ba7545f4 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/util/FtAdapterFactory.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/util/FtAdapterFactory.java
@@ -72,8 +72,8 @@ public class FtAdapterFactory extends AdapterFactoryImpl {
72 return createFaultTreeAdapter(); 72 return createFaultTreeAdapter();
73 } 73 }
74 @Override 74 @Override
75 public Adapter caseEvent(Event object) { 75 public Adapter caseRandomEvent(RandomEvent object) {
76 return createEventAdapter(); 76 return createRandomEventAdapter();
77 } 77 }
78 @Override 78 @Override
79 public Adapter caseBasicEvent(BasicEvent object) { 79 public Adapter caseBasicEvent(BasicEvent object) {
@@ -108,6 +108,22 @@ public class FtAdapterFactory extends AdapterFactoryImpl {
108 return createKOfMGateAdapter(); 108 return createKOfMGateAdapter();
109 } 109 }
110 @Override 110 @Override
111 public Adapter caseReliabilityModel(ReliabilityModel object) {
112 return createReliabilityModelAdapter();
113 }
114 @Override
115 public Adapter caseConstantModel(ConstantModel object) {
116 return createConstantModelAdapter();
117 }
118 @Override
119 public Adapter caseEvent(Event object) {
120 return createEventAdapter();
121 }
122 @Override
123 public Adapter caseConstantEvent(ConstantEvent object) {
124 return createConstantEventAdapter();
125 }
126 @Override
111 public Adapter defaultCase(EObject object) { 127 public Adapter defaultCase(EObject object) {
112 return createEObjectAdapter(); 128 return createEObjectAdapter();
113 } 129 }
@@ -142,16 +158,16 @@ public class FtAdapterFactory extends AdapterFactoryImpl {
142 } 158 }
143 159
144 /** 160 /**
145 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event <em>Event</em>}'. 161 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent <em>Random Event</em>}'.
146 * <!-- begin-user-doc --> 162 * <!-- begin-user-doc -->
147 * This default implementation returns null so that we can easily ignore cases; 163 * This default implementation returns null so that we can easily ignore cases;
148 * it's useful to ignore a case when inheritance will catch all the cases anyway. 164 * it's useful to ignore a case when inheritance will catch all the cases anyway.
149 * <!-- end-user-doc --> 165 * <!-- end-user-doc -->
150 * @return the new adapter. 166 * @return the new adapter.
151 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event 167 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent
152 * @generated 168 * @generated
153 */ 169 */
154 public Adapter createEventAdapter() { 170 public Adapter createRandomEventAdapter() {
155 return null; 171 return null;
156 } 172 }
157 173
@@ -268,6 +284,62 @@ public class FtAdapterFactory extends AdapterFactoryImpl {
268 } 284 }
269 285
270 /** 286 /**
287 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ReliabilityModel <em>Reliability Model</em>}'.
288 * <!-- begin-user-doc -->
289 * This default implementation returns null so that we can easily ignore cases;
290 * it's useful to ignore a case when inheritance will catch all the cases anyway.
291 * <!-- end-user-doc -->
292 * @return the new adapter.
293 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ReliabilityModel
294 * @generated
295 */
296 public Adapter createReliabilityModelAdapter() {
297 return null;
298 }
299
300 /**
301 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel <em>Constant Model</em>}'.
302 * <!-- begin-user-doc -->
303 * This default implementation returns null so that we can easily ignore cases;
304 * it's useful to ignore a case when inheritance will catch all the cases anyway.
305 * <!-- end-user-doc -->
306 * @return the new adapter.
307 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel
308 * @generated
309 */
310 public Adapter createConstantModelAdapter() {
311 return null;
312 }
313
314 /**
315 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event <em>Event</em>}'.
316 * <!-- begin-user-doc -->
317 * This default implementation returns null so that we can easily ignore cases;
318 * it's useful to ignore a case when inheritance will catch all the cases anyway.
319 * <!-- end-user-doc -->
320 * @return the new adapter.
321 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event
322 * @generated
323 */
324 public Adapter createEventAdapter() {
325 return null;
326 }
327
328 /**
329 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent <em>Constant Event</em>}'.
330 * <!-- begin-user-doc -->
331 * This default implementation returns null so that we can easily ignore cases;
332 * it's useful to ignore a case when inheritance will catch all the cases anyway.
333 * <!-- end-user-doc -->
334 * @return the new adapter.
335 * @see hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent
336 * @generated
337 */
338 public Adapter createConstantEventAdapter() {
339 return null;
340 }
341
342 /**
271 * Creates a new adapter for the default case. 343 * Creates a new adapter for the default case.
272 * <!-- begin-user-doc --> 344 * <!-- begin-user-doc -->
273 * This default implementation returns null. 345 * This default implementation returns null.
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/util/FtSwitch.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/util/FtSwitch.java
index b1846705..1da4f8e8 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/util/FtSwitch.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/ft/util/FtSwitch.java
@@ -69,18 +69,21 @@ public class FtSwitch<T> extends Switch<T> {
69 case FtPackage.FAULT_TREE: { 69 case FtPackage.FAULT_TREE: {
70 FaultTree faultTree = (FaultTree)theEObject; 70 FaultTree faultTree = (FaultTree)theEObject;
71 T result = caseFaultTree(faultTree); 71 T result = caseFaultTree(faultTree);
72 if (result == null) result = caseReliabilityModel(faultTree);
72 if (result == null) result = defaultCase(theEObject); 73 if (result == null) result = defaultCase(theEObject);
73 return result; 74 return result;
74 } 75 }
75 case FtPackage.EVENT: { 76 case FtPackage.RANDOM_EVENT: {
76 Event event = (Event)theEObject; 77 RandomEvent randomEvent = (RandomEvent)theEObject;
77 T result = caseEvent(event); 78 T result = caseRandomEvent(randomEvent);
79 if (result == null) result = caseEvent(randomEvent);
78 if (result == null) result = defaultCase(theEObject); 80 if (result == null) result = defaultCase(theEObject);
79 return result; 81 return result;
80 } 82 }
81 case FtPackage.BASIC_EVENT: { 83 case FtPackage.BASIC_EVENT: {
82 BasicEvent basicEvent = (BasicEvent)theEObject; 84 BasicEvent basicEvent = (BasicEvent)theEObject;
83 T result = caseBasicEvent(basicEvent); 85 T result = caseBasicEvent(basicEvent);
86 if (result == null) result = caseRandomEvent(basicEvent);
84 if (result == null) result = caseEvent(basicEvent); 87 if (result == null) result = caseEvent(basicEvent);
85 if (result == null) result = defaultCase(theEObject); 88 if (result == null) result = defaultCase(theEObject);
86 return result; 89 return result;
@@ -88,6 +91,7 @@ public class FtSwitch<T> extends Switch<T> {
88 case FtPackage.GATE: { 91 case FtPackage.GATE: {
89 Gate gate = (Gate)theEObject; 92 Gate gate = (Gate)theEObject;
90 T result = caseGate(gate); 93 T result = caseGate(gate);
94 if (result == null) result = caseRandomEvent(gate);
91 if (result == null) result = caseEvent(gate); 95 if (result == null) result = caseEvent(gate);
92 if (result == null) result = defaultCase(theEObject); 96 if (result == null) result = defaultCase(theEObject);
93 return result; 97 return result;
@@ -116,6 +120,7 @@ public class FtSwitch<T> extends Switch<T> {
116 AndGate andGate = (AndGate)theEObject; 120 AndGate andGate = (AndGate)theEObject;
117 T result = caseAndGate(andGate); 121 T result = caseAndGate(andGate);
118 if (result == null) result = caseGate(andGate); 122 if (result == null) result = caseGate(andGate);
123 if (result == null) result = caseRandomEvent(andGate);
119 if (result == null) result = caseEvent(andGate); 124 if (result == null) result = caseEvent(andGate);
120 if (result == null) result = defaultCase(theEObject); 125 if (result == null) result = defaultCase(theEObject);
121 return result; 126 return result;
@@ -124,6 +129,7 @@ public class FtSwitch<T> extends Switch<T> {
124 OrGate orGate = (OrGate)theEObject; 129 OrGate orGate = (OrGate)theEObject;
125 T result = caseOrGate(orGate); 130 T result = caseOrGate(orGate);
126 if (result == null) result = caseGate(orGate); 131 if (result == null) result = caseGate(orGate);
132 if (result == null) result = caseRandomEvent(orGate);
127 if (result == null) result = caseEvent(orGate); 133 if (result == null) result = caseEvent(orGate);
128 if (result == null) result = defaultCase(theEObject); 134 if (result == null) result = defaultCase(theEObject);
129 return result; 135 return result;
@@ -132,10 +138,37 @@ public class FtSwitch<T> extends Switch<T> {
132 KOfMGate kOfMGate = (KOfMGate)theEObject; 138 KOfMGate kOfMGate = (KOfMGate)theEObject;
133 T result = caseKOfMGate(kOfMGate); 139 T result = caseKOfMGate(kOfMGate);
134 if (result == null) result = caseGate(kOfMGate); 140 if (result == null) result = caseGate(kOfMGate);
141 if (result == null) result = caseRandomEvent(kOfMGate);
135 if (result == null) result = caseEvent(kOfMGate); 142 if (result == null) result = caseEvent(kOfMGate);
136 if (result == null) result = defaultCase(theEObject); 143 if (result == null) result = defaultCase(theEObject);
137 return result; 144 return result;
138 } 145 }
146 case FtPackage.RELIABILITY_MODEL: {
147 ReliabilityModel reliabilityModel = (ReliabilityModel)theEObject;
148 T result = caseReliabilityModel(reliabilityModel);
149 if (result == null) result = defaultCase(theEObject);
150 return result;
151 }
152 case FtPackage.CONSTANT_MODEL: {
153 ConstantModel constantModel = (ConstantModel)theEObject;
154 T result = caseConstantModel(constantModel);
155 if (result == null) result = caseReliabilityModel(constantModel);
156 if (result == null) result = defaultCase(theEObject);
157 return result;
158 }
159 case FtPackage.EVENT: {
160 Event event = (Event)theEObject;
161 T result = caseEvent(event);
162 if (result == null) result = defaultCase(theEObject);
163 return result;
164 }
165 case FtPackage.CONSTANT_EVENT: {
166 ConstantEvent constantEvent = (ConstantEvent)theEObject;
167 T result = caseConstantEvent(constantEvent);
168 if (result == null) result = caseEvent(constantEvent);
169 if (result == null) result = defaultCase(theEObject);
170 return result;
171 }
139 default: return defaultCase(theEObject); 172 default: return defaultCase(theEObject);
140 } 173 }
141 } 174 }
@@ -156,17 +189,17 @@ public class FtSwitch<T> extends Switch<T> {
156 } 189 }
157 190
158 /** 191 /**
159 * Returns the result of interpreting the object as an instance of '<em>Event</em>'. 192 * Returns the result of interpreting the object as an instance of '<em>Random Event</em>'.
160 * <!-- begin-user-doc --> 193 * <!-- begin-user-doc -->
161 * This implementation returns null; 194 * This implementation returns null;
162 * returning a non-null result will terminate the switch. 195 * returning a non-null result will terminate the switch.
163 * <!-- end-user-doc --> 196 * <!-- end-user-doc -->
164 * @param object the target of the switch. 197 * @param object the target of the switch.
165 * @return the result of interpreting the object as an instance of '<em>Event</em>'. 198 * @return the result of interpreting the object as an instance of '<em>Random Event</em>'.
166 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 199 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
167 * @generated 200 * @generated
168 */ 201 */
169 public T caseEvent(Event object) { 202 public T caseRandomEvent(RandomEvent object) {
170 return null; 203 return null;
171 } 204 }
172 205
@@ -291,6 +324,66 @@ public class FtSwitch<T> extends Switch<T> {
291 } 324 }
292 325
293 /** 326 /**
327 * Returns the result of interpreting the object as an instance of '<em>Reliability Model</em>'.
328 * <!-- begin-user-doc -->
329 * This implementation returns null;
330 * returning a non-null result will terminate the switch.
331 * <!-- end-user-doc -->
332 * @param object the target of the switch.
333 * @return the result of interpreting the object as an instance of '<em>Reliability Model</em>'.
334 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
335 * @generated
336 */
337 public T caseReliabilityModel(ReliabilityModel object) {
338 return null;
339 }
340
341 /**
342 * Returns the result of interpreting the object as an instance of '<em>Constant Model</em>'.
343 * <!-- begin-user-doc -->
344 * This implementation returns null;
345 * returning a non-null result will terminate the switch.
346 * <!-- end-user-doc -->
347 * @param object the target of the switch.
348 * @return the result of interpreting the object as an instance of '<em>Constant Model</em>'.
349 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
350 * @generated
351 */
352 public T caseConstantModel(ConstantModel object) {
353 return null;
354 }
355
356 /**
357 * Returns the result of interpreting the object as an instance of '<em>Event</em>'.
358 * <!-- begin-user-doc -->
359 * This implementation returns null;
360 * returning a non-null result will terminate the switch.
361 * <!-- end-user-doc -->
362 * @param object the target of the switch.
363 * @return the result of interpreting the object as an instance of '<em>Event</em>'.
364 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
365 * @generated
366 */
367 public T caseEvent(Event object) {
368 return null;
369 }
370
371 /**
372 * Returns the result of interpreting the object as an instance of '<em>Constant Event</em>'.
373 * <!-- begin-user-doc -->
374 * This implementation returns null;
375 * returning a non-null result will terminate the switch.
376 * <!-- end-user-doc -->
377 * @param object the target of the switch.
378 * @return the result of interpreting the object as an instance of '<em>Constant Event</em>'.
379 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
380 * @generated
381 */
382 public T caseConstantEvent(ConstantEvent object) {
383 return null;
384 }
385
386 /**
294 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. 387 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
295 * <!-- begin-user-doc --> 388 * <!-- begin-user-doc -->
296 * This implementation returns null; 389 * This implementation returns null;
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/ft.ecore b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/ft.ecore
index f1f410a7..afe9395e 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/ft.ecore
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/ft.ecore
@@ -2,22 +2,22 @@
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="ft" nsURI="http://www.bme.hu/mit/inf/dslreasoner/faulttree/model/ft" 3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="ft" nsURI="http://www.bme.hu/mit/inf/dslreasoner/faulttree/model/ft"
4 nsPrefix="ft"> 4 nsPrefix="ft">
5 <eClassifiers xsi:type="ecore:EClass" name="FaultTree"> 5 <eClassifiers xsi:type="ecore:EClass" name="FaultTree" eSuperTypes="#//ReliabilityModel">
6 <eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1" 6 <eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1"
7 eType="#//Event" containment="true"/> 7 eType="#//RandomEvent" containment="true"/>
8 <eStructuralFeatures xsi:type="ecore:EReference" name="topEvent" lowerBound="1" 8 <eStructuralFeatures xsi:type="ecore:EReference" name="topEvent" lowerBound="1"
9 eType="#//Event"/> 9 eType="#//RandomEvent"/>
10 </eClassifiers> 10 </eClassifiers>
11 <eClassifiers xsi:type="ecore:EClass" name="Event" abstract="true"> 11 <eClassifiers xsi:type="ecore:EClass" name="RandomEvent" abstract="true" eSuperTypes="#//Event">
12 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> 12 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
13 </eClassifiers> 13 </eClassifiers>
14 <eClassifiers xsi:type="ecore:EClass" name="BasicEvent" eSuperTypes="#//Event"> 14 <eClassifiers xsi:type="ecore:EClass" name="BasicEvent" eSuperTypes="#//RandomEvent">
15 <eStructuralFeatures xsi:type="ecore:EReference" name="distribution" lowerBound="1" 15 <eStructuralFeatures xsi:type="ecore:EReference" name="distribution" lowerBound="1"
16 eType="#//Distribution" containment="true"/> 16 eType="#//Distribution" containment="true"/>
17 </eClassifiers> 17 </eClassifiers>
18 <eClassifiers xsi:type="ecore:EClass" name="Gate" abstract="true" eSuperTypes="#//Event"> 18 <eClassifiers xsi:type="ecore:EClass" name="Gate" abstract="true" eSuperTypes="#//RandomEvent">
19 <eStructuralFeatures xsi:type="ecore:EReference" name="inputEvents" upperBound="-1" 19 <eStructuralFeatures xsi:type="ecore:EReference" name="inputEvents" lowerBound="2"
20 eType="#//Event"/> 20 upperBound="-1" eType="#//RandomEvent"/>
21 </eClassifiers> 21 </eClassifiers>
22 <eClassifiers xsi:type="ecore:EClass" name="Distribution" abstract="true"/> 22 <eClassifiers xsi:type="ecore:EClass" name="Distribution" abstract="true"/>
23 <eClassifiers xsi:type="ecore:EClass" name="ConstantDistribution" eSuperTypes="#//Distribution"> 23 <eClassifiers xsi:type="ecore:EClass" name="ConstantDistribution" eSuperTypes="#//Distribution">
@@ -30,6 +30,13 @@
30 <eClassifiers xsi:type="ecore:EClass" name="OrGate" eSuperTypes="#//Gate"/> 30 <eClassifiers xsi:type="ecore:EClass" name="OrGate" eSuperTypes="#//Gate"/>
31 <eClassifiers xsi:type="ecore:EClass" name="KOfMGate" eSuperTypes="#//Gate"> 31 <eClassifiers xsi:type="ecore:EClass" name="KOfMGate" eSuperTypes="#//Gate">
32 <eStructuralFeatures xsi:type="ecore:EAttribute" name="k" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> 32 <eStructuralFeatures xsi:type="ecore:EAttribute" name="k" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
33 <eStructuralFeatures xsi:type="ecore:EAttribute" name="m" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> 33 </eClassifiers>
34 <eClassifiers xsi:type="ecore:EClass" name="ReliabilityModel" abstract="true"/>
35 <eClassifiers xsi:type="ecore:EClass" name="ConstantModel" eSuperTypes="#//ReliabilityModel">
36 <eStructuralFeatures xsi:type="ecore:EAttribute" name="failed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
37 </eClassifiers>
38 <eClassifiers xsi:type="ecore:EClass" name="Event" abstract="true"/>
39 <eClassifiers xsi:type="ecore:EClass" name="ConstantEvent" eSuperTypes="#//Event">
40 <eStructuralFeatures xsi:type="ecore:EAttribute" name="failed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
34 </eClassifiers> 41 </eClassifiers>
35</ecore:EPackage> 42</ecore:EPackage>
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/ft.genmodel b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/ft.genmodel
index b5f63c34..7dcd0ae7 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/ft.genmodel
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/ft.genmodel
@@ -11,8 +11,8 @@
11 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ft.ecore#//FaultTree/events"/> 11 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ft.ecore#//FaultTree/events"/>
12 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ft.ecore#//FaultTree/topEvent"/> 12 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ft.ecore#//FaultTree/topEvent"/>
13 </genClasses> 13 </genClasses>
14 <genClasses image="false" ecoreClass="ft.ecore#//Event"> 14 <genClasses image="false" ecoreClass="ft.ecore#//RandomEvent">
15 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ft.ecore#//Event/name"/> 15 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ft.ecore#//RandomEvent/name"/>
16 </genClasses> 16 </genClasses>
17 <genClasses ecoreClass="ft.ecore#//BasicEvent"> 17 <genClasses ecoreClass="ft.ecore#//BasicEvent">
18 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ft.ecore#//BasicEvent/distribution"/> 18 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ft.ecore#//BasicEvent/distribution"/>
@@ -31,7 +31,14 @@
31 <genClasses ecoreClass="ft.ecore#//OrGate"/> 31 <genClasses ecoreClass="ft.ecore#//OrGate"/>
32 <genClasses ecoreClass="ft.ecore#//KOfMGate"> 32 <genClasses ecoreClass="ft.ecore#//KOfMGate">
33 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ft.ecore#//KOfMGate/k"/> 33 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ft.ecore#//KOfMGate/k"/>
34 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ft.ecore#//KOfMGate/m"/> 34 </genClasses>
35 <genClasses ecoreClass="ft.ecore#//ReliabilityModel"/>
36 <genClasses ecoreClass="ft.ecore#//ConstantModel">
37 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ft.ecore#//ConstantModel/failed"/>
38 </genClasses>
39 <genClasses ecoreClass="ft.ecore#//Event"/>
40 <genClasses ecoreClass="ft.ecore#//ConstantEvent">
41 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ft.ecore#//ConstantEvent/failed"/>
35 </genClasses> 42 </genClasses>
36 </genPackages> 43 </genPackages>
37</genmodel:GenModel> 44</genmodel:GenModel>
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/representations.aird b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/representations.aird
index 0c5c0fe8..16bc44f2 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/representations.aird
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/representations.aird
@@ -1074,7 +1074,7 @@
1074 <styles xmi:type="notation:FilteringStyle" xmi:id="_DB1gliohEemQnOUhg0mU1A"/> 1074 <styles xmi:type="notation:FilteringStyle" xmi:id="_DB1gliohEemQnOUhg0mU1A"/>
1075 </children> 1075 </children>
1076 <styles xmi:type="notation:ShapeStyle" xmi:id="_DB1gkSohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/> 1076 <styles xmi:type="notation:ShapeStyle" xmi:id="_DB1gkSohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1077 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DB1gkiohEemQnOUhg0mU1A" x="351" y="26" width="120" height="100"/> 1077 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DB1gkiohEemQnOUhg0mU1A" x="345" y="180" width="120" height="100"/>
1078 </children> 1078 </children>
1079 <children xmi:type="notation:Node" xmi:id="_OHUAMCohEemQnOUhg0mU1A" type="2003" element="_OHKPMCohEemQnOUhg0mU1A"> 1079 <children xmi:type="notation:Node" xmi:id="_OHUAMCohEemQnOUhg0mU1A" type="2003" element="_OHKPMCohEemQnOUhg0mU1A">
1080 <children xmi:type="notation:Node" xmi:id="_OHUnQCohEemQnOUhg0mU1A" type="5007"/> 1080 <children xmi:type="notation:Node" xmi:id="_OHUnQCohEemQnOUhg0mU1A" type="5007"/>
@@ -1087,7 +1087,7 @@
1087 <styles xmi:type="notation:FilteringStyle" xmi:id="_OHUnQyohEemQnOUhg0mU1A"/> 1087 <styles xmi:type="notation:FilteringStyle" xmi:id="_OHUnQyohEemQnOUhg0mU1A"/>
1088 </children> 1088 </children>
1089 <styles xmi:type="notation:ShapeStyle" xmi:id="_OHUAMSohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/> 1089 <styles xmi:type="notation:ShapeStyle" xmi:id="_OHUAMSohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1090 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OHUAMiohEemQnOUhg0mU1A" x="351" y="208" width="120" height="100"/> 1090 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OHUAMiohEemQnOUhg0mU1A" x="345" y="345" width="120" height="100"/>
1091 </children> 1091 </children>
1092 <children xmi:type="notation:Node" xmi:id="_PfLLACohEemQnOUhg0mU1A" type="2003" element="_PfCoICohEemQnOUhg0mU1A"> 1092 <children xmi:type="notation:Node" xmi:id="_PfLLACohEemQnOUhg0mU1A" type="2003" element="_PfCoICohEemQnOUhg0mU1A">
1093 <children xmi:type="notation:Node" xmi:id="_PfLyECohEemQnOUhg0mU1A" type="5007"/> 1093 <children xmi:type="notation:Node" xmi:id="_PfLyECohEemQnOUhg0mU1A" type="5007"/>
@@ -1096,7 +1096,7 @@
1096 <styles xmi:type="notation:FilteringStyle" xmi:id="_PfLyEyohEemQnOUhg0mU1A"/> 1096 <styles xmi:type="notation:FilteringStyle" xmi:id="_PfLyEyohEemQnOUhg0mU1A"/>
1097 </children> 1097 </children>
1098 <styles xmi:type="notation:ShapeStyle" xmi:id="_PfLLASohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/> 1098 <styles xmi:type="notation:ShapeStyle" xmi:id="_PfLLASohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1099 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PfLLAiohEemQnOUhg0mU1A" x="247" y="377" width="120" height="100"/> 1099 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PfLLAiohEemQnOUhg0mU1A" x="241" y="514" width="120" height="100"/>
1100 </children> 1100 </children>
1101 <children xmi:type="notation:Node" xmi:id="_QR5BYCohEemQnOUhg0mU1A" type="2003" element="_QRvQYCohEemQnOUhg0mU1A"> 1101 <children xmi:type="notation:Node" xmi:id="_QR5BYCohEemQnOUhg0mU1A" type="2003" element="_QRvQYCohEemQnOUhg0mU1A">
1102 <children xmi:type="notation:Node" xmi:id="_QR5BYyohEemQnOUhg0mU1A" type="5007"/> 1102 <children xmi:type="notation:Node" xmi:id="_QR5BYyohEemQnOUhg0mU1A" type="5007"/>
@@ -1105,7 +1105,7 @@
1105 <styles xmi:type="notation:FilteringStyle" xmi:id="_QR5ociohEemQnOUhg0mU1A"/> 1105 <styles xmi:type="notation:FilteringStyle" xmi:id="_QR5ociohEemQnOUhg0mU1A"/>
1106 </children> 1106 </children>
1107 <styles xmi:type="notation:ShapeStyle" xmi:id="_QR5BYSohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/> 1107 <styles xmi:type="notation:ShapeStyle" xmi:id="_QR5BYSohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1108 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QR5BYiohEemQnOUhg0mU1A" x="455" y="377" width="120" height="100"/> 1108 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QR5BYiohEemQnOUhg0mU1A" x="449" y="514" width="120" height="100"/>
1109 </children> 1109 </children>
1110 <children xmi:type="notation:Node" xmi:id="_fDJPMCohEemQnOUhg0mU1A" type="2003" element="_fC-3ICohEemQnOUhg0mU1A"> 1110 <children xmi:type="notation:Node" xmi:id="_fDJPMCohEemQnOUhg0mU1A" type="2003" element="_fC-3ICohEemQnOUhg0mU1A">
1111 <children xmi:type="notation:Node" xmi:id="_fDJPMyohEemQnOUhg0mU1A" type="5007"/> 1111 <children xmi:type="notation:Node" xmi:id="_fDJPMyohEemQnOUhg0mU1A" type="5007"/>
@@ -1114,7 +1114,7 @@
1114 <styles xmi:type="notation:FilteringStyle" xmi:id="_fDJPNiohEemQnOUhg0mU1A"/> 1114 <styles xmi:type="notation:FilteringStyle" xmi:id="_fDJPNiohEemQnOUhg0mU1A"/>
1115 </children> 1115 </children>
1116 <styles xmi:type="notation:ShapeStyle" xmi:id="_fDJPMSohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/> 1116 <styles xmi:type="notation:ShapeStyle" xmi:id="_fDJPMSohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1117 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fDJPMiohEemQnOUhg0mU1A" x="143" y="546" width="120" height="100"/> 1117 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fDJPMiohEemQnOUhg0mU1A" x="137" y="683" width="120" height="100"/>
1118 </children> 1118 </children>
1119 <children xmi:type="notation:Node" xmi:id="_g_4BoCohEemQnOUhg0mU1A" type="2003" element="_g_tpkCohEemQnOUhg0mU1A"> 1119 <children xmi:type="notation:Node" xmi:id="_g_4BoCohEemQnOUhg0mU1A" type="2003" element="_g_tpkCohEemQnOUhg0mU1A">
1120 <children xmi:type="notation:Node" xmi:id="_g_4BoyohEemQnOUhg0mU1A" type="5007"/> 1120 <children xmi:type="notation:Node" xmi:id="_g_4BoyohEemQnOUhg0mU1A" type="5007"/>
@@ -1127,7 +1127,7 @@
1127 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_4BpiohEemQnOUhg0mU1A"/> 1127 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_4BpiohEemQnOUhg0mU1A"/>
1128 </children> 1128 </children>
1129 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_4BoSohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/> 1129 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_4BoSohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1130 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4BoiohEemQnOUhg0mU1A" x="39" y="715" width="133" height="100"/> 1130 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4BoiohEemQnOUhg0mU1A" x="45" y="852" width="133" height="100"/>
1131 </children> 1131 </children>
1132 <children xmi:type="notation:Node" xmi:id="_kXPmFiohEemQnOUhg0mU1A" type="2003" element="_kXGcICohEemQnOUhg0mU1A"> 1132 <children xmi:type="notation:Node" xmi:id="_kXPmFiohEemQnOUhg0mU1A" type="2003" element="_kXGcICohEemQnOUhg0mU1A">
1133 <children xmi:type="notation:Node" xmi:id="_kXQNICohEemQnOUhg0mU1A" type="5007"/> 1133 <children xmi:type="notation:Node" xmi:id="_kXQNICohEemQnOUhg0mU1A" type="5007"/>
@@ -1140,7 +1140,7 @@
1140 <styles xmi:type="notation:FilteringStyle" xmi:id="_kXQNIyohEemQnOUhg0mU1A"/> 1140 <styles xmi:type="notation:FilteringStyle" xmi:id="_kXQNIyohEemQnOUhg0mU1A"/>
1141 </children> 1141 </children>
1142 <styles xmi:type="notation:ShapeStyle" xmi:id="_kXPmFyohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/> 1142 <styles xmi:type="notation:ShapeStyle" xmi:id="_kXPmFyohEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1143 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kXPmGCohEemQnOUhg0mU1A" x="221" y="715" width="133" height="100"/> 1143 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kXPmGCohEemQnOUhg0mU1A" x="215" y="852" width="133" height="100"/>
1144 </children> 1144 </children>
1145 <children xmi:type="notation:Node" xmi:id="_Jn0OsCokEemQnOUhg0mU1A" type="2003" element="_JnsS4CokEemQnOUhg0mU1A"> 1145 <children xmi:type="notation:Node" xmi:id="_Jn0OsCokEemQnOUhg0mU1A" type="2003" element="_JnsS4CokEemQnOUhg0mU1A">
1146 <children xmi:type="notation:Node" xmi:id="_Jn0OsyokEemQnOUhg0mU1A" type="5007"/> 1146 <children xmi:type="notation:Node" xmi:id="_Jn0OsyokEemQnOUhg0mU1A" type="5007"/>
@@ -1149,7 +1149,7 @@
1149 <styles xmi:type="notation:FilteringStyle" xmi:id="_Jn0OtiokEemQnOUhg0mU1A"/> 1149 <styles xmi:type="notation:FilteringStyle" xmi:id="_Jn0OtiokEemQnOUhg0mU1A"/>
1150 </children> 1150 </children>
1151 <styles xmi:type="notation:ShapeStyle" xmi:id="_Jn0OsSokEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/> 1151 <styles xmi:type="notation:ShapeStyle" xmi:id="_Jn0OsSokEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1152 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jn0OsiokEemQnOUhg0mU1A" x="312" y="546" width="120" height="100"/> 1152 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jn0OsiokEemQnOUhg0mU1A" x="306" y="683" width="120" height="100"/>
1153 </children> 1153 </children>
1154 <children xmi:type="notation:Node" xmi:id="_J8rEYCokEemQnOUhg0mU1A" type="2003" element="_J8gFQCokEemQnOUhg0mU1A"> 1154 <children xmi:type="notation:Node" xmi:id="_J8rEYCokEemQnOUhg0mU1A" type="2003" element="_J8gFQCokEemQnOUhg0mU1A">
1155 <children xmi:type="notation:Node" xmi:id="_J8rEYyokEemQnOUhg0mU1A" type="5007"/> 1155 <children xmi:type="notation:Node" xmi:id="_J8rEYyokEemQnOUhg0mU1A" type="5007"/>
@@ -1158,7 +1158,7 @@
1158 <styles xmi:type="notation:FilteringStyle" xmi:id="_J8rrciokEemQnOUhg0mU1A"/> 1158 <styles xmi:type="notation:FilteringStyle" xmi:id="_J8rrciokEemQnOUhg0mU1A"/>
1159 </children> 1159 </children>
1160 <styles xmi:type="notation:ShapeStyle" xmi:id="_J8rEYSokEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/> 1160 <styles xmi:type="notation:ShapeStyle" xmi:id="_J8rEYSokEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1161 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J8rEYiokEemQnOUhg0mU1A" x="455" y="546" width="120" height="100"/> 1161 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J8rEYiokEemQnOUhg0mU1A" x="449" y="683" width="120" height="100"/>
1162 </children> 1162 </children>
1163 <children xmi:type="notation:Node" xmi:id="_MS4GwCokEemQnOUhg0mU1A" type="2003" element="_MSuVwCokEemQnOUhg0mU1A"> 1163 <children xmi:type="notation:Node" xmi:id="_MS4GwCokEemQnOUhg0mU1A" type="2003" element="_MSuVwCokEemQnOUhg0mU1A">
1164 <children xmi:type="notation:Node" xmi:id="_MS4GwyokEemQnOUhg0mU1A" type="5007"/> 1164 <children xmi:type="notation:Node" xmi:id="_MS4GwyokEemQnOUhg0mU1A" type="5007"/>
@@ -1167,46 +1167,86 @@
1167 <styles xmi:type="notation:FontStyle" xmi:id="_O6m-ASokEemQnOUhg0mU1A" fontColor="2697711" fontName="Cantarell" fontHeight="8"/> 1167 <styles xmi:type="notation:FontStyle" xmi:id="_O6m-ASokEemQnOUhg0mU1A" fontColor="2697711" fontName="Cantarell" fontHeight="8"/>
1168 <layoutConstraint xmi:type="notation:Location" xmi:id="_O6m-AiokEemQnOUhg0mU1A"/> 1168 <layoutConstraint xmi:type="notation:Location" xmi:id="_O6m-AiokEemQnOUhg0mU1A"/>
1169 </children> 1169 </children>
1170 <children xmi:type="notation:Node" xmi:id="_Pi5tECokEemQnOUhg0mU1A" type="3010" element="_Pis4wCokEemQnOUhg0mU1A">
1171 <styles xmi:type="notation:FontStyle" xmi:id="_Pi5tESokEemQnOUhg0mU1A" fontColor="2697711" fontName="Cantarell" fontHeight="8"/>
1172 <layoutConstraint xmi:type="notation:Location" xmi:id="_Pi5tEiokEemQnOUhg0mU1A"/>
1173 </children>
1174 <styles xmi:type="notation:SortingStyle" xmi:id="_MS4GxSokEemQnOUhg0mU1A"/> 1170 <styles xmi:type="notation:SortingStyle" xmi:id="_MS4GxSokEemQnOUhg0mU1A"/>
1175 <styles xmi:type="notation:FilteringStyle" xmi:id="_MS4GxiokEemQnOUhg0mU1A"/> 1171 <styles xmi:type="notation:FilteringStyle" xmi:id="_MS4GxiokEemQnOUhg0mU1A"/>
1176 </children> 1172 </children>
1177 <styles xmi:type="notation:ShapeStyle" xmi:id="_MS4GwSokEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/> 1173 <styles xmi:type="notation:ShapeStyle" xmi:id="_MS4GwSokEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1178 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MS4GwiokEemQnOUhg0mU1A" x="598" y="546" width="120" height="100"/> 1174 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MS4GwiokEemQnOUhg0mU1A" x="592" y="683" width="120" height="100"/>
1175 </children>
1176 <children xmi:type="notation:Node" xmi:id="_6hZ9QC1lEemQnOUhg0mU1A" type="2003" element="_6hHCUC1lEemQnOUhg0mU1A">
1177 <children xmi:type="notation:Node" xmi:id="_6hakUC1lEemQnOUhg0mU1A" type="5007"/>
1178 <children xmi:type="notation:Node" xmi:id="_6hakUS1lEemQnOUhg0mU1A" type="7004">
1179 <styles xmi:type="notation:SortingStyle" xmi:id="_6hakUi1lEemQnOUhg0mU1A"/>
1180 <styles xmi:type="notation:FilteringStyle" xmi:id="_6hakUy1lEemQnOUhg0mU1A"/>
1181 </children>
1182 <styles xmi:type="notation:ShapeStyle" xmi:id="_6hZ9QS1lEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1183 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6hZ9Qi1lEemQnOUhg0mU1A" x="540" y="30" width="120" height="100"/>
1184 </children>
1185 <children xmi:type="notation:Node" xmi:id="_-fSIEC1lEemQnOUhg0mU1A" type="2003" element="_-fKzUC1lEemQnOUhg0mU1A">
1186 <children xmi:type="notation:Node" xmi:id="_-fSIEy1lEemQnOUhg0mU1A" type="5007"/>
1187 <children xmi:type="notation:Node" xmi:id="_-fSIFC1lEemQnOUhg0mU1A" type="7004">
1188 <children xmi:type="notation:Node" xmi:id="_Nn2NMC1nEemQnOUhg0mU1A" type="3010" element="_NnscMC1nEemQnOUhg0mU1A">
1189 <styles xmi:type="notation:FontStyle" xmi:id="_Nn2NMS1nEemQnOUhg0mU1A" fontColor="2697711" fontName="Cantarell" fontHeight="8"/>
1190 <layoutConstraint xmi:type="notation:Location" xmi:id="_Nn2NMi1nEemQnOUhg0mU1A"/>
1191 </children>
1192 <styles xmi:type="notation:SortingStyle" xmi:id="_-fSIFS1lEemQnOUhg0mU1A"/>
1193 <styles xmi:type="notation:FilteringStyle" xmi:id="_-fSIFi1lEemQnOUhg0mU1A"/>
1194 </children>
1195 <styles xmi:type="notation:ShapeStyle" xmi:id="_-fSIES1lEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1196 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-fSIEi1lEemQnOUhg0mU1A" x="735" y="180" width="120" height="100"/>
1197 </children>
1198 <children xmi:type="notation:Node" xmi:id="_27i0YC1mEemQnOUhg0mU1A" type="2003" element="_27bfoC1mEemQnOUhg0mU1A">
1199 <children xmi:type="notation:Node" xmi:id="_27i0Yy1mEemQnOUhg0mU1A" type="5007"/>
1200 <children xmi:type="notation:Node" xmi:id="_27i0ZC1mEemQnOUhg0mU1A" type="7004">
1201 <styles xmi:type="notation:SortingStyle" xmi:id="_27i0ZS1mEemQnOUhg0mU1A"/>
1202 <styles xmi:type="notation:FilteringStyle" xmi:id="_27i0Zi1mEemQnOUhg0mU1A"/>
1203 </children>
1204 <styles xmi:type="notation:ShapeStyle" xmi:id="_27i0YS1mEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1205 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_27i0Yi1mEemQnOUhg0mU1A" x="540" y="180" width="120" height="100"/>
1206 </children>
1207 <children xmi:type="notation:Node" xmi:id="_7y8oMC1mEemQnOUhg0mU1A" type="2003" element="_7y0sYC1mEemQnOUhg0mU1A">
1208 <children xmi:type="notation:Node" xmi:id="_7y9PQC1mEemQnOUhg0mU1A" type="5007"/>
1209 <children xmi:type="notation:Node" xmi:id="_7y9PQS1mEemQnOUhg0mU1A" type="7004">
1210 <children xmi:type="notation:Node" xmi:id="_cn0McC1nEemQnOUhg0mU1A" type="3010" element="_cnpNUC1nEemQnOUhg0mU1A">
1211 <styles xmi:type="notation:FontStyle" xmi:id="_cn0McS1nEemQnOUhg0mU1A" fontColor="2697711" fontName="Cantarell" fontHeight="8"/>
1212 <layoutConstraint xmi:type="notation:Location" xmi:id="_cn0Mci1nEemQnOUhg0mU1A"/>
1213 </children>
1214 <styles xmi:type="notation:SortingStyle" xmi:id="_7y9PQi1mEemQnOUhg0mU1A"/>
1215 <styles xmi:type="notation:FilteringStyle" xmi:id="_7y9PQy1mEemQnOUhg0mU1A"/>
1216 </children>
1217 <styles xmi:type="notation:ShapeStyle" xmi:id="_7y8oMS1mEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1218 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7y8oMi1mEemQnOUhg0mU1A" x="735" y="345" width="120" height="100"/>
1179 </children> 1219 </children>
1180 <styles xmi:type="notation:DiagramStyle" xmi:id="_BnlwIiohEemQnOUhg0mU1A"/> 1220 <styles xmi:type="notation:DiagramStyle" xmi:id="_BnlwIiohEemQnOUhg0mU1A"/>
1181 <edges xmi:type="notation:Edge" xmi:id="_RSe7sCohEemQnOUhg0mU1A" type="4001" element="_RSW_4CohEemQnOUhg0mU1A" source="_DB1gkCohEemQnOUhg0mU1A" target="_OHUAMCohEemQnOUhg0mU1A"> 1221 <edges xmi:type="notation:Edge" xmi:id="_RSe7sCohEemQnOUhg0mU1A" type="4001" element="_RSW_4CohEemQnOUhg0mU1A" source="_DB1gkCohEemQnOUhg0mU1A" target="_OHUAMCohEemQnOUhg0mU1A">
1182 <children xmi:type="notation:Node" xmi:id="_RSe7tCohEemQnOUhg0mU1A" type="6001"> 1222 <children xmi:type="notation:Node" xmi:id="_RSe7tCohEemQnOUhg0mU1A" type="6001">
1183 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RSe7tSohEemQnOUhg0mU1A" x="-3" y="37"/> 1223 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RSe7tSohEemQnOUhg0mU1A" x="10" y="41"/>
1184 </children> 1224 </children>
1185 <children xmi:type="notation:Node" xmi:id="_RSe7tiohEemQnOUhg0mU1A" type="6002"> 1225 <children xmi:type="notation:Node" xmi:id="_RSe7tiohEemQnOUhg0mU1A" type="6002">
1186 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RSe7tyohEemQnOUhg0mU1A" y="10"/> 1226 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RSe7tyohEemQnOUhg0mU1A" x="18" y="10"/>
1187 </children> 1227 </children>
1188 <children xmi:type="notation:Node" xmi:id="_RSfiwCohEemQnOUhg0mU1A" type="6003"> 1228 <children xmi:type="notation:Node" xmi:id="_RSfiwCohEemQnOUhg0mU1A" type="6003">
1189 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RSfiwSohEemQnOUhg0mU1A" y="10"/> 1229 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RSfiwSohEemQnOUhg0mU1A" x="-35" y="10"/>
1190 </children> 1230 </children>
1191 <styles xmi:type="notation:ConnectorStyle" xmi:id="_RSe7sSohEemQnOUhg0mU1A" routing="Rectilinear"/> 1231 <styles xmi:type="notation:ConnectorStyle" xmi:id="_RSe7sSohEemQnOUhg0mU1A" routing="Rectilinear"/>
1192 <styles xmi:type="notation:FontStyle" xmi:id="_RSe7siohEemQnOUhg0mU1A" fontColor="7490599" fontName="Cantarell" fontHeight="8"/> 1232 <styles xmi:type="notation:FontStyle" xmi:id="_RSe7siohEemQnOUhg0mU1A" fontColor="7490599" fontName="Cantarell" fontHeight="8"/>
1193 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RSe7syohEemQnOUhg0mU1A" points="[-20, 0, -20, -84]$[-20, 84, -20, 0]"/> 1233 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RSe7syohEemQnOUhg0mU1A" points="[-20, 0, -20, -67]$[-20, 67, -20, 0]"/>
1194 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RSfiwiohEemQnOUhg0mU1A" id="(0.5,1.0)"/> 1234 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RSfiwiohEemQnOUhg0mU1A" id="(0.5,1.0)"/>
1195 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RSfiwyohEemQnOUhg0mU1A" id="(0.5,0.0)"/> 1235 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RSfiwyohEemQnOUhg0mU1A" id="(0.5,0.0)"/>
1196 </edges> 1236 </edges>
1197 <edges xmi:type="notation:Edge" xmi:id="_Ty_JkCohEemQnOUhg0mU1A" type="4001" element="_Ty0KdiohEemQnOUhg0mU1A" source="_DB1gkCohEemQnOUhg0mU1A" target="_OHUAMCohEemQnOUhg0mU1A"> 1237 <edges xmi:type="notation:Edge" xmi:id="_Ty_JkCohEemQnOUhg0mU1A" type="4001" element="_Ty0KdiohEemQnOUhg0mU1A" source="_DB1gkCohEemQnOUhg0mU1A" target="_OHUAMCohEemQnOUhg0mU1A">
1198 <children xmi:type="notation:Node" xmi:id="_Ty_JlCohEemQnOUhg0mU1A" type="6001"> 1238 <children xmi:type="notation:Node" xmi:id="_Ty_JlCohEemQnOUhg0mU1A" type="6001">
1199 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ty_JlSohEemQnOUhg0mU1A" x="-3" y="-39"/> 1239 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ty_JlSohEemQnOUhg0mU1A" x="10" y="-49"/>
1200 </children> 1240 </children>
1201 <children xmi:type="notation:Node" xmi:id="_Ty_JliohEemQnOUhg0mU1A" type="6002"> 1241 <children xmi:type="notation:Node" xmi:id="_Ty_JliohEemQnOUhg0mU1A" type="6002">
1202 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ty_JlyohEemQnOUhg0mU1A" y="10"/> 1242 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ty_JlyohEemQnOUhg0mU1A" x="18" y="10"/>
1203 </children> 1243 </children>
1204 <children xmi:type="notation:Node" xmi:id="_Ty_woCohEemQnOUhg0mU1A" type="6003"> 1244 <children xmi:type="notation:Node" xmi:id="_Ty_woCohEemQnOUhg0mU1A" type="6003">
1205 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ty_woSohEemQnOUhg0mU1A" y="10"/> 1245 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ty_woSohEemQnOUhg0mU1A" x="-35" y="10"/>
1206 </children> 1246 </children>
1207 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Ty_JkSohEemQnOUhg0mU1A" routing="Rectilinear"/> 1247 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Ty_JkSohEemQnOUhg0mU1A" routing="Rectilinear"/>
1208 <styles xmi:type="notation:FontStyle" xmi:id="_Ty_JkiohEemQnOUhg0mU1A" fontColor="7490599" fontName="Cantarell" fontHeight="8"/> 1248 <styles xmi:type="notation:FontStyle" xmi:id="_Ty_JkiohEemQnOUhg0mU1A" fontColor="7490599" fontName="Cantarell" fontHeight="8"/>
1209 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ty_JkyohEemQnOUhg0mU1A" points="[-11, 0, -11, -84]$[-11, 84, -11, 0]"/> 1249 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ty_JkyohEemQnOUhg0mU1A" points="[-11, 0, -11, -67]$[-11, 67, -11, 0]"/>
1210 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ty_woiohEemQnOUhg0mU1A" id="(0.7542372881355932,1.0)"/> 1250 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ty_woiohEemQnOUhg0mU1A" id="(0.7542372881355932,1.0)"/>
1211 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ty_woyohEemQnOUhg0mU1A" id="(0.7542372881355932,0.0)"/> 1251 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ty_woyohEemQnOUhg0mU1A" id="(0.7542372881355932,0.0)"/>
1212 </edges> 1252 </edges>
@@ -1354,9 +1394,73 @@
1354 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RDmq0CokEemQnOUhg0mU1A" id="(0.8813559322033898,0.0)"/> 1394 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RDmq0CokEemQnOUhg0mU1A" id="(0.8813559322033898,0.0)"/>
1355 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RDmq0SokEemQnOUhg0mU1A" id="(1.0,0.5)"/> 1395 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RDmq0SokEemQnOUhg0mU1A" id="(1.0,0.5)"/>
1356 </edges> 1396 </edges>
1397 <edges xmi:type="notation:Edge" xmi:id="_AvKgAC1mEemQnOUhg0mU1A" type="4001" element="_AvDyVi1mEemQnOUhg0mU1A" source="_DB1gkCohEemQnOUhg0mU1A" target="_6hZ9QC1lEemQnOUhg0mU1A">
1398 <children xmi:type="notation:Node" xmi:id="_AvKgBC1mEemQnOUhg0mU1A" type="6001">
1399 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AvKgBS1mEemQnOUhg0mU1A" y="-10"/>
1400 </children>
1401 <children xmi:type="notation:Node" xmi:id="_AvLHEC1mEemQnOUhg0mU1A" type="6002">
1402 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AvLHES1mEemQnOUhg0mU1A" y="10"/>
1403 </children>
1404 <children xmi:type="notation:Node" xmi:id="_AvLHEi1mEemQnOUhg0mU1A" type="6003">
1405 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AvLHEy1mEemQnOUhg0mU1A" y="10"/>
1406 </children>
1407 <styles xmi:type="notation:ConnectorStyle" xmi:id="_AvKgAS1mEemQnOUhg0mU1A" routing="Tree"/>
1408 <styles xmi:type="notation:FontStyle" xmi:id="_AvKgAi1mEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1409 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AvKgAy1mEemQnOUhg0mU1A" points="[0, 0, -150, 116]$[150, -116, 0, 0]"/>
1410 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AvLHFC1mEemQnOUhg0mU1A" id="(0.3813559322033898,0.0)"/>
1411 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AvLHFS1mEemQnOUhg0mU1A" id="(0.5,0.5)"/>
1412 </edges>
1413 <edges xmi:type="notation:Edge" xmi:id="_5G5RoC1mEemQnOUhg0mU1A" type="4001" element="_5GwH1C1mEemQnOUhg0mU1A" source="_OHUAMCohEemQnOUhg0mU1A" target="_27i0YC1mEemQnOUhg0mU1A">
1414 <children xmi:type="notation:Node" xmi:id="_5G5RpC1mEemQnOUhg0mU1A" type="6001">
1415 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5G5RpS1mEemQnOUhg0mU1A" y="-10"/>
1416 </children>
1417 <children xmi:type="notation:Node" xmi:id="_5G5Rpi1mEemQnOUhg0mU1A" type="6002">
1418 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5G5Rpy1mEemQnOUhg0mU1A" y="10"/>
1419 </children>
1420 <children xmi:type="notation:Node" xmi:id="_5G5RqC1mEemQnOUhg0mU1A" type="6003">
1421 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5G5RqS1mEemQnOUhg0mU1A" y="10"/>
1422 </children>
1423 <styles xmi:type="notation:ConnectorStyle" xmi:id="_5G5RoS1mEemQnOUhg0mU1A" routing="Tree"/>
1424 <styles xmi:type="notation:FontStyle" xmi:id="_5G5Roi1mEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1425 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5G5Roy1mEemQnOUhg0mU1A" points="[0, 0, -135, 75]$[135, -75, 0, 0]"/>
1426 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5G5Rqi1mEemQnOUhg0mU1A" id="(0.5084745762711864,0.0)"/>
1427 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5G5Rqy1mEemQnOUhg0mU1A" id="(0.5,0.5)"/>
1428 </edges>
1429 <edges xmi:type="notation:Edge" xmi:id="_PedJgC1nEemQnOUhg0mU1A" type="4001" element="_PeXDBy1nEemQnOUhg0mU1A" source="_-fSIEC1lEemQnOUhg0mU1A" target="_6hZ9QC1lEemQnOUhg0mU1A">
1430 <children xmi:type="notation:Node" xmi:id="_PedwkC1nEemQnOUhg0mU1A" type="6001">
1431 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PedwkS1nEemQnOUhg0mU1A" y="-10"/>
1432 </children>
1433 <children xmi:type="notation:Node" xmi:id="_Pedwki1nEemQnOUhg0mU1A" type="6002">
1434 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pedwky1nEemQnOUhg0mU1A" y="10"/>
1435 </children>
1436 <children xmi:type="notation:Node" xmi:id="_PedwlC1nEemQnOUhg0mU1A" type="6003">
1437 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PedwlS1nEemQnOUhg0mU1A" y="10"/>
1438 </children>
1439 <styles xmi:type="notation:ConnectorStyle" xmi:id="_PedJgS1nEemQnOUhg0mU1A" routing="Tree"/>
1440 <styles xmi:type="notation:FontStyle" xmi:id="_PedJgi1nEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1441 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PedJgy1nEemQnOUhg0mU1A" points="[0, 0, 107, 105]$[-107, -105, 0, 0]"/>
1442 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Pedwli1nEemQnOUhg0mU1A" id="(0.2542372881355932,0.0)"/>
1443 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Pedwly1nEemQnOUhg0mU1A" id="(0.5,0.5)"/>
1444 </edges>
1445 <edges xmi:type="notation:Edge" xmi:id="_Qd83oC1nEemQnOUhg0mU1A" type="4001" element="_Qd0UzC1nEemQnOUhg0mU1A" source="_7y8oMC1mEemQnOUhg0mU1A" target="_27i0YC1mEemQnOUhg0mU1A">
1446 <children xmi:type="notation:Node" xmi:id="_Qd83pC1nEemQnOUhg0mU1A" type="6001">
1447 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qd83pS1nEemQnOUhg0mU1A" y="-10"/>
1448 </children>
1449 <children xmi:type="notation:Node" xmi:id="_Qd83pi1nEemQnOUhg0mU1A" type="6002">
1450 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qd83py1nEemQnOUhg0mU1A" y="10"/>
1451 </children>
1452 <children xmi:type="notation:Node" xmi:id="_Qd83qC1nEemQnOUhg0mU1A" type="6003">
1453 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qd83qS1nEemQnOUhg0mU1A" y="10"/>
1454 </children>
1455 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Qd83oS1nEemQnOUhg0mU1A" routing="Tree"/>
1456 <styles xmi:type="notation:FontStyle" xmi:id="_Qd83oi1nEemQnOUhg0mU1A" fontName="Cantarell" fontHeight="8"/>
1457 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Qd83oy1nEemQnOUhg0mU1A" points="[0, 0, 167, 135]$[-167, -135, 0, 0]"/>
1458 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Qd9esC1nEemQnOUhg0mU1A" id="(0.25,0.03)"/>
1459 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Qd9esS1nEemQnOUhg0mU1A" id="(0.5,0.5)"/>
1460 </edges>
1357 </data> 1461 </data>
1358 </ownedAnnotationEntries> 1462 </ownedAnnotationEntries>
1359 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_DBuy4CohEemQnOUhg0mU1A" name="FaultTree" tooltipText="" outgoingEdges="_RSW_4CohEemQnOUhg0mU1A _Ty0KdiohEemQnOUhg0mU1A" width="12" height="10"> 1463 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_DBuy4CohEemQnOUhg0mU1A" name="FaultTree" tooltipText="" outgoingEdges="_RSW_4CohEemQnOUhg0mU1A _Ty0KdiohEemQnOUhg0mU1A _AvDyVi1mEemQnOUhg0mU1A" width="12" height="10">
1360 <target xmi:type="ecore:EClass" href="model/ft.ecore#//FaultTree"/> 1464 <target xmi:type="ecore:EClass" href="model/ft.ecore#//FaultTree"/>
1361 <semanticElements xmi:type="ecore:EClass" href="model/ft.ecore#//FaultTree"/> 1465 <semanticElements xmi:type="ecore:EClass" href="model/ft.ecore#//FaultTree"/>
1362 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 1466 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1367,9 +1471,9 @@
1367 </ownedStyle> 1471 </ownedStyle>
1368 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 1472 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1369 </ownedDiagramElements> 1473 </ownedDiagramElements>
1370 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_OHKPMCohEemQnOUhg0mU1A" name="Event" tooltipText="" incomingEdges="_RSW_4CohEemQnOUhg0mU1A _Ty0KdiohEemQnOUhg0mU1A _ahdMsCohEemQnOUhg0mU1A _a2TbUyohEemQnOUhg0mU1A _RDeH_CokEemQnOUhg0mU1A" width="12" height="10"> 1474 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_OHKPMCohEemQnOUhg0mU1A" name="RandomEvent" tooltipText="" outgoingEdges="_5GwH1C1mEemQnOUhg0mU1A" incomingEdges="_RSW_4CohEemQnOUhg0mU1A _Ty0KdiohEemQnOUhg0mU1A _ahdMsCohEemQnOUhg0mU1A _a2TbUyohEemQnOUhg0mU1A _RDeH_CokEemQnOUhg0mU1A" width="12" height="10">
1371 <target xmi:type="ecore:EClass" href="model/ft.ecore#//Event"/> 1475 <target xmi:type="ecore:EClass" href="model/ft.ecore#//RandomEvent"/>
1372 <semanticElements xmi:type="ecore:EClass" href="model/ft.ecore#//Event"/> 1476 <semanticElements xmi:type="ecore:EClass" href="model/ft.ecore#//RandomEvent"/>
1373 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 1477 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1374 <arrangeConstraints>KEEP_SIZE</arrangeConstraints> 1478 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1375 <arrangeConstraints>KEEP_RATIO</arrangeConstraints> 1479 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
@@ -1379,8 +1483,8 @@
1379 </ownedStyle> 1483 </ownedStyle>
1380 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 1484 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1381 <ownedElements xmi:type="diagram:DNodeListElement" uid="_WsKWICohEemQnOUhg0mU1A" name="name : EString" tooltipText=""> 1485 <ownedElements xmi:type="diagram:DNodeListElement" uid="_WsKWICohEemQnOUhg0mU1A" name="name : EString" tooltipText="">
1382 <target xmi:type="ecore:EAttribute" href="model/ft.ecore#//Event/name"/> 1486 <target xmi:type="ecore:EAttribute" href="model/ft.ecore#//RandomEvent/name"/>
1383 <semanticElements xmi:type="ecore:EAttribute" href="model/ft.ecore#//Event/name"/> 1487 <semanticElements xmi:type="ecore:EAttribute" href="model/ft.ecore#//RandomEvent/name"/>
1384 <ownedStyle xmi:type="diagram:BundledImage" uid="_XqmUVSohEemQnOUhg0mU1A" labelAlignment="LEFT"> 1488 <ownedStyle xmi:type="diagram:BundledImage" uid="_XqmUVSohEemQnOUhg0mU1A" labelAlignment="LEFT">
1385 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> 1489 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
1386 </ownedStyle> 1490 </ownedStyle>
@@ -1583,14 +1687,6 @@
1583 </ownedStyle> 1687 </ownedStyle>
1584 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> 1688 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1585 </ownedElements> 1689 </ownedElements>
1586 <ownedElements xmi:type="diagram:DNodeListElement" uid="_Pis4wCokEemQnOUhg0mU1A" name="m : EInt" tooltipText="">
1587 <target xmi:type="ecore:EAttribute" href="model/ft.ecore#//KOfMGate/m"/>
1588 <semanticElements xmi:type="ecore:EAttribute" href="model/ft.ecore#//KOfMGate/m"/>
1589 <ownedStyle xmi:type="diagram:BundledImage" uid="_P4hXwiokEemQnOUhg0mU1A" labelAlignment="LEFT">
1590 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
1591 </ownedStyle>
1592 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1593 </ownedElements>
1594 </ownedDiagramElements> 1690 </ownedDiagramElements>
1595 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_NOpLfCokEemQnOUhg0mU1A" sourceNode="_JnsS4CokEemQnOUhg0mU1A" targetNode="_QRvQYCohEemQnOUhg0mU1A"> 1691 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_NOpLfCokEemQnOUhg0mU1A" sourceNode="_JnsS4CokEemQnOUhg0mU1A" targetNode="_QRvQYCohEemQnOUhg0mU1A">
1596 <target xmi:type="ecore:EClass" href="model/ft.ecore#//AndGate"/> 1692 <target xmi:type="ecore:EClass" href="model/ft.ecore#//AndGate"/>
@@ -1628,20 +1724,127 @@
1628 </ownedStyle> 1724 </ownedStyle>
1629 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> 1725 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1630 </ownedDiagramElements> 1726 </ownedDiagramElements>
1631 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_RDeH_CokEemQnOUhg0mU1A" name="[0..*] inputEvents" sourceNode="_QRvQYCohEemQnOUhg0mU1A" targetNode="_OHKPMCohEemQnOUhg0mU1A"> 1727 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_RDeH_CokEemQnOUhg0mU1A" name="[2..*] inputEvents" sourceNode="_QRvQYCohEemQnOUhg0mU1A" targetNode="_OHKPMCohEemQnOUhg0mU1A">
1632 <target xmi:type="ecore:EReference" href="model/ft.ecore#//Gate/inputEvents"/> 1728 <target xmi:type="ecore:EReference" href="model/ft.ecore#//Gate/inputEvents"/>
1633 <semanticElements xmi:type="ecore:EReference" href="model/ft.ecore#//Gate/inputEvents"/> 1729 <semanticElements xmi:type="ecore:EReference" href="model/ft.ecore#//Gate/inputEvents"/>
1634 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_RDevACokEemQnOUhg0mU1A" routingStyle="manhattan" strokeColor="0,0,0"> 1730 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_E3kf1i1mEemQnOUhg0mU1A" description="_Um-LQCohEemQnOUhg0mU1A" routingStyle="manhattan" strokeColor="0,0,0">
1635 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> 1731 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_E3kf2C1mEemQnOUhg0mU1A" showIcon="false">
1636 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_RDevAiokEemQnOUhg0mU1A" showIcon="false"> 1732 <labelFormat>bold</labelFormat>
1637 <customFeatures>labelSize</customFeatures>
1638 </centerLabelStyle> 1733 </centerLabelStyle>
1639 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_RDevASokEemQnOUhg0mU1A" showIcon="false" labelColor="39,76,114"> 1734 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_E3kf1y1mEemQnOUhg0mU1A" labelSize="6" showIcon="false" labelColor="39,76,114"/>
1640 <customFeatures>labelSize</customFeatures>
1641 </endLabelStyle>
1642 </ownedStyle> 1735 </ownedStyle>
1643 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> 1736 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1644 </ownedDiagramElements> 1737 </ownedDiagramElements>
1738 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_6hHCUC1lEemQnOUhg0mU1A" name="ReliabilityModel" tooltipText="" incomingEdges="_AvDyVi1mEemQnOUhg0mU1A _PeXDBy1nEemQnOUhg0mU1A" width="12" height="10">
1739 <target xmi:type="ecore:EClass" href="model/ft.ecore#//ReliabilityModel"/>
1740 <semanticElements xmi:type="ecore:EClass" href="model/ft.ecore#//ReliabilityModel"/>
1741 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1742 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1743 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1744 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="__1a0oi1lEemQnOUhg0mU1A" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
1745 <labelFormat>italic</labelFormat>
1746 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
1747 </ownedStyle>
1748 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1749 </ownedDiagramElements>
1750 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_-fKzUC1lEemQnOUhg0mU1A" name="ConstantModel" tooltipText="" outgoingEdges="_PeXDBy1nEemQnOUhg0mU1A" width="12" height="10">
1751 <target xmi:type="ecore:EClass" href="model/ft.ecore#//ConstantModel"/>
1752 <semanticElements xmi:type="ecore:EClass" href="model/ft.ecore#//ConstantModel"/>
1753 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1754 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1755 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1756 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_OPmw1y1nEemQnOUhg0mU1A" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1757 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1758 </ownedStyle>
1759 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1760 <ownedElements xmi:type="diagram:DNodeListElement" uid="_NnscMC1nEemQnOUhg0mU1A" name="failed : EBoolean = false" tooltipText="">
1761 <target xmi:type="ecore:EAttribute" href="model/ft.ecore#//ConstantModel/failed"/>
1762 <semanticElements xmi:type="ecore:EAttribute" href="model/ft.ecore#//ConstantModel/failed"/>
1763 <ownedStyle xmi:type="diagram:BundledImage" uid="_OPn-4y1nEemQnOUhg0mU1A" labelAlignment="LEFT">
1764 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
1765 </ownedStyle>
1766 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1767 </ownedElements>
1768 </ownedDiagramElements>
1769 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_AvDyVi1mEemQnOUhg0mU1A" sourceNode="_DBuy4CohEemQnOUhg0mU1A" targetNode="_6hHCUC1lEemQnOUhg0mU1A">
1770 <target xmi:type="ecore:EClass" href="model/ft.ecore#//FaultTree"/>
1771 <semanticElements xmi:type="ecore:EClass" href="model/ft.ecore#//FaultTree"/>
1772 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_AvDyVy1mEemQnOUhg0mU1A" targetArrow="InputClosedArrow" routingStyle="tree">
1773 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1774 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_AvDyWC1mEemQnOUhg0mU1A" showIcon="false">
1775 <labelFormat>italic</labelFormat>
1776 </beginLabelStyle>
1777 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_AvDyWS1mEemQnOUhg0mU1A" showIcon="false"/>
1778 </ownedStyle>
1779 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1780 </ownedDiagramElements>
1781 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_27bfoC1mEemQnOUhg0mU1A" name="Event" tooltipText="" incomingEdges="_5GwH1C1mEemQnOUhg0mU1A _Qd0UzC1nEemQnOUhg0mU1A" width="12" height="10">
1782 <target xmi:type="ecore:EClass" href="model/ft.ecore#//Event"/>
1783 <semanticElements xmi:type="ecore:EClass" href="model/ft.ecore#//Event"/>
1784 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1785 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1786 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1787 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Dfwi-i1nEemQnOUhg0mU1A" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
1788 <labelFormat>italic</labelFormat>
1789 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
1790 </ownedStyle>
1791 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1792 </ownedDiagramElements>
1793 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_5GwH1C1mEemQnOUhg0mU1A" sourceNode="_OHKPMCohEemQnOUhg0mU1A" targetNode="_27bfoC1mEemQnOUhg0mU1A">
1794 <target xmi:type="ecore:EClass" href="model/ft.ecore#//RandomEvent"/>
1795 <semanticElements xmi:type="ecore:EClass" href="model/ft.ecore#//RandomEvent"/>
1796 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_5GwuwC1mEemQnOUhg0mU1A" targetArrow="InputClosedArrow" routingStyle="tree">
1797 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1798 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_5GwuwS1mEemQnOUhg0mU1A" showIcon="false">
1799 <labelFormat>italic</labelFormat>
1800 </beginLabelStyle>
1801 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_5Gwuwi1mEemQnOUhg0mU1A" showIcon="false"/>
1802 </ownedStyle>
1803 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1804 </ownedDiagramElements>
1805 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_7y0sYC1mEemQnOUhg0mU1A" name="ConstantEvent" tooltipText="" outgoingEdges="_Qd0UzC1nEemQnOUhg0mU1A" width="12" height="10">
1806 <target xmi:type="ecore:EClass" href="model/ft.ecore#//ConstantEvent"/>
1807 <semanticElements xmi:type="ecore:EClass" href="model/ft.ecore#//ConstantEvent"/>
1808 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1809 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1810 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1811 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_dKRZWS1nEemQnOUhg0mU1A" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1812 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1813 </ownedStyle>
1814 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1815 <ownedElements xmi:type="diagram:DNodeListElement" uid="_cnpNUC1nEemQnOUhg0mU1A" name="failed : EBoolean = false" tooltipText="">
1816 <target xmi:type="ecore:EAttribute" href="model/ft.ecore#//ConstantEvent/failed"/>
1817 <semanticElements xmi:type="ecore:EAttribute" href="model/ft.ecore#//ConstantEvent/failed"/>
1818 <ownedStyle xmi:type="diagram:BundledImage" uid="_dKSnYy1nEemQnOUhg0mU1A" labelAlignment="LEFT">
1819 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
1820 </ownedStyle>
1821 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1822 </ownedElements>
1823 </ownedDiagramElements>
1824 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_PeXDBy1nEemQnOUhg0mU1A" sourceNode="_-fKzUC1lEemQnOUhg0mU1A" targetNode="_6hHCUC1lEemQnOUhg0mU1A">
1825 <target xmi:type="ecore:EClass" href="model/ft.ecore#//ConstantModel"/>
1826 <semanticElements xmi:type="ecore:EClass" href="model/ft.ecore#//ConstantModel"/>
1827 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_PeXDCC1nEemQnOUhg0mU1A" targetArrow="InputClosedArrow" routingStyle="tree">
1828 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1829 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_PeXDCS1nEemQnOUhg0mU1A" showIcon="false">
1830 <labelFormat>italic</labelFormat>
1831 </beginLabelStyle>
1832 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_PeXDCi1nEemQnOUhg0mU1A" showIcon="false"/>
1833 </ownedStyle>
1834 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1835 </ownedDiagramElements>
1836 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Qd0UzC1nEemQnOUhg0mU1A" sourceNode="_7y0sYC1mEemQnOUhg0mU1A" targetNode="_27bfoC1mEemQnOUhg0mU1A">
1837 <target xmi:type="ecore:EClass" href="model/ft.ecore#//ConstantEvent"/>
1838 <semanticElements xmi:type="ecore:EClass" href="model/ft.ecore#//ConstantEvent"/>
1839 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_dKUcli1nEemQnOUhg0mU1A" targetArrow="InputClosedArrow" routingStyle="tree">
1840 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1841 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_dKUcly1nEemQnOUhg0mU1A" showIcon="false">
1842 <labelFormat>italic</labelFormat>
1843 </beginLabelStyle>
1844 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_dKUcmC1nEemQnOUhg0mU1A" showIcon="false"/>
1845 </ownedStyle>
1846 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1847 </ownedDiagramElements>
1645 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> 1848 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
1646 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_Bnj68SohEemQnOUhg0mU1A"/> 1849 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_Bnj68SohEemQnOUhg0mU1A"/>
1647 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> 1850 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/META-INF/MANIFEST.MF b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/META-INF/MANIFEST.MF
index 91eeedc5..ce704acf 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/META-INF/MANIFEST.MF
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/META-INF/MANIFEST.MF
@@ -13,4 +13,11 @@ Require-Bundle: com.google.guava,
13 org.eclipse.viatra.query.runtime, 13 org.eclipse.viatra.query.runtime,
14 org.eclipse.viatra.query.runtime.rete, 14 org.eclipse.viatra.query.runtime.rete,
15 org.eclipse.viatra.query.runtime.localsearch, 15 org.eclipse.viatra.query.runtime.localsearch,
16 hu.bme.mit.inf.dslreasoner.faulttree.components 16 hu.bme.mit.inf.dslreasoner.faulttree.components,
17 hu.bme.mit.inf.dslreasoner.logic.model,
18 com.github.jnr.constants;bundle-version="0.9.8",
19 org.apache.commons.lang;bundle-version="2.6.0"
20Export-Package: hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft,
21 hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft,
22 hu.bme.mit.inf.dslreasoner.faulttree.transformation.ft2galileo,
23 hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/build.properties b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/build.properties
index 34d2e4d2..d8e2f0e9 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/build.properties
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/build.properties
@@ -1,4 +1,5 @@
1source.. = src/ 1source.. = src/,\
2 xtend-gen/
2output.. = bin/ 3output.. = bin/
3bin.includes = META-INF/,\ 4bin.includes = META-INF/,\
4 . 5 .
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.xtend
index caaffc3c..a522654c 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.xtend
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.xtend
@@ -1,10 +1,24 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft 1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft
2 2
3import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree 3import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree
4import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtFactory
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent
4 7
5class Cft2FtTransformation { 8class Cft2FtTransformation {
6 def createFaultTree(ComponentFaultTree componentFaultTree) { 9 def createFaultTree(ComponentFaultTree componentFaultTree) {
7 // TODO 10 val materializer = new EventMaterializer
8 throw new UnsupportedOperationException() 11 val topEvent = materializer.getOrMaterialize(componentFaultTree.topEvent)
12 switch (topEvent) {
13 ConstantEvent:
14 FtFactory.eINSTANCE.createConstantModel => [
15 failed = topEvent.failed
16 ]
17 RandomEvent: {
18 val builder = new FaultTreeBuilder
19 builder.addTopLevel(topEvent)
20 builder.faultTree
21 }
22 }
9 } 23 }
10} \ No newline at end of file 24}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventCollection.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventCollection.xtend
new file mode 100644
index 00000000..102dc57e
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventCollection.xtend
@@ -0,0 +1,90 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft
2
3import com.google.common.collect.ImmutableSet
4import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent
7import java.util.Set
8import org.eclipse.xtend.lib.annotations.Data
9
10@Data
11class EventCollection {
12 val int falseEventCount
13 val int trueEventCount
14 val Set<RandomEvent> randomEvents
15
16 def containsFalseEvent() {
17 falseEventCount >= 1
18 }
19
20 def containsTrueEvent() {
21 trueEventCount >= 1
22 }
23
24 def getVariableEventCount() {
25 randomEvents.size
26 }
27
28 def containsRandomEvent() {
29 variableEventCount >= 1
30 }
31
32 def getCount() {
33 falseEventCount + trueEventCount + variableEventCount
34 }
35
36 def isEmpty() {
37 !containsFalseEvent && !containsTrueEvent && !containsRandomEvent
38 }
39
40 def containsExactlyOneRandomEvent() {
41 !containsFalseEvent && !containsTrueEvent && variableEventCount == 1
42 }
43
44 def toSingleRandomEvent() {
45 if (!containsExactlyOneRandomEvent) {
46 throw new IllegalStateException("Input collection is not a single random event")
47 }
48 randomEvents.head
49 }
50
51 static def builder() {
52 new Builder()
53 }
54
55 static class Builder {
56 var falseEventCount = 0
57 var trueEventCount = 0
58 val randomEventsBuilder = ImmutableSet.<RandomEvent>builder
59
60 private new() {
61 }
62
63 def add(Event event) {
64 switch (event) {
65 ConstantEvent:
66 if (event.failed) {
67 trueEventCount++
68 } else {
69 falseEventCount++
70 }
71 RandomEvent:
72 randomEventsBuilder.add(event)
73 default:
74 throw new IllegalArgumentException("Unknown event: " + event)
75 }
76 this
77 }
78
79 def addAll(EventCollection materializedEvens) {
80 falseEventCount += materializedEvens.falseEventCount
81 trueEventCount += materializedEvens.trueEventCount
82 randomEventsBuilder.addAll(materializedEvens.randomEvents)
83 this
84 }
85
86 def build() {
87 new EventCollection(falseEventCount, trueEventCount, randomEventsBuilder.build)
88 }
89 }
90}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventMaterializer.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventMaterializer.xtend
new file mode 100644
index 00000000..85396e4d
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventMaterializer.xtend
@@ -0,0 +1,192 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft
2
3import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.AndGateDefinition
4import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.BasicEventDefinition
5import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component
6import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.EventDeclaration
7import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.GateDefinition
8import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent
9import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.KOfMGateDefinition
10import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.OrGateDefinition
11import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output
12import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent
13import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event
14import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtFactory
15import java.util.LinkedHashSet
16import java.util.Map
17import org.eclipse.emf.ecore.util.EcoreUtil
18import org.eclipse.xtend.lib.annotations.Data
19
20class EventMaterializer {
21 extension val FtFactory = FtFactory.eINSTANCE
22
23 val Map<EventKey<EventDeclaration>, Event> materializationCache = newHashMap
24 val Map<EventKey<InputEvent>, EventCollection> multipleInputCache = newHashMap
25 val ConstantEvent falseEvent
26 val ConstantEvent trueEvent
27 val path = new LinkedHashSet<EventKey<? extends EventDeclaration>>
28
29 new() {
30 falseEvent = createConstantEvent => [
31 failed = false
32 ]
33 trueEvent = createConstantEvent => [
34 failed = true
35 ]
36 }
37
38 def getOrMaterialize(Output output) {
39 getOrMaterialize(output.component, output.eventDeclaration)
40 }
41
42 def Event getOrMaterialize(Component component, EventDeclaration eventDeclaration) {
43 val eventKey = new EventKey(component, eventDeclaration)
44 pushEventKey(eventKey)
45 try {
46 materializationCache.computeIfAbsent(eventKey)[materialize(it.component, it.event)]
47 } finally {
48 popEventKey(eventKey)
49 }
50 }
51
52 protected def materialize(Component component, EventDeclaration eventDeclaration) {
53 val eventName = component.name + "_" + eventDeclaration.name
54 val event = switch (eventDeclaration) {
55 InputEvent:
56 return materializeConnectedEvent(component, eventDeclaration)
57 BasicEventDefinition: {
58 val basicEvent = createBasicEvent
59 basicEvent.distribution = EcoreUtil.copy(eventDeclaration.distribution)
60 basicEvent
61 }
62 GateDefinition: {
63 val inputs = collectInputs(component, eventDeclaration)
64 val gate = switch (eventDeclaration) {
65 AndGateDefinition:
66 if (inputs.containsFalseEvent) {
67 return falseEvent
68 } else if (inputs.empty) {
69 return trueEvent
70 } else if (inputs.containsExactlyOneRandomEvent) {
71 return inputs.toSingleRandomEvent
72 } else {
73 createAndGate
74 }
75 OrGateDefinition:
76 if (inputs.containsTrueEvent) {
77 return trueEvent
78 } else if (inputs.empty) {
79 return falseEvent
80 } else if (inputs.containsExactlyOneRandomEvent) {
81 return inputs.toSingleRandomEvent
82 } else {
83 createOrGate
84 }
85 KOfMGateDefinition: {
86 val requiredTrueInputs = inputs.count * eventDeclaration.k / eventDeclaration.m
87 val k = requiredTrueInputs - inputs.getTrueEventCount
88 val m = inputs.variableEventCount
89 if (k == 0) {
90 return trueEvent
91 } else if (k > m) {
92 return falseEvent
93 } else if (inputs.containsExactlyOneRandomEvent) {
94 return inputs.toSingleRandomEvent
95 } else if (k == 1) {
96 createOrGate
97 } else if (k == m) {
98 createAndGate
99 } else {
100 val kOfMGate = createKOfMGate
101 kOfMGate.k = k
102 kOfMGate
103 }
104 }
105 default:
106 throw new IllegalArgumentException("Unknown gate definition: " + eventDeclaration)
107 }
108 gate.inputEvents.addAll(inputs.getRandomEvents)
109 gate
110 }
111 default:
112 throw new IllegalArgumentException("Unknown event declaration: " + eventDeclaration)
113 }
114 event.name = eventName
115 event
116 }
117
118 protected def materializeConnectedEvent(Component component, InputEvent inputEvent) {
119 if (inputEvent.multiple) {
120 throw new IllegalArgumentException('''Cannot materialize multiple nput «component.name»_«inputEvent.name»''')
121 }
122 val input = findInput(component, inputEvent)
123 val incomingConnections = input.incomingConnections
124 if (incomingConnections.size != 1) {
125 throw new IllegalArgumentException('''Input «component.name»_«inputEvent.name» has «incomingConnections.size» connections instead of 1''')
126 }
127 val output = incomingConnections.head.output
128 getOrMaterialize(output.component, output.eventDeclaration)
129 }
130
131 protected def collectInputs(Component component, GateDefinition gateDefinition) {
132 val builder = EventCollection.builder
133 for (inputEventDeclaration : gateDefinition.inputEvents) {
134 switch (inputEventDeclaration) {
135 InputEvent case inputEventDeclaration.multiple: {
136 val materializedEvents = getOrMaterializeConnectedEvents(component, inputEventDeclaration)
137 builder.addAll(materializedEvents)
138 }
139 default:
140 builder.add(getOrMaterialize(component, inputEventDeclaration))
141 }
142 }
143 builder.build
144 }
145
146 protected def getOrMaterializeConnectedEvents(Component component, InputEvent inputEvent) {
147 val inputKey = new EventKey(component, inputEvent)
148 pushEventKey(inputKey)
149 try {
150 multipleInputCache.computeIfAbsent(inputKey)[materializeConnectedEvents(it.component, it.event)]
151 } finally {
152 popEventKey(inputKey)
153 }
154 }
155
156 protected def materializeConnectedEvents(Component component, InputEvent inputEvent) {
157 val input = findInput(component, inputEvent)
158 val builder = EventCollection.builder
159 for (connection : input.incomingConnections) {
160 val materializedEvent = getOrMaterialize(connection.output)
161 builder.add(materializedEvent)
162 }
163 builder.build
164 }
165
166 protected def findInput(Component component, InputEvent inputEvent) {
167 val input = component.inputs.findFirst[it.inputEvent == inputEvent]
168 if (input === null) {
169 throw new IllegalArgumentException('''No input «inputEvent» in component «component»''')
170 }
171 return input
172 }
173
174 private def pushEventKey(EventKey<? extends EventDeclaration> eventKey) {
175 if (!path.add(eventKey)) {
176 throw new IllegalStateException(
177 '''Circular dependency [«FOR ancestor : path»«ancestor», «ENDFOR»«eventKey»] detected''')
178 }
179 }
180
181 private def popEventKey(EventKey<? extends EventDeclaration> eventKey) {
182 path.remove(eventKey)
183 }
184
185 @Data
186 protected static class EventKey<T extends EventDeclaration> {
187 val Component component
188 val T event
189
190 override toString() '''«component.name»_«event.name»'''
191 }
192}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/FaultTreeBuilder.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/FaultTreeBuilder.xtend
new file mode 100644
index 00000000..0b0afea6
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/FaultTreeBuilder.xtend
@@ -0,0 +1,39 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft
2
3import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtFactory
4import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Gate
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent
6import java.util.Collection
7import org.eclipse.xtend.lib.annotations.Accessors
8
9class FaultTreeBuilder {
10 @Accessors
11 val faultTree = FtFactory.eINSTANCE.createFaultTree
12
13 def addTopLevel(RandomEvent event) {
14 if (faultTree.topEvent !== null) {
15 throw new IllegalStateException("Top event was already set")
16 }
17 add(event)
18 faultTree.topEvent = event
19 }
20
21 protected def void add(RandomEvent event) {
22 if (faultTree.eContainer == faultTree) {
23 return
24 }
25 if (faultTree.eContainer !== null) {
26 throw new IllegalStateException("Event is already in a different fault tree")
27 }
28 faultTree.events += event
29 if (event instanceof Gate) {
30 addAll(event.inputEvents)
31 }
32 }
33
34 protected def addAll(Collection<RandomEvent> events) {
35 for (event : events) {
36 add(event)
37 }
38 }
39}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.xtend
index 36aac5e1..062de3df 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.xtend
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.xtend
@@ -23,5 +23,6 @@ class Ecore2CftTransformation {
23 for (handler : mappingHandlers) { 23 for (handler : mappingHandlers) {
24 handler.instantiateConnections(trace) 24 handler.instantiateConnections(trace)
25 } 25 }
26 trace.componentFaultTree
26 } 27 }
27} 28}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/Ft2GalileoTransformation.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/Ft2GalileoTransformation.xtend
new file mode 100644
index 00000000..732d9fed
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/Ft2GalileoTransformation.xtend
@@ -0,0 +1,56 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ft2galileo
2
3import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.AndGate
4import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.BasicEvent
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantDistribution
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Distribution
7import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ExponentialDistribution
8import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FaultTree
9import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Gate
10import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.KOfMGate
11import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.OrGate
12import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent
13import org.eclipse.xtend2.lib.StringConcatenationClient
14
15class Ft2GalileoTransformation {
16 def toGalileo(FaultTree faultTree) '''
17 toplevel «faultTree.topEvent.name»;
18 «FOR event : faultTree.events»
19 «event.name» «defineEvent(event)»;
20 «ENDFOR»
21 '''
22
23 protected dispatch def defineEvent(BasicEvent basicEvent) {
24 defineDistribution(basicEvent.distribution)
25 }
26
27 protected dispatch def StringConcatenationClient defineDistribution(ConstantDistribution distribution) {
28 '''p=«distribution.p»'''
29 }
30
31 protected dispatch def StringConcatenationClient defineDistribution(ExponentialDistribution distribution) {
32 '''lambda=«distribution.lambda»'''
33 }
34
35 protected dispatch def StringConcatenationClient defineDistribution(Distribution distribution) {
36 throw new IllegalArgumentException("Unknown distribution: " + distribution)
37 }
38
39 protected dispatch def StringConcatenationClient defineEvent(Gate gate) {
40 '''«defineGate(gate)» «FOR input : gate.inputEvents SEPARATOR " "»«input.name»«ENDFOR»'''
41 }
42
43 protected dispatch def StringConcatenationClient defineGate(AndGate gate) '''and'''
44
45 protected dispatch def StringConcatenationClient defineGate(OrGate gate) '''or'''
46
47 protected dispatch def StringConcatenationClient defineGate(KOfMGate gate) '''«gate.k»of«gate.inputEvents.size»'''
48
49 protected dispatch def StringConcatenationClient defineGate(Gate gate) {
50 throw new IllegalArgumentException("Unknown gate: " + gate)
51 }
52
53 protected dispatch def StringConcatenationClient defineEvent(RandomEvent randomEvent) {
54 throw new IllegalArgumentException("Unknown random even: " + randomEvent)
55 }
56}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/ReliabilityResult.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/ReliabilityResult.xtend
new file mode 100644
index 00000000..19c3d17d
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/ReliabilityResult.xtend
@@ -0,0 +1,51 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver
2
3import org.eclipse.xtend.lib.annotations.Data
4import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor
5
6abstract class ReliabilityResult {
7 public static val TIMEOUT = new Unknown("Solver timed out")
8 public static val MEMOUT = new Unknown("Solver out of memory")
9
10 abstract def Solution getOrThrow()
11
12 @Data
13 static final class Solution extends ReliabilityResult {
14 val double lowerBound
15 val double upperBound
16
17 new(double value) {
18 this(value, value)
19 }
20
21 new(double lowerBound, double upperBound) {
22 if (lowerBound > upperBound) {
23 throw new IllegalArgumentException("lowerBound must not be larger than upperBound")
24 }
25 this.lowerBound = lowerBound
26 this.upperBound = upperBound
27 }
28
29 override getOrThrow() {
30 this
31 }
32 }
33
34 @Data
35 static final class Unknown extends ReliabilityResult {
36 val String message
37 val Throwable cause
38
39 @FinalFieldsConstructor
40 new() {
41 }
42
43 new(String message) {
44 this(message, null)
45 }
46
47 override getOrThrow() {
48 throw new RuntimeException(message, cause)
49 }
50 }
51}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftConfiguration.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftConfiguration.xtend
new file mode 100644
index 00000000..d9059bfc
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftConfiguration.xtend
@@ -0,0 +1,45 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver
2
3import hu.bme.mit.inf.dslreasoner.logic.model.builder.SolverConfiguration
4
5final class StormDftConfiguration extends SolverConfiguration {
6 public static val DEFAULT_SOLVER_PATH = "storm-dft"
7
8 public double precision = 1e-6
9
10 public boolean bisimulation = true
11
12 public boolean symmetryReduction = true
13
14 public boolean modularization = true
15
16 public boolean dontCarePropagation = true
17
18 public double approximation = 0
19
20 public var approximationHeuristic = ApproximationHeuristic.NONE
21
22 public FtAnalysisObjective objective
23
24 def isApproximationInUse() {
25 approximationHeuristic != ApproximationHeuristic.NONE
26 }
27}
28
29abstract class FtAnalysisObjective {
30 public static val MTTF = new FtAnalysisObjective {
31 }
32
33 private new() {
34 }
35
36 static final class TimeBound extends FtAnalysisObjective {
37 public double timeBound = 0
38 }
39}
40
41enum ApproximationHeuristic {
42 NONE,
43 DEPTH
44// See https://github.com/moves-rwth/storm/issues/35 for additional approximation heuristics.
45}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftHandler.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftHandler.xtend
new file mode 100644
index 00000000..91c6a0d0
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftHandler.xtend
@@ -0,0 +1,186 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver
2
3import com.google.common.collect.ImmutableList
4import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
5import hu.bme.mit.inf.dslreasoner.logic.model.builder.SolverConfiguration
6import java.io.BufferedReader
7import java.io.IOException
8import java.io.InputStream
9import java.io.InputStreamReader
10import java.util.regex.Pattern
11import jnr.constants.platform.Signal
12import org.apache.commons.lang.SystemUtils
13
14class StormDftException extends RuntimeException {
15 new(String s) {
16 super(s)
17 }
18
19 new(String s, Exception e) {
20 super(s, e)
21 }
22}
23
24class StormDftHandler {
25 static val DOUBLE_REGEX = "[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?"
26 static val SINGLE_RESULT_GROUP = "single"
27 static val LOWER_BOUND_GROUP = "lower"
28 static val UPPER_BOUND_GROUP = "upper"
29 static val RESULT_REGEX = '''^Result:\s*\[(?:(?<«SINGLE_RESULT_GROUP»>«DOUBLE_REGEX»)|\((?<«LOWER_BOUND_GROUP»>«DOUBLE_REGEX»),\s*(?<«UPPER_BOUND_GROUP»>«DOUBLE_REGEX»)\))\]'''
30 static val RESULT_PATTERN = Pattern.compile(RESULT_REGEX)
31
32 // See http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/jdk7-b147/src/solaris/native/java/lang/UNIXProcess_md.c#l332
33 static val SIGNAL_EXIT_VALUE_OFFSET = if(SystemUtils.IS_OS_SOLARIS) 0 else 0x80
34
35 static val STORM_GENERAL_ERROR = (-1).bitwiseAnd(0xff)
36 static val STORM_TIMEOUT = (-2).bitwiseAnd(0xff)
37 static val STORM_MEMOUT = (-3).bitwiseAnd(0xff)
38
39 def callSolver(String dftFilePath, StormDftConfiguration configuration) {
40 val commandLine = configuration.toCommandLine(dftFilePath)
41 val documentationLevel = configuration.documentationLevel
42 val printOutput = documentationLevel == DocumentationLevel.NORMAL ||
43 documentationLevel == DocumentationLevel.FULL
44 val processBuilder = new ProcessBuilder().command(commandLine)
45 var Process process = null
46 try {
47 try {
48 process = processBuilder.start
49 process.outputStream.close
50 val result = readOutput(process.inputStream, printOutput)
51 val error = readError(process.errorStream, printOutput)
52 val exitValue = process.waitFor
53 if (result === null) {
54 interpretExitStatus(exitValue, error)
55 } else {
56 result
57 }
58 } catch (IOException e) {
59 throw new StormDftException("Error during input/output handling of the stochastic solver.", e)
60 }
61 } catch (Exception e) {
62 if (process !== null) {
63 process.destroyForcibly.waitFor
64 }
65 throw e
66 }
67 }
68
69 private def toCommandLine(extension StormDftConfiguration configuration, String dftFilePath) {
70 extension val optionsBuilder = ImmutableList.builder
71 add(solverPath ?: StormDftConfiguration.DEFAULT_SOLVER_PATH)
72 if (runtimeLimit != SolverConfiguration.Unlimited) {
73 add("--timeout", runtimeLimit.toString)
74 }
75 add("--precision", precision.toString)
76 if (bisimulation) {
77 add("--bisimulation")
78 }
79 if (symmetryReduction) {
80 add("--symmetryreduction")
81 }
82 if (modularization) {
83 add("--modularisation")
84 }
85 if (!dontCarePropagation) {
86 add("--disabledc")
87 }
88 if (approximationInUse) {
89 val heuristicName = switch (approximationHeuristic) {
90 case DEPTH:
91 "depth"
92 default:
93 throw new IllegalArgumentException("Unknown approximation heuristic: " + approximationHeuristic)
94 }
95 add("--approximation", approximation.toString, "--approximationheuristic", heuristicName)
96 }
97 add("--dftfile", dftFilePath)
98 switch (objective) {
99 case FtAnalysisObjective.MTTF:
100 add("--expectedtime")
101 FtAnalysisObjective.TimeBound:
102 add("--timebound")
103 default:
104 throw new IllegalArgumentException("Unknown analysis objective: " + objective)
105 }
106 if (documentationLevel == DocumentationLevel.FULL) {
107 add("--verbose")
108 }
109 build
110 }
111
112 private def readOutput(InputStream inputStream, boolean printOutput) {
113 val bufferedReader = new BufferedReader(new InputStreamReader(inputStream))
114 try {
115 var String line
116 while ((line = bufferedReader.readLine) !== null) {
117 if (printOutput) {
118 println(line)
119 }
120 val matcher = RESULT_PATTERN.matcher(line)
121 if (matcher.find) {
122 try {
123 val single = matcher.group(SINGLE_RESULT_GROUP)
124 if (single !== null) {
125 val singleValue = Double.parseDouble(single)
126 return new ReliabilityResult.Solution(singleValue)
127 }
128 val lower = matcher.group(LOWER_BOUND_GROUP)
129 val upper = matcher.group(UPPER_BOUND_GROUP)
130 if (lower !== null && upper !== null) {
131 val lowerValue = Double.parseDouble(lower)
132 val upperValue = Double.parseDouble(upper)
133 return new ReliabilityResult.Solution(lowerValue, upperValue)
134 }
135 throw new StormDftException("Inconsistent stochastic solver output: " + line)
136 } catch (NumberFormatException e) {
137 throw new StormDftException("Malformatted number from stochastic solver.", e)
138 }
139 }
140 }
141 } finally {
142 bufferedReader.close
143 }
144 null
145 }
146
147 private def readError(InputStream inputStream, boolean printOutput) {
148 val bufferedReader = new BufferedReader(new InputStreamReader(inputStream))
149 try {
150 val lines = newArrayList
151 var String line
152 while ((line = bufferedReader.readLine) !== null) {
153 if (printOutput) {
154 System.err.println(line)
155 }
156 lines += line
157 }
158 lines.join("\n")
159 } finally {
160 bufferedReader.close
161 }
162 }
163
164 private def interpretExitStatus(int exitValue, String error) {
165 switch (exitValue) {
166 case STORM_GENERAL_ERROR:
167 throw new StormDftException("Storm error: " + error)
168 case STORM_TIMEOUT,
169 case SIGNAL_EXIT_VALUE_OFFSET + Signal.SIGXCPU.intValue:
170 ReliabilityResult.TIMEOUT
171 case STORM_MEMOUT,
172 case SIGNAL_EXIT_VALUE_OFFSET + Signal.SIGXFSZ.intValue:
173 ReliabilityResult.MEMOUT
174 default: {
175 if (exitValue > SIGNAL_EXIT_VALUE_OFFSET) {
176 val signalNumber = exitValue - SIGNAL_EXIT_VALUE_OFFSET
177 val signal = Signal.values.findFirst[intValue == signalNumber]
178 if (signal !== null) {
179 throw new StormDftException("Storm unexpectedly killed by signal " + signal + ": " + error)
180 }
181 }
182 throw new StormDftException("Storm unexpectedly exit with status " + exitValue + ": " + error)
183 }
184 }
185 }
186}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftSolver.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftSolver.xtend
new file mode 100644
index 00000000..931b9f39
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftSolver.xtend
@@ -0,0 +1,43 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver
2
3import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel
4import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FaultTree
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ReliabilityModel
6import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ft2galileo.Ft2GalileoTransformation
7import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace
8
9class StormDftSolver {
10 static val DFT_FILE_NAME = "ft.dft"
11
12 val ft2Galileo = new Ft2GalileoTransformation
13 val handler = new StormDftHandler
14
15 def solve(ReliabilityModel reliabilityModel, StormDftConfiguration configuration,
16 ReasonerWorkspace reasonerWorkspace) {
17 switch (reliabilityModel) {
18 FaultTree:
19 solve(reliabilityModel, configuration, reasonerWorkspace)
20 ConstantModel: {
21 val result = if (reliabilityModel.failed) {
22 0
23 } else {
24 switch (objective : configuration.objective) {
25 case FtAnalysisObjective.MTTF: Double.POSITIVE_INFINITY
26 FtAnalysisObjective.TimeBound: 1
27 default: throw new IllegalArgumentException("Unknown objective: " + objective)
28 }
29 }
30 new ReliabilityResult.Solution(result)
31 }
32 default:
33 throw new IllegalArgumentException("Unknown reliability model: " + reliabilityModel)
34 }
35 }
36
37 def solve(FaultTree faultTree, StormDftConfiguration configuration, ReasonerWorkspace reasonerWorkspace) {
38 val galileo = ft2Galileo.toGalileo(faultTree)
39 reasonerWorkspace.writeText(DFT_FILE_NAME, galileo)
40 val dftFilePath = reasonerWorkspace.getFile(DFT_FILE_NAME).absolutePath
41 handler.callSolver(dftFilePath, configuration)
42 }
43}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.Cft2FtTransformation.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.Cft2FtTransformation.xtendbin
index 3e751774..20f1f4a7 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.Cft2FtTransformation.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.Cft2FtTransformation.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.EventCollection.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.EventCollection.xtendbin
new file mode 100644
index 00000000..54ba3d09
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.EventCollection.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.EventMaterializer.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.EventMaterializer.xtendbin
new file mode 100644
index 00000000..271c9cc0
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.EventMaterializer.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.FaultTreeBuilder.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.FaultTreeBuilder.xtendbin
new file mode 100644
index 00000000..db3a7e73
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.FaultTreeBuilder.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.gitignore b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.gitignore
index 70156b02..75154a4c 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.gitignore
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.gitignore
@@ -1 +1,8 @@
1/.Cft2FtTransformation.java._trace 1/.Cft2FtTransformation.java._trace
2/.EventMaterializer.java._trace
3/.MaterializedEvent.java._trace
4/.CollectedInputs.java._trace
5/.MaterializedEventCollection.java._trace
6/.FaultTreeBuilder.java._trace
7/.FaultModelBuilder.java._trace
8/.EventCollection.java._trace
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 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft; 1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft;
2 2
3import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree; 3import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree;
4import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent;
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event;
7import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FaultTree;
8import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtFactory;
9import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent;
10import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ReliabilityModel;
11import hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft.EventMaterializer;
12import hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft.FaultTreeBuilder;
13import org.eclipse.xtext.xbase.lib.ObjectExtensions;
14import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
4 15
5@SuppressWarnings("all") 16@SuppressWarnings("all")
6public class Cft2FtTransformation { 17public class Cft2FtTransformation {
7 public void createFaultTree(final ComponentFaultTree componentFaultTree) { 18 public ReliabilityModel createFaultTree(final ComponentFaultTree componentFaultTree) {
8 throw new UnsupportedOperationException(); 19 ReliabilityModel _xblockexpression = null;
20 {
21 final EventMaterializer materializer = new EventMaterializer();
22 final Event topEvent = materializer.getOrMaterialize(componentFaultTree.getTopEvent());
23 ReliabilityModel _switchResult = null;
24 boolean _matched = false;
25 if (topEvent instanceof ConstantEvent) {
26 _matched=true;
27 ConstantModel _createConstantModel = FtFactory.eINSTANCE.createConstantModel();
28 final Procedure1<ConstantModel> _function = (ConstantModel it) -> {
29 it.setFailed(((ConstantEvent)topEvent).isFailed());
30 };
31 _switchResult = ObjectExtensions.<ConstantModel>operator_doubleArrow(_createConstantModel, _function);
32 }
33 if (!_matched) {
34 if (topEvent instanceof RandomEvent) {
35 _matched=true;
36 FaultTree _xblockexpression_1 = null;
37 {
38 final FaultTreeBuilder builder = new FaultTreeBuilder();
39 builder.addTopLevel(((RandomEvent)topEvent));
40 _xblockexpression_1 = builder.getFaultTree();
41 }
42 _switchResult = _xblockexpression_1;
43 }
44 }
45 _xblockexpression = _switchResult;
46 }
47 return _xblockexpression;
9 } 48 }
10} 49}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventCollection.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventCollection.java
new file mode 100644
index 00000000..dceef9f8
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventCollection.java
@@ -0,0 +1,188 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft;
2
3import com.google.common.collect.ImmutableSet;
4import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent;
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent;
7import java.util.Set;
8import org.eclipse.xtend.lib.annotations.Data;
9import org.eclipse.xtext.xbase.lib.IterableExtensions;
10import org.eclipse.xtext.xbase.lib.Pure;
11import org.eclipse.xtext.xbase.lib.util.ToStringBuilder;
12
13@Data
14@SuppressWarnings("all")
15public class EventCollection {
16 public static class Builder {
17 private int falseEventCount = 0;
18
19 private int trueEventCount = 0;
20
21 private final ImmutableSet.Builder<RandomEvent> randomEventsBuilder = ImmutableSet.<RandomEvent>builder();
22
23 private Builder() {
24 }
25
26 public EventCollection.Builder add(final Event event) {
27 EventCollection.Builder _xblockexpression = null;
28 {
29 boolean _matched = false;
30 if (event instanceof ConstantEvent) {
31 _matched=true;
32 boolean _isFailed = ((ConstantEvent)event).isFailed();
33 if (_isFailed) {
34 this.trueEventCount++;
35 } else {
36 this.falseEventCount++;
37 }
38 }
39 if (!_matched) {
40 if (event instanceof RandomEvent) {
41 _matched=true;
42 this.randomEventsBuilder.add(((RandomEvent)event));
43 }
44 }
45 if (!_matched) {
46 throw new IllegalArgumentException(("Unknown event: " + event));
47 }
48 _xblockexpression = this;
49 }
50 return _xblockexpression;
51 }
52
53 public EventCollection.Builder addAll(final EventCollection materializedEvens) {
54 EventCollection.Builder _xblockexpression = null;
55 {
56 int _falseEventCount = this.falseEventCount;
57 this.falseEventCount = (_falseEventCount + materializedEvens.falseEventCount);
58 int _trueEventCount = this.trueEventCount;
59 this.trueEventCount = (_trueEventCount + materializedEvens.trueEventCount);
60 this.randomEventsBuilder.addAll(materializedEvens.randomEvents);
61 _xblockexpression = this;
62 }
63 return _xblockexpression;
64 }
65
66 public EventCollection build() {
67 ImmutableSet<RandomEvent> _build = this.randomEventsBuilder.build();
68 return new EventCollection(this.falseEventCount, this.trueEventCount, _build);
69 }
70 }
71
72 private final int falseEventCount;
73
74 private final int trueEventCount;
75
76 private final Set<RandomEvent> randomEvents;
77
78 public boolean containsFalseEvent() {
79 return (this.falseEventCount >= 1);
80 }
81
82 public boolean containsTrueEvent() {
83 return (this.trueEventCount >= 1);
84 }
85
86 public int getVariableEventCount() {
87 return this.randomEvents.size();
88 }
89
90 public boolean containsRandomEvent() {
91 int _variableEventCount = this.getVariableEventCount();
92 return (_variableEventCount >= 1);
93 }
94
95 public int getCount() {
96 int _variableEventCount = this.getVariableEventCount();
97 return ((this.falseEventCount + this.trueEventCount) + _variableEventCount);
98 }
99
100 public boolean isEmpty() {
101 return (((!this.containsFalseEvent()) && (!this.containsTrueEvent())) && (!this.containsRandomEvent()));
102 }
103
104 public boolean containsExactlyOneRandomEvent() {
105 return (((!this.containsFalseEvent()) && (!this.containsTrueEvent())) && (this.getVariableEventCount() == 1));
106 }
107
108 public RandomEvent toSingleRandomEvent() {
109 RandomEvent _xblockexpression = null;
110 {
111 boolean _containsExactlyOneRandomEvent = this.containsExactlyOneRandomEvent();
112 boolean _not = (!_containsExactlyOneRandomEvent);
113 if (_not) {
114 throw new IllegalStateException("Input collection is not a single random event");
115 }
116 _xblockexpression = IterableExtensions.<RandomEvent>head(this.randomEvents);
117 }
118 return _xblockexpression;
119 }
120
121 public static EventCollection.Builder builder() {
122 return new EventCollection.Builder();
123 }
124
125 public EventCollection(final int falseEventCount, final int trueEventCount, final Set<RandomEvent> randomEvents) {
126 super();
127 this.falseEventCount = falseEventCount;
128 this.trueEventCount = trueEventCount;
129 this.randomEvents = randomEvents;
130 }
131
132 @Override
133 @Pure
134 public int hashCode() {
135 final int prime = 31;
136 int result = 1;
137 result = prime * result + this.falseEventCount;
138 result = prime * result + this.trueEventCount;
139 return prime * result + ((this.randomEvents== null) ? 0 : this.randomEvents.hashCode());
140 }
141
142 @Override
143 @Pure
144 public boolean equals(final Object obj) {
145 if (this == obj)
146 return true;
147 if (obj == null)
148 return false;
149 if (getClass() != obj.getClass())
150 return false;
151 EventCollection other = (EventCollection) obj;
152 if (other.falseEventCount != this.falseEventCount)
153 return false;
154 if (other.trueEventCount != this.trueEventCount)
155 return false;
156 if (this.randomEvents == null) {
157 if (other.randomEvents != null)
158 return false;
159 } else if (!this.randomEvents.equals(other.randomEvents))
160 return false;
161 return true;
162 }
163
164 @Override
165 @Pure
166 public String toString() {
167 ToStringBuilder b = new ToStringBuilder(this);
168 b.add("falseEventCount", this.falseEventCount);
169 b.add("trueEventCount", this.trueEventCount);
170 b.add("randomEvents", this.randomEvents);
171 return b.toString();
172 }
173
174 @Pure
175 public int getFalseEventCount() {
176 return this.falseEventCount;
177 }
178
179 @Pure
180 public int getTrueEventCount() {
181 return this.trueEventCount;
182 }
183
184 @Pure
185 public Set<RandomEvent> getRandomEvents() {
186 return this.randomEvents;
187 }
188}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventMaterializer.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventMaterializer.java
new file mode 100644
index 00000000..70481341
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventMaterializer.java
@@ -0,0 +1,456 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft;
2
3import com.google.common.base.Objects;
4import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.AndGateDefinition;
5import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.BasicEventDefinition;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component;
7import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Connection;
8import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.EventDeclaration;
9import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.GateDefinition;
10import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input;
11import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent;
12import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.KOfMGateDefinition;
13import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.OrGateDefinition;
14import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output;
15import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.AndGate;
16import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.BasicEvent;
17import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantEvent;
18import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Distribution;
19import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Event;
20import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtFactory;
21import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Gate;
22import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.KOfMGate;
23import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.OrGate;
24import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent;
25import hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft.EventCollection;
26import java.util.LinkedHashSet;
27import java.util.Map;
28import java.util.function.Function;
29import org.eclipse.emf.common.util.EList;
30import org.eclipse.emf.ecore.util.EcoreUtil;
31import org.eclipse.xtend.lib.annotations.Data;
32import org.eclipse.xtend2.lib.StringConcatenation;
33import org.eclipse.xtext.xbase.lib.CollectionLiterals;
34import org.eclipse.xtext.xbase.lib.Extension;
35import org.eclipse.xtext.xbase.lib.Functions.Function1;
36import org.eclipse.xtext.xbase.lib.IterableExtensions;
37import org.eclipse.xtext.xbase.lib.ObjectExtensions;
38import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
39import org.eclipse.xtext.xbase.lib.Pure;
40
41@SuppressWarnings("all")
42public class EventMaterializer {
43 @Data
44 protected static class EventKey<T extends EventDeclaration> {
45 private final Component component;
46
47 private final T event;
48
49 @Override
50 public String toString() {
51 StringConcatenation _builder = new StringConcatenation();
52 String _name = this.component.getName();
53 _builder.append(_name);
54 _builder.append("_");
55 String _name_1 = this.event.getName();
56 _builder.append(_name_1);
57 return _builder.toString();
58 }
59
60 public EventKey(final Component component, final T event) {
61 super();
62 this.component = component;
63 this.event = event;
64 }
65
66 @Override
67 @Pure
68 public int hashCode() {
69 final int prime = 31;
70 int result = 1;
71 result = prime * result + ((this.component== null) ? 0 : this.component.hashCode());
72 return prime * result + ((this.event== null) ? 0 : this.event.hashCode());
73 }
74
75 @Override
76 @Pure
77 public boolean equals(final Object obj) {
78 if (this == obj)
79 return true;
80 if (obj == null)
81 return false;
82 if (getClass() != obj.getClass())
83 return false;
84 EventMaterializer.EventKey<?> other = (EventMaterializer.EventKey<?>) obj;
85 if (this.component == null) {
86 if (other.component != null)
87 return false;
88 } else if (!this.component.equals(other.component))
89 return false;
90 if (this.event == null) {
91 if (other.event != null)
92 return false;
93 } else if (!this.event.equals(other.event))
94 return false;
95 return true;
96 }
97
98 @Pure
99 public Component getComponent() {
100 return this.component;
101 }
102
103 @Pure
104 public T getEvent() {
105 return this.event;
106 }
107 }
108
109 @Extension
110 private final FtFactory _ftFactory = FtFactory.eINSTANCE;
111
112 private final Map<EventMaterializer.EventKey<EventDeclaration>, Event> materializationCache = CollectionLiterals.<EventMaterializer.EventKey<EventDeclaration>, Event>newHashMap();
113
114 private final Map<EventMaterializer.EventKey<InputEvent>, EventCollection> multipleInputCache = CollectionLiterals.<EventMaterializer.EventKey<InputEvent>, EventCollection>newHashMap();
115
116 private final ConstantEvent falseEvent;
117
118 private final ConstantEvent trueEvent;
119
120 private final LinkedHashSet<EventMaterializer.EventKey<? extends EventDeclaration>> path = new LinkedHashSet<EventMaterializer.EventKey<? extends EventDeclaration>>();
121
122 public EventMaterializer() {
123 ConstantEvent _createConstantEvent = this._ftFactory.createConstantEvent();
124 final Procedure1<ConstantEvent> _function = (ConstantEvent it) -> {
125 it.setFailed(false);
126 };
127 ConstantEvent _doubleArrow = ObjectExtensions.<ConstantEvent>operator_doubleArrow(_createConstantEvent, _function);
128 this.falseEvent = _doubleArrow;
129 ConstantEvent _createConstantEvent_1 = this._ftFactory.createConstantEvent();
130 final Procedure1<ConstantEvent> _function_1 = (ConstantEvent it) -> {
131 it.setFailed(true);
132 };
133 ConstantEvent _doubleArrow_1 = ObjectExtensions.<ConstantEvent>operator_doubleArrow(_createConstantEvent_1, _function_1);
134 this.trueEvent = _doubleArrow_1;
135 }
136
137 public Event getOrMaterialize(final Output output) {
138 return this.getOrMaterialize(output.getComponent(), output.getEventDeclaration());
139 }
140
141 public Event getOrMaterialize(final Component component, final EventDeclaration eventDeclaration) {
142 Event _xblockexpression = null;
143 {
144 final EventMaterializer.EventKey<EventDeclaration> eventKey = new EventMaterializer.EventKey<EventDeclaration>(component, eventDeclaration);
145 this.pushEventKey(eventKey);
146 Event _xtrycatchfinallyexpression = null;
147 try {
148 final Function<EventMaterializer.EventKey<EventDeclaration>, Event> _function = (EventMaterializer.EventKey<EventDeclaration> it) -> {
149 return this.materialize(it.component, it.event);
150 };
151 _xtrycatchfinallyexpression = this.materializationCache.computeIfAbsent(eventKey, _function);
152 } finally {
153 this.popEventKey(eventKey);
154 }
155 _xblockexpression = _xtrycatchfinallyexpression;
156 }
157 return _xblockexpression;
158 }
159
160 protected Event materialize(final Component component, final EventDeclaration eventDeclaration) {
161 RandomEvent _xblockexpression = null;
162 {
163 String _name = component.getName();
164 String _plus = (_name + "_");
165 String _name_1 = eventDeclaration.getName();
166 final String eventName = (_plus + _name_1);
167 RandomEvent _switchResult = null;
168 boolean _matched = false;
169 if (eventDeclaration instanceof InputEvent) {
170 _matched=true;
171 return this.materializeConnectedEvent(component, ((InputEvent)eventDeclaration));
172 }
173 if (!_matched) {
174 if (eventDeclaration instanceof BasicEventDefinition) {
175 _matched=true;
176 BasicEvent _xblockexpression_1 = null;
177 {
178 final BasicEvent basicEvent = this._ftFactory.createBasicEvent();
179 basicEvent.setDistribution(EcoreUtil.<Distribution>copy(((BasicEventDefinition)eventDeclaration).getDistribution()));
180 _xblockexpression_1 = basicEvent;
181 }
182 _switchResult = _xblockexpression_1;
183 }
184 }
185 if (!_matched) {
186 if (eventDeclaration instanceof GateDefinition) {
187 _matched=true;
188 Gate _xblockexpression_1 = null;
189 {
190 final EventCollection inputs = this.collectInputs(component, ((GateDefinition)eventDeclaration));
191 Gate _switchResult_1 = null;
192 boolean _matched_1 = false;
193 if (eventDeclaration instanceof AndGateDefinition) {
194 _matched_1=true;
195 AndGate _xifexpression = null;
196 boolean _containsFalseEvent = inputs.containsFalseEvent();
197 if (_containsFalseEvent) {
198 return this.falseEvent;
199 } else {
200 AndGate _xifexpression_1 = null;
201 boolean _isEmpty = inputs.isEmpty();
202 if (_isEmpty) {
203 return this.trueEvent;
204 } else {
205 AndGate _xifexpression_2 = null;
206 boolean _containsExactlyOneRandomEvent = inputs.containsExactlyOneRandomEvent();
207 if (_containsExactlyOneRandomEvent) {
208 return inputs.toSingleRandomEvent();
209 } else {
210 _xifexpression_2 = this._ftFactory.createAndGate();
211 }
212 _xifexpression_1 = _xifexpression_2;
213 }
214 _xifexpression = _xifexpression_1;
215 }
216 _switchResult_1 = _xifexpression;
217 }
218 if (!_matched_1) {
219 if (eventDeclaration instanceof OrGateDefinition) {
220 _matched_1=true;
221 OrGate _xifexpression = null;
222 boolean _containsTrueEvent = inputs.containsTrueEvent();
223 if (_containsTrueEvent) {
224 return this.trueEvent;
225 } else {
226 OrGate _xifexpression_1 = null;
227 boolean _isEmpty = inputs.isEmpty();
228 if (_isEmpty) {
229 return this.falseEvent;
230 } else {
231 OrGate _xifexpression_2 = null;
232 boolean _containsExactlyOneRandomEvent = inputs.containsExactlyOneRandomEvent();
233 if (_containsExactlyOneRandomEvent) {
234 return inputs.toSingleRandomEvent();
235 } else {
236 _xifexpression_2 = this._ftFactory.createOrGate();
237 }
238 _xifexpression_1 = _xifexpression_2;
239 }
240 _xifexpression = _xifexpression_1;
241 }
242 _switchResult_1 = _xifexpression;
243 }
244 }
245 if (!_matched_1) {
246 if (eventDeclaration instanceof KOfMGateDefinition) {
247 _matched_1=true;
248 Gate _xblockexpression_2 = null;
249 {
250 int _count = inputs.getCount();
251 int _k = ((KOfMGateDefinition)eventDeclaration).getK();
252 int _multiply = (_count * _k);
253 int _m = ((KOfMGateDefinition)eventDeclaration).getM();
254 final int requiredTrueInputs = (_multiply / _m);
255 int _trueEventCount = inputs.getTrueEventCount();
256 final int k = (requiredTrueInputs - _trueEventCount);
257 final int m = inputs.getVariableEventCount();
258 Gate _xifexpression = null;
259 if ((k == 0)) {
260 return this.trueEvent;
261 } else {
262 Gate _xifexpression_1 = null;
263 if ((k > m)) {
264 return this.falseEvent;
265 } else {
266 Gate _xifexpression_2 = null;
267 boolean _containsExactlyOneRandomEvent = inputs.containsExactlyOneRandomEvent();
268 if (_containsExactlyOneRandomEvent) {
269 return inputs.toSingleRandomEvent();
270 } else {
271 Gate _xifexpression_3 = null;
272 if ((k == 1)) {
273 _xifexpression_3 = this._ftFactory.createOrGate();
274 } else {
275 Gate _xifexpression_4 = null;
276 if ((k == m)) {
277 _xifexpression_4 = this._ftFactory.createAndGate();
278 } else {
279 KOfMGate _xblockexpression_3 = null;
280 {
281 final KOfMGate kOfMGate = this._ftFactory.createKOfMGate();
282 kOfMGate.setK(k);
283 _xblockexpression_3 = kOfMGate;
284 }
285 _xifexpression_4 = _xblockexpression_3;
286 }
287 _xifexpression_3 = _xifexpression_4;
288 }
289 _xifexpression_2 = _xifexpression_3;
290 }
291 _xifexpression_1 = _xifexpression_2;
292 }
293 _xifexpression = _xifexpression_1;
294 }
295 _xblockexpression_2 = _xifexpression;
296 }
297 _switchResult_1 = _xblockexpression_2;
298 }
299 }
300 if (!_matched_1) {
301 throw new IllegalArgumentException(("Unknown gate definition: " + eventDeclaration));
302 }
303 final Gate gate = _switchResult_1;
304 gate.getInputEvents().addAll(inputs.getRandomEvents());
305 _xblockexpression_1 = gate;
306 }
307 _switchResult = _xblockexpression_1;
308 }
309 }
310 if (!_matched) {
311 throw new IllegalArgumentException(("Unknown event declaration: " + eventDeclaration));
312 }
313 final RandomEvent event = _switchResult;
314 event.setName(eventName);
315 _xblockexpression = event;
316 }
317 return _xblockexpression;
318 }
319
320 protected Event materializeConnectedEvent(final Component component, final InputEvent inputEvent) {
321 Event _xblockexpression = null;
322 {
323 boolean _isMultiple = inputEvent.isMultiple();
324 if (_isMultiple) {
325 StringConcatenation _builder = new StringConcatenation();
326 _builder.append("Cannot materialize multiple nput ");
327 String _name = component.getName();
328 _builder.append(_name);
329 _builder.append("_");
330 String _name_1 = inputEvent.getName();
331 _builder.append(_name_1);
332 throw new IllegalArgumentException(_builder.toString());
333 }
334 final Input input = this.findInput(component, inputEvent);
335 final EList<Connection> incomingConnections = input.getIncomingConnections();
336 int _size = incomingConnections.size();
337 boolean _notEquals = (_size != 1);
338 if (_notEquals) {
339 StringConcatenation _builder_1 = new StringConcatenation();
340 _builder_1.append("Input ");
341 String _name_2 = component.getName();
342 _builder_1.append(_name_2);
343 _builder_1.append("_");
344 String _name_3 = inputEvent.getName();
345 _builder_1.append(_name_3);
346 _builder_1.append(" has ");
347 int _size_1 = incomingConnections.size();
348 _builder_1.append(_size_1);
349 _builder_1.append(" connections instead of 1");
350 throw new IllegalArgumentException(_builder_1.toString());
351 }
352 final Output output = IterableExtensions.<Connection>head(incomingConnections).getOutput();
353 _xblockexpression = this.getOrMaterialize(output.getComponent(), output.getEventDeclaration());
354 }
355 return _xblockexpression;
356 }
357
358 protected EventCollection collectInputs(final Component component, final GateDefinition gateDefinition) {
359 EventCollection _xblockexpression = null;
360 {
361 final EventCollection.Builder builder = EventCollection.builder();
362 EList<EventDeclaration> _inputEvents = gateDefinition.getInputEvents();
363 for (final EventDeclaration inputEventDeclaration : _inputEvents) {
364 boolean _matched = false;
365 if (inputEventDeclaration instanceof InputEvent) {
366 boolean _isMultiple = ((InputEvent)inputEventDeclaration).isMultiple();
367 if (_isMultiple) {
368 _matched=true;
369 final EventCollection materializedEvents = this.getOrMaterializeConnectedEvents(component, ((InputEvent)inputEventDeclaration));
370 builder.addAll(materializedEvents);
371 }
372 }
373 if (!_matched) {
374 builder.add(this.getOrMaterialize(component, inputEventDeclaration));
375 }
376 }
377 _xblockexpression = builder.build();
378 }
379 return _xblockexpression;
380 }
381
382 protected EventCollection getOrMaterializeConnectedEvents(final Component component, final InputEvent inputEvent) {
383 EventCollection _xblockexpression = null;
384 {
385 final EventMaterializer.EventKey<InputEvent> inputKey = new EventMaterializer.EventKey<InputEvent>(component, inputEvent);
386 this.pushEventKey(inputKey);
387 EventCollection _xtrycatchfinallyexpression = null;
388 try {
389 final Function<EventMaterializer.EventKey<InputEvent>, EventCollection> _function = (EventMaterializer.EventKey<InputEvent> it) -> {
390 return this.materializeConnectedEvents(it.component, it.event);
391 };
392 _xtrycatchfinallyexpression = this.multipleInputCache.computeIfAbsent(inputKey, _function);
393 } finally {
394 this.popEventKey(inputKey);
395 }
396 _xblockexpression = _xtrycatchfinallyexpression;
397 }
398 return _xblockexpression;
399 }
400
401 protected EventCollection materializeConnectedEvents(final Component component, final InputEvent inputEvent) {
402 EventCollection _xblockexpression = null;
403 {
404 final Input input = this.findInput(component, inputEvent);
405 final EventCollection.Builder builder = EventCollection.builder();
406 EList<Connection> _incomingConnections = input.getIncomingConnections();
407 for (final Connection connection : _incomingConnections) {
408 {
409 final Event materializedEvent = this.getOrMaterialize(connection.getOutput());
410 builder.add(materializedEvent);
411 }
412 }
413 _xblockexpression = builder.build();
414 }
415 return _xblockexpression;
416 }
417
418 protected Input findInput(final Component component, final InputEvent inputEvent) {
419 final Function1<Input, Boolean> _function = (Input it) -> {
420 InputEvent _inputEvent = it.getInputEvent();
421 return Boolean.valueOf(Objects.equal(_inputEvent, inputEvent));
422 };
423 final Input input = IterableExtensions.<Input>findFirst(component.getInputs(), _function);
424 if ((input == null)) {
425 StringConcatenation _builder = new StringConcatenation();
426 _builder.append("No input ");
427 _builder.append(inputEvent);
428 _builder.append(" in component ");
429 _builder.append(component);
430 throw new IllegalArgumentException(_builder.toString());
431 }
432 return input;
433 }
434
435 private void pushEventKey(final EventMaterializer.EventKey<? extends EventDeclaration> eventKey) {
436 boolean _add = this.path.add(eventKey);
437 boolean _not = (!_add);
438 if (_not) {
439 StringConcatenation _builder = new StringConcatenation();
440 _builder.append("Circular dependency [");
441 {
442 for(final EventMaterializer.EventKey<? extends EventDeclaration> ancestor : this.path) {
443 _builder.append(ancestor);
444 _builder.append(", ");
445 }
446 }
447 _builder.append(eventKey);
448 _builder.append("] detected");
449 throw new IllegalStateException(_builder.toString());
450 }
451 }
452
453 private boolean popEventKey(final EventMaterializer.EventKey<? extends EventDeclaration> eventKey) {
454 return this.path.remove(eventKey);
455 }
456}
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 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft;
2
3import com.google.common.base.Objects;
4import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FaultTree;
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FtFactory;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Gate;
7import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent;
8import java.util.Collection;
9import org.eclipse.emf.common.util.EList;
10import org.eclipse.emf.ecore.EObject;
11import org.eclipse.xtend.lib.annotations.Accessors;
12import org.eclipse.xtext.xbase.lib.Pure;
13
14@SuppressWarnings("all")
15public class FaultTreeBuilder {
16 @Accessors
17 private final FaultTree faultTree = FtFactory.eINSTANCE.createFaultTree();
18
19 public void addTopLevel(final RandomEvent event) {
20 RandomEvent _topEvent = this.faultTree.getTopEvent();
21 boolean _tripleNotEquals = (_topEvent != null);
22 if (_tripleNotEquals) {
23 throw new IllegalStateException("Top event was already set");
24 }
25 this.add(event);
26 this.faultTree.setTopEvent(event);
27 }
28
29 protected void add(final RandomEvent event) {
30 EObject _eContainer = this.faultTree.eContainer();
31 boolean _equals = Objects.equal(_eContainer, this.faultTree);
32 if (_equals) {
33 return;
34 }
35 EObject _eContainer_1 = this.faultTree.eContainer();
36 boolean _tripleNotEquals = (_eContainer_1 != null);
37 if (_tripleNotEquals) {
38 throw new IllegalStateException("Event is already in a different fault tree");
39 }
40 EList<RandomEvent> _events = this.faultTree.getEvents();
41 _events.add(event);
42 if ((event instanceof Gate)) {
43 this.addAll(((Gate)event).getInputEvents());
44 }
45 }
46
47 protected void addAll(final Collection<RandomEvent> events) {
48 for (final RandomEvent event : events) {
49 this.add(event);
50 }
51 }
52
53 @Pure
54 public FaultTree getFaultTree() {
55 return this.faultTree;
56 }
57}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentFaultTreeTrace.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentFaultTreeTrace.xtendbin
index d26ae359..f705fefe 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentFaultTreeTrace.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentFaultTreeTrace.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentInstanceTrace.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentInstanceTrace.xtendbin
index 03d6064f..bab76345 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentInstanceTrace.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentInstanceTrace.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentNameGenerator.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentNameGenerator.xtendbin
index 1f6758ac..257bfc56 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentNameGenerator.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentNameGenerator.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.Ecore2CftTransformation.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.Ecore2CftTransformation.xtendbin
index 3569c02f..a1339a18 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.Ecore2CftTransformation.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.Ecore2CftTransformation.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.InputTrace.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.InputTrace.xtendbin
index 378550ba..ba19d0fb 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.InputTrace.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.InputTrace.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.LookupHandler.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.LookupHandler.xtendbin
index 0b0e534a..1e8612b2 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.LookupHandler.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.LookupHandler.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingHandler.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingHandler.xtendbin
index 5e26d4e4..ebe80f2e 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingHandler.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingHandler.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingQueries.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingQueries.xtendbin
index 8fb7f13f..03bd16f8 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingQueries.xtendbin
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingQueries.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.java
index 8b2d9d97..a63c8e78 100644
--- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.java
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.java
@@ -3,6 +3,7 @@ package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft;
3import com.google.common.collect.ImmutableList; 3import com.google.common.collect.ImmutableList;
4import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.MappingDefinition; 4import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.MappingDefinition;
5import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.TransformationDefinition; 5import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.TransformationDefinition;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree;
6import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentFaultTreeTrace; 7import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentFaultTreeTrace;
7import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.MappingHandler; 8import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.MappingHandler;
8import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.MappingQueries; 9import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.MappingQueries;
@@ -23,13 +24,18 @@ public class Ecore2CftTransformation {
23 this.mappingHandlers = ImmutableList.<MappingHandler>copyOf(ListExtensions.<MappingDefinition, MappingHandler>map(transformationDefinition.getMappingDefinitions(), _function)); 24 this.mappingHandlers = ImmutableList.<MappingHandler>copyOf(ListExtensions.<MappingDefinition, MappingHandler>map(transformationDefinition.getMappingDefinitions(), _function));
24 } 25 }
25 26
26 public void createComponentFaultTree() { 27 public ComponentFaultTree createComponentFaultTree() {
27 final ComponentFaultTreeTrace trace = new ComponentFaultTreeTrace(); 28 ComponentFaultTree _xblockexpression = null;
28 for (final MappingHandler handler : this.mappingHandlers) { 29 {
29 handler.instantiateComponents(trace); 30 final ComponentFaultTreeTrace trace = new ComponentFaultTreeTrace();
30 } 31 for (final MappingHandler handler : this.mappingHandlers) {
31 for (final MappingHandler handler_1 : this.mappingHandlers) { 32 handler.instantiateComponents(trace);
32 handler_1.instantiateConnections(trace); 33 }
34 for (final MappingHandler handler_1 : this.mappingHandlers) {
35 handler_1.instantiateConnections(trace);
36 }
37 _xblockexpression = trace.getComponentFaultTree();
33 } 38 }
39 return _xblockexpression;
34 } 40 }
35} 41}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/.Ft2GalileoTransformation.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/.Ft2GalileoTransformation.xtendbin
new file mode 100644
index 00000000..9fe75a0f
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/.Ft2GalileoTransformation.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/.gitignore b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/.gitignore
new file mode 100644
index 00000000..3f932890
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/.gitignore
@@ -0,0 +1 @@
/.Ft2GalileoTransformation.java._trace
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/Ft2GalileoTransformation.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/Ft2GalileoTransformation.java
new file mode 100644
index 00000000..e900c62a
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ft2galileo/Ft2GalileoTransformation.java
@@ -0,0 +1,181 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ft2galileo;
2
3import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.AndGate;
4import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.BasicEvent;
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantDistribution;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Distribution;
7import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ExponentialDistribution;
8import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FaultTree;
9import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.Gate;
10import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.KOfMGate;
11import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.OrGate;
12import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent;
13import java.util.Arrays;
14import org.eclipse.emf.common.util.EList;
15import org.eclipse.xtend2.lib.StringConcatenation;
16import org.eclipse.xtend2.lib.StringConcatenationClient;
17
18@SuppressWarnings("all")
19public class Ft2GalileoTransformation {
20 public CharSequence toGalileo(final FaultTree faultTree) {
21 StringConcatenation _builder = new StringConcatenation();
22 _builder.append("toplevel ");
23 String _name = faultTree.getTopEvent().getName();
24 _builder.append(_name);
25 _builder.append(";");
26 _builder.newLineIfNotEmpty();
27 {
28 EList<RandomEvent> _events = faultTree.getEvents();
29 for(final RandomEvent event : _events) {
30 String _name_1 = event.getName();
31 _builder.append(_name_1);
32 _builder.append(" ");
33 StringConcatenationClient _defineEvent = this.defineEvent(event);
34 _builder.append(_defineEvent);
35 _builder.append(";");
36 _builder.newLineIfNotEmpty();
37 }
38 }
39 return _builder;
40 }
41
42 protected StringConcatenationClient _defineEvent(final BasicEvent basicEvent) {
43 return this.defineDistribution(basicEvent.getDistribution());
44 }
45
46 protected StringConcatenationClient _defineDistribution(final ConstantDistribution distribution) {
47 StringConcatenationClient _client = new StringConcatenationClient() {
48 @Override
49 protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) {
50 _builder.append("p=");
51 double _p = distribution.getP();
52 _builder.append(_p);
53 }
54 };
55 return _client;
56 }
57
58 protected StringConcatenationClient _defineDistribution(final ExponentialDistribution distribution) {
59 StringConcatenationClient _client = new StringConcatenationClient() {
60 @Override
61 protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) {
62 _builder.append("lambda=");
63 double _lambda = distribution.getLambda();
64 _builder.append(_lambda);
65 }
66 };
67 return _client;
68 }
69
70 protected StringConcatenationClient _defineDistribution(final Distribution distribution) {
71 throw new IllegalArgumentException(("Unknown distribution: " + distribution));
72 }
73
74 protected StringConcatenationClient _defineEvent(final Gate gate) {
75 StringConcatenationClient _client = new StringConcatenationClient() {
76 @Override
77 protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) {
78 StringConcatenationClient _defineGate = Ft2GalileoTransformation.this.defineGate(gate);
79 _builder.append(_defineGate);
80 _builder.append(" ");
81 {
82 EList<RandomEvent> _inputEvents = gate.getInputEvents();
83 boolean _hasElements = false;
84 for(final RandomEvent input : _inputEvents) {
85 if (!_hasElements) {
86 _hasElements = true;
87 } else {
88 _builder.appendImmediate(" ", "");
89 }
90 String _name = input.getName();
91 _builder.append(_name);
92 }
93 }
94 }
95 };
96 return _client;
97 }
98
99 protected StringConcatenationClient _defineGate(final AndGate gate) {
100 StringConcatenationClient _client = new StringConcatenationClient() {
101 @Override
102 protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) {
103 _builder.append("and");
104 }
105 };
106 return _client;
107 }
108
109 protected StringConcatenationClient _defineGate(final OrGate gate) {
110 StringConcatenationClient _client = new StringConcatenationClient() {
111 @Override
112 protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) {
113 _builder.append("or");
114 }
115 };
116 return _client;
117 }
118
119 protected StringConcatenationClient _defineGate(final KOfMGate gate) {
120 StringConcatenationClient _client = new StringConcatenationClient() {
121 @Override
122 protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) {
123 int _k = gate.getK();
124 _builder.append(_k);
125 _builder.append("of");
126 int _size = gate.getInputEvents().size();
127 _builder.append(_size);
128 }
129 };
130 return _client;
131 }
132
133 protected StringConcatenationClient _defineGate(final Gate gate) {
134 throw new IllegalArgumentException(("Unknown gate: " + gate));
135 }
136
137 protected StringConcatenationClient _defineEvent(final RandomEvent randomEvent) {
138 throw new IllegalArgumentException(("Unknown random even: " + randomEvent));
139 }
140
141 protected StringConcatenationClient defineEvent(final RandomEvent basicEvent) {
142 if (basicEvent instanceof BasicEvent) {
143 return _defineEvent((BasicEvent)basicEvent);
144 } else if (basicEvent instanceof Gate) {
145 return _defineEvent((Gate)basicEvent);
146 } else if (basicEvent != null) {
147 return _defineEvent(basicEvent);
148 } else {
149 throw new IllegalArgumentException("Unhandled parameter types: " +
150 Arrays.<Object>asList(basicEvent).toString());
151 }
152 }
153
154 protected StringConcatenationClient defineDistribution(final Distribution distribution) {
155 if (distribution instanceof ConstantDistribution) {
156 return _defineDistribution((ConstantDistribution)distribution);
157 } else if (distribution instanceof ExponentialDistribution) {
158 return _defineDistribution((ExponentialDistribution)distribution);
159 } else if (distribution != null) {
160 return _defineDistribution(distribution);
161 } else {
162 throw new IllegalArgumentException("Unhandled parameter types: " +
163 Arrays.<Object>asList(distribution).toString());
164 }
165 }
166
167 protected StringConcatenationClient defineGate(final Gate gate) {
168 if (gate instanceof AndGate) {
169 return _defineGate((AndGate)gate);
170 } else if (gate instanceof KOfMGate) {
171 return _defineGate((KOfMGate)gate);
172 } else if (gate instanceof OrGate) {
173 return _defineGate((OrGate)gate);
174 } else if (gate != null) {
175 return _defineGate(gate);
176 } else {
177 throw new IllegalArgumentException("Unhandled parameter types: " +
178 Arrays.<Object>asList(gate).toString());
179 }
180 }
181}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.ReliabilityResult.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.ReliabilityResult.xtendbin
new file mode 100644
index 00000000..57c4608d
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.ReliabilityResult.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.StormDftConfiguration.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.StormDftConfiguration.xtendbin
new file mode 100644
index 00000000..f5cb52f4
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.StormDftConfiguration.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.StormDftHandler.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.StormDftHandler.xtendbin
new file mode 100644
index 00000000..5dad0728
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.StormDftHandler.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.StormDftSolver.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.StormDftSolver.xtendbin
new file mode 100644
index 00000000..abd8a501
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.StormDftSolver.xtendbin
Binary files differ
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.gitignore b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.gitignore
new file mode 100644
index 00000000..59cc8fe8
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/.gitignore
@@ -0,0 +1,9 @@
1/.StormDftSolver.java._trace
2/.StormDftConfiguration.java._trace
3/.StormDftMttfConfiguration.java._trace
4/.FtAnalysisObjective.java._trace
5/.ApproximationHeuristic.java._trace
6/.StormDftHandler.java._trace
7/.StormDftException.java._trace
8/.ReliabilityModelSolution.java._trace
9/.ReliabilityResult.java._trace
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/ApproximationHeuristic.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/ApproximationHeuristic.java
new file mode 100644
index 00000000..822d4f36
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/ApproximationHeuristic.java
@@ -0,0 +1,8 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver;
2
3@SuppressWarnings("all")
4public enum ApproximationHeuristic {
5 NONE,
6
7 DEPTH;
8}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/FtAnalysisObjective.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/FtAnalysisObjective.java
new file mode 100644
index 00000000..528ada42
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/FtAnalysisObjective.java
@@ -0,0 +1,14 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver;
2
3@SuppressWarnings("all")
4public abstract class FtAnalysisObjective {
5 public static final class TimeBound extends FtAnalysisObjective {
6 public double timeBound = 0;
7 }
8
9 public static final FtAnalysisObjective MTTF = new FtAnalysisObjective() {
10 };
11
12 private FtAnalysisObjective() {
13 }
14}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/ReliabilityResult.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/ReliabilityResult.java
new file mode 100644
index 00000000..c8c8b000
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/ReliabilityResult.java
@@ -0,0 +1,156 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver;
2
3import org.eclipse.xtend.lib.annotations.Data;
4import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor;
5import org.eclipse.xtext.xbase.lib.Pure;
6import org.eclipse.xtext.xbase.lib.util.ToStringBuilder;
7
8@SuppressWarnings("all")
9public abstract class ReliabilityResult {
10 @Data
11 public static final class Solution extends ReliabilityResult {
12 private final double lowerBound;
13
14 private final double upperBound;
15
16 public Solution(final double value) {
17 this(value, value);
18 }
19
20 public Solution(final double lowerBound, final double upperBound) {
21 if ((lowerBound > upperBound)) {
22 throw new IllegalArgumentException("lowerBound must not be larger than upperBound");
23 }
24 this.lowerBound = lowerBound;
25 this.upperBound = upperBound;
26 }
27
28 @Override
29 public ReliabilityResult.Solution getOrThrow() {
30 return this;
31 }
32
33 @Override
34 @Pure
35 public int hashCode() {
36 final int prime = 31;
37 int result = 1;
38 result = prime * result + (int) (Double.doubleToLongBits(this.lowerBound) ^ (Double.doubleToLongBits(this.lowerBound) >>> 32));
39 return prime * result + (int) (Double.doubleToLongBits(this.upperBound) ^ (Double.doubleToLongBits(this.upperBound) >>> 32));
40 }
41
42 @Override
43 @Pure
44 public boolean equals(final Object obj) {
45 if (this == obj)
46 return true;
47 if (obj == null)
48 return false;
49 if (getClass() != obj.getClass())
50 return false;
51 ReliabilityResult.Solution other = (ReliabilityResult.Solution) obj;
52 if (Double.doubleToLongBits(other.lowerBound) != Double.doubleToLongBits(this.lowerBound))
53 return false;
54 if (Double.doubleToLongBits(other.upperBound) != Double.doubleToLongBits(this.upperBound))
55 return false;
56 return true;
57 }
58
59 @Override
60 @Pure
61 public String toString() {
62 return new ToStringBuilder(this)
63 .addAllFields()
64 .toString();
65 }
66
67 @Pure
68 public double getLowerBound() {
69 return this.lowerBound;
70 }
71
72 @Pure
73 public double getUpperBound() {
74 return this.upperBound;
75 }
76 }
77
78 @Data
79 public static final class Unknown extends ReliabilityResult {
80 private final String message;
81
82 private final Throwable cause;
83
84 @FinalFieldsConstructor
85 public Unknown(final String message, final Throwable cause) {
86 super();
87 this.message = message;
88 this.cause = cause;
89 }
90
91 public Unknown(final String message) {
92 this(message, null);
93 }
94
95 @Override
96 public ReliabilityResult.Solution getOrThrow() {
97 throw new RuntimeException(this.message, this.cause);
98 }
99
100 @Override
101 @Pure
102 public int hashCode() {
103 final int prime = 31;
104 int result = 1;
105 result = prime * result + ((this.message== null) ? 0 : this.message.hashCode());
106 return prime * result + ((this.cause== null) ? 0 : this.cause.hashCode());
107 }
108
109 @Override
110 @Pure
111 public boolean equals(final Object obj) {
112 if (this == obj)
113 return true;
114 if (obj == null)
115 return false;
116 if (getClass() != obj.getClass())
117 return false;
118 ReliabilityResult.Unknown other = (ReliabilityResult.Unknown) obj;
119 if (this.message == null) {
120 if (other.message != null)
121 return false;
122 } else if (!this.message.equals(other.message))
123 return false;
124 if (this.cause == null) {
125 if (other.cause != null)
126 return false;
127 } else if (!this.cause.equals(other.cause))
128 return false;
129 return true;
130 }
131
132 @Override
133 @Pure
134 public String toString() {
135 return new ToStringBuilder(this)
136 .addAllFields()
137 .toString();
138 }
139
140 @Pure
141 public String getMessage() {
142 return this.message;
143 }
144
145 @Pure
146 public Throwable getCause() {
147 return this.cause;
148 }
149 }
150
151 public static final ReliabilityResult.Unknown TIMEOUT = new ReliabilityResult.Unknown("Solver timed out");
152
153 public static final ReliabilityResult.Unknown MEMOUT = new ReliabilityResult.Unknown("Solver out of memory");
154
155 public abstract ReliabilityResult.Solution getOrThrow();
156}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftConfiguration.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftConfiguration.java
new file mode 100644
index 00000000..e1bb3625
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftConfiguration.java
@@ -0,0 +1,31 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver;
2
3import com.google.common.base.Objects;
4import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.ApproximationHeuristic;
5import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.FtAnalysisObjective;
6import hu.bme.mit.inf.dslreasoner.logic.model.builder.SolverConfiguration;
7
8@SuppressWarnings("all")
9public final class StormDftConfiguration extends SolverConfiguration {
10 public static final String DEFAULT_SOLVER_PATH = "storm-dft";
11
12 public double precision = 1e-6;
13
14 public boolean bisimulation = true;
15
16 public boolean symmetryReduction = true;
17
18 public boolean modularization = true;
19
20 public boolean dontCarePropagation = true;
21
22 public double approximation = 0;
23
24 public ApproximationHeuristic approximationHeuristic = ApproximationHeuristic.NONE;
25
26 public FtAnalysisObjective objective;
27
28 public boolean isApproximationInUse() {
29 return (!Objects.equal(this.approximationHeuristic, ApproximationHeuristic.NONE));
30 }
31}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftException.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftException.java
new file mode 100644
index 00000000..955c9ed1
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftException.java
@@ -0,0 +1,12 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver;
2
3@SuppressWarnings("all")
4public class StormDftException extends RuntimeException {
5 public StormDftException(final String s) {
6 super(s);
7 }
8
9 public StormDftException(final String s, final Exception e) {
10 super(s, e);
11 }
12}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftHandler.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftHandler.java
new file mode 100644
index 00000000..003d9cc5
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftHandler.java
@@ -0,0 +1,351 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver;
2
3import com.google.common.base.Objects;
4import com.google.common.collect.ImmutableList;
5import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.ApproximationHeuristic;
6import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.FtAnalysisObjective;
7import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.ReliabilityResult;
8import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.StormDftConfiguration;
9import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.StormDftException;
10import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel;
11import hu.bme.mit.inf.dslreasoner.logic.model.builder.SolverConfiguration;
12import java.io.BufferedReader;
13import java.io.IOException;
14import java.io.InputStream;
15import java.io.InputStreamReader;
16import java.util.ArrayList;
17import java.util.regex.Matcher;
18import java.util.regex.Pattern;
19import jnr.constants.platform.Signal;
20import org.apache.commons.lang.SystemUtils;
21import org.eclipse.xtend2.lib.StringConcatenation;
22import org.eclipse.xtext.xbase.lib.CollectionLiterals;
23import org.eclipse.xtext.xbase.lib.Conversions;
24import org.eclipse.xtext.xbase.lib.Exceptions;
25import org.eclipse.xtext.xbase.lib.Extension;
26import org.eclipse.xtext.xbase.lib.Functions.Function0;
27import org.eclipse.xtext.xbase.lib.Functions.Function1;
28import org.eclipse.xtext.xbase.lib.InputOutput;
29import org.eclipse.xtext.xbase.lib.IterableExtensions;
30
31@SuppressWarnings("all")
32public class StormDftHandler {
33 private static final String DOUBLE_REGEX = "[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?";
34
35 private static final String SINGLE_RESULT_GROUP = "single";
36
37 private static final String LOWER_BOUND_GROUP = "lower";
38
39 private static final String UPPER_BOUND_GROUP = "upper";
40
41 private static final String RESULT_REGEX = new Function0<String>() {
42 public String apply() {
43 StringConcatenation _builder = new StringConcatenation();
44 _builder.append("^Result:\\s*\\[(?:(?<");
45 _builder.append(StormDftHandler.SINGLE_RESULT_GROUP);
46 _builder.append(">");
47 _builder.append(StormDftHandler.DOUBLE_REGEX);
48 _builder.append(")|\\((?<");
49 _builder.append(StormDftHandler.LOWER_BOUND_GROUP);
50 _builder.append(">");
51 _builder.append(StormDftHandler.DOUBLE_REGEX);
52 _builder.append("),\\s*(?<");
53 _builder.append(StormDftHandler.UPPER_BOUND_GROUP);
54 _builder.append(">");
55 _builder.append(StormDftHandler.DOUBLE_REGEX);
56 _builder.append(")\\))\\]");
57 return _builder.toString();
58 }
59 }.apply();
60
61 private static final Pattern RESULT_PATTERN = Pattern.compile(StormDftHandler.RESULT_REGEX);
62
63 private static final int SIGNAL_EXIT_VALUE_OFFSET = new Function0<Integer>() {
64 public Integer apply() {
65 int _xifexpression = (int) 0;
66 if (SystemUtils.IS_OS_SOLARIS) {
67 _xifexpression = 0;
68 } else {
69 _xifexpression = 0x80;
70 }
71 return _xifexpression;
72 }
73 }.apply().intValue();
74
75 private static final int STORM_GENERAL_ERROR = ((-1) & 0xff);
76
77 private static final int STORM_TIMEOUT = ((-2) & 0xff);
78
79 private static final int STORM_MEMOUT = ((-3) & 0xff);
80
81 public ReliabilityResult callSolver(final String dftFilePath, final StormDftConfiguration configuration) {
82 try {
83 ReliabilityResult _xblockexpression = null;
84 {
85 final ImmutableList<String> commandLine = this.toCommandLine(configuration, dftFilePath);
86 final DocumentationLevel documentationLevel = configuration.documentationLevel;
87 final boolean printOutput = (Objects.equal(documentationLevel, DocumentationLevel.NORMAL) ||
88 Objects.equal(documentationLevel, DocumentationLevel.FULL));
89 final ProcessBuilder processBuilder = new ProcessBuilder().command(commandLine);
90 Process process = null;
91 ReliabilityResult _xtrycatchfinallyexpression = null;
92 try {
93 ReliabilityResult _xtrycatchfinallyexpression_1 = null;
94 try {
95 ReliabilityResult _xblockexpression_1 = null;
96 {
97 process = processBuilder.start();
98 process.getOutputStream().close();
99 final ReliabilityResult.Solution result = this.readOutput(process.getInputStream(), printOutput);
100 final String error = this.readError(process.getErrorStream(), printOutput);
101 final int exitValue = process.waitFor();
102 ReliabilityResult _xifexpression = null;
103 if ((result == null)) {
104 _xifexpression = this.interpretExitStatus(exitValue, error);
105 } else {
106 _xifexpression = result;
107 }
108 _xblockexpression_1 = _xifexpression;
109 }
110 _xtrycatchfinallyexpression_1 = _xblockexpression_1;
111 } catch (final Throwable _t) {
112 if (_t instanceof IOException) {
113 final IOException e = (IOException)_t;
114 throw new StormDftException("Error during input/output handling of the stochastic solver.", e);
115 } else {
116 throw Exceptions.sneakyThrow(_t);
117 }
118 }
119 _xtrycatchfinallyexpression = _xtrycatchfinallyexpression_1;
120 } catch (final Throwable _t_1) {
121 if (_t_1 instanceof Exception) {
122 final Exception e_1 = (Exception)_t_1;
123 if ((process != null)) {
124 process.destroyForcibly().waitFor();
125 }
126 throw e_1;
127 } else {
128 throw Exceptions.sneakyThrow(_t_1);
129 }
130 }
131 _xblockexpression = _xtrycatchfinallyexpression;
132 }
133 return _xblockexpression;
134 } catch (Throwable _e) {
135 throw Exceptions.sneakyThrow(_e);
136 }
137 }
138
139 private ImmutableList<String> toCommandLine(@Extension final StormDftConfiguration configuration, final String dftFilePath) {
140 ImmutableList<String> _xblockexpression = null;
141 {
142 @Extension
143 final ImmutableList.Builder<String> optionsBuilder = ImmutableList.<String>builder();
144 String _elvis = null;
145 if (configuration.solverPath != null) {
146 _elvis = configuration.solverPath;
147 } else {
148 _elvis = StormDftConfiguration.DEFAULT_SOLVER_PATH;
149 }
150 optionsBuilder.add(_elvis);
151 if ((configuration.runtimeLimit != SolverConfiguration.Unlimited)) {
152 optionsBuilder.add("--timeout", Integer.valueOf(configuration.runtimeLimit).toString());
153 }
154 optionsBuilder.add("--precision", Double.valueOf(configuration.precision).toString());
155 if (configuration.bisimulation) {
156 optionsBuilder.add("--bisimulation");
157 }
158 if (configuration.symmetryReduction) {
159 optionsBuilder.add("--symmetryreduction");
160 }
161 if (configuration.modularization) {
162 optionsBuilder.add("--modularisation");
163 }
164 if ((!configuration.dontCarePropagation)) {
165 optionsBuilder.add("--disabledc");
166 }
167 boolean _isApproximationInUse = configuration.isApproximationInUse();
168 if (_isApproximationInUse) {
169 String _switchResult = null;
170 final ApproximationHeuristic approximationHeuristic = configuration.approximationHeuristic;
171 if (approximationHeuristic != null) {
172 switch (approximationHeuristic) {
173 case DEPTH:
174 _switchResult = "depth";
175 break;
176 default:
177 throw new IllegalArgumentException(("Unknown approximation heuristic: " + configuration.approximationHeuristic));
178 }
179 } else {
180 throw new IllegalArgumentException(("Unknown approximation heuristic: " + configuration.approximationHeuristic));
181 }
182 final String heuristicName = _switchResult;
183 optionsBuilder.add("--approximation", Double.valueOf(configuration.approximation).toString(), "--approximationheuristic", heuristicName);
184 }
185 optionsBuilder.add("--dftfile", dftFilePath);
186 final FtAnalysisObjective objective = configuration.objective;
187 boolean _matched = false;
188 if (Objects.equal(objective, FtAnalysisObjective.MTTF)) {
189 _matched=true;
190 optionsBuilder.add("--expectedtime");
191 }
192 if (!_matched) {
193 if (objective instanceof FtAnalysisObjective.TimeBound) {
194 _matched=true;
195 optionsBuilder.add("--timebound");
196 }
197 }
198 if (!_matched) {
199 throw new IllegalArgumentException(("Unknown analysis objective: " + configuration.objective));
200 }
201 boolean _equals = Objects.equal(configuration.documentationLevel, DocumentationLevel.FULL);
202 if (_equals) {
203 optionsBuilder.add("--verbose");
204 }
205 _xblockexpression = optionsBuilder.build();
206 }
207 return _xblockexpression;
208 }
209
210 private ReliabilityResult.Solution readOutput(final InputStream inputStream, final boolean printOutput) {
211 try {
212 Object _xblockexpression = null;
213 {
214 InputStreamReader _inputStreamReader = new InputStreamReader(inputStream);
215 final BufferedReader bufferedReader = new BufferedReader(_inputStreamReader);
216 try {
217 String line = null;
218 while (((line = bufferedReader.readLine()) != null)) {
219 {
220 if (printOutput) {
221 InputOutput.<String>println(line);
222 }
223 final Matcher matcher = StormDftHandler.RESULT_PATTERN.matcher(line);
224 boolean _find = matcher.find();
225 if (_find) {
226 try {
227 final String single = matcher.group(StormDftHandler.SINGLE_RESULT_GROUP);
228 if ((single != null)) {
229 final double singleValue = Double.parseDouble(single);
230 return new ReliabilityResult.Solution(singleValue);
231 }
232 final String lower = matcher.group(StormDftHandler.LOWER_BOUND_GROUP);
233 final String upper = matcher.group(StormDftHandler.UPPER_BOUND_GROUP);
234 if (((lower != null) && (upper != null))) {
235 final double lowerValue = Double.parseDouble(lower);
236 final double upperValue = Double.parseDouble(upper);
237 return new ReliabilityResult.Solution(lowerValue, upperValue);
238 }
239 throw new StormDftException(("Inconsistent stochastic solver output: " + line));
240 } catch (final Throwable _t) {
241 if (_t instanceof NumberFormatException) {
242 final NumberFormatException e = (NumberFormatException)_t;
243 throw new StormDftException("Malformatted number from stochastic solver.", e);
244 } else {
245 throw Exceptions.sneakyThrow(_t);
246 }
247 }
248 }
249 }
250 }
251 } finally {
252 bufferedReader.close();
253 }
254 _xblockexpression = null;
255 }
256 return ((ReliabilityResult.Solution)_xblockexpression);
257 } catch (Throwable _e) {
258 throw Exceptions.sneakyThrow(_e);
259 }
260 }
261
262 private String readError(final InputStream inputStream, final boolean printOutput) {
263 try {
264 String _xblockexpression = null;
265 {
266 InputStreamReader _inputStreamReader = new InputStreamReader(inputStream);
267 final BufferedReader bufferedReader = new BufferedReader(_inputStreamReader);
268 String _xtrycatchfinallyexpression = null;
269 try {
270 String _xblockexpression_1 = null;
271 {
272 final ArrayList<String> lines = CollectionLiterals.<String>newArrayList();
273 String line = null;
274 while (((line = bufferedReader.readLine()) != null)) {
275 {
276 if (printOutput) {
277 System.err.println(line);
278 }
279 lines.add(line);
280 }
281 }
282 _xblockexpression_1 = IterableExtensions.join(lines, "\n");
283 }
284 _xtrycatchfinallyexpression = _xblockexpression_1;
285 } finally {
286 bufferedReader.close();
287 }
288 _xblockexpression = _xtrycatchfinallyexpression;
289 }
290 return _xblockexpression;
291 } catch (Throwable _e) {
292 throw Exceptions.sneakyThrow(_e);
293 }
294 }
295
296 private ReliabilityResult.Unknown interpretExitStatus(final int exitValue, final String error) {
297 ReliabilityResult.Unknown _switchResult = null;
298 boolean _matched = false;
299 if (Objects.equal(exitValue, StormDftHandler.STORM_GENERAL_ERROR)) {
300 _matched=true;
301 throw new StormDftException(("Storm error: " + error));
302 }
303 if (!_matched) {
304 if (Objects.equal(exitValue, StormDftHandler.STORM_TIMEOUT)) {
305 _matched=true;
306 }
307 if (!_matched) {
308 int _intValue = Signal.SIGXCPU.intValue();
309 int _plus = (StormDftHandler.SIGNAL_EXIT_VALUE_OFFSET + _intValue);
310 if (Objects.equal(exitValue, _plus)) {
311 _matched=true;
312 }
313 }
314 if (_matched) {
315 _switchResult = ReliabilityResult.TIMEOUT;
316 }
317 }
318 if (!_matched) {
319 if (Objects.equal(exitValue, StormDftHandler.STORM_MEMOUT)) {
320 _matched=true;
321 }
322 if (!_matched) {
323 int _intValue_1 = Signal.SIGXFSZ.intValue();
324 int _plus_1 = (StormDftHandler.SIGNAL_EXIT_VALUE_OFFSET + _intValue_1);
325 if (Objects.equal(exitValue, _plus_1)) {
326 _matched=true;
327 }
328 }
329 if (_matched) {
330 _switchResult = ReliabilityResult.MEMOUT;
331 }
332 }
333 if (!_matched) {
334 {
335 if ((exitValue > StormDftHandler.SIGNAL_EXIT_VALUE_OFFSET)) {
336 final int signalNumber = (exitValue - StormDftHandler.SIGNAL_EXIT_VALUE_OFFSET);
337 final Function1<Signal, Boolean> _function = (Signal it) -> {
338 int _intValue_2 = it.intValue();
339 return Boolean.valueOf((_intValue_2 == signalNumber));
340 };
341 final Signal signal = IterableExtensions.<Signal>findFirst(((Iterable<Signal>)Conversions.doWrapArray(Signal.values())), _function);
342 if ((signal != null)) {
343 throw new StormDftException(((("Storm unexpectedly killed by signal " + signal) + ": ") + error));
344 }
345 }
346 throw new StormDftException(((("Storm unexpectedly exit with status " + Integer.valueOf(exitValue)) + ": ") + error));
347 }
348 }
349 return _switchResult;
350 }
351}
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftSolver.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftSolver.java
new file mode 100644
index 00000000..491e7fc1
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/solver/StormDftSolver.java
@@ -0,0 +1,79 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver;
2
3import com.google.common.base.Objects;
4import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantModel;
5import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.FaultTree;
6import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ReliabilityModel;
7import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ft2galileo.Ft2GalileoTransformation;
8import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.FtAnalysisObjective;
9import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.ReliabilityResult;
10import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.StormDftConfiguration;
11import hu.bme.mit.inf.dslreasoner.faulttree.transformation.solver.StormDftHandler;
12import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace;
13
14@SuppressWarnings("all")
15public class StormDftSolver {
16 private static final String DFT_FILE_NAME = "ft.dft";
17
18 private final Ft2GalileoTransformation ft2Galileo = new Ft2GalileoTransformation();
19
20 private final StormDftHandler handler = new StormDftHandler();
21
22 public ReliabilityResult solve(final ReliabilityModel reliabilityModel, final StormDftConfiguration configuration, final ReasonerWorkspace reasonerWorkspace) {
23 ReliabilityResult _switchResult = null;
24 boolean _matched = false;
25 if (reliabilityModel instanceof FaultTree) {
26 _matched=true;
27 _switchResult = this.solve(((FaultTree)reliabilityModel), configuration, reasonerWorkspace);
28 }
29 if (!_matched) {
30 if (reliabilityModel instanceof ConstantModel) {
31 _matched=true;
32 ReliabilityResult.Solution _xblockexpression = null;
33 {
34 double _xifexpression = (double) 0;
35 boolean _isFailed = ((ConstantModel)reliabilityModel).isFailed();
36 if (_isFailed) {
37 _xifexpression = 0;
38 } else {
39 double _switchResult_1 = (double) 0;
40 final FtAnalysisObjective objective = configuration.objective;
41 boolean _matched_1 = false;
42 if (Objects.equal(objective, FtAnalysisObjective.MTTF)) {
43 _matched_1=true;
44 _switchResult_1 = Double.POSITIVE_INFINITY;
45 }
46 if (!_matched_1) {
47 if (objective instanceof FtAnalysisObjective.TimeBound) {
48 _matched_1=true;
49 _switchResult_1 = 1;
50 }
51 }
52 if (!_matched_1) {
53 throw new IllegalArgumentException(("Unknown objective: " + objective));
54 }
55 _xifexpression = _switchResult_1;
56 }
57 final double result = _xifexpression;
58 _xblockexpression = new ReliabilityResult.Solution(result);
59 }
60 _switchResult = _xblockexpression;
61 }
62 }
63 if (!_matched) {
64 throw new IllegalArgumentException(("Unknown reliability model: " + reliabilityModel));
65 }
66 return _switchResult;
67 }
68
69 public ReliabilityResult solve(final FaultTree faultTree, final StormDftConfiguration configuration, final ReasonerWorkspace reasonerWorkspace) {
70 ReliabilityResult _xblockexpression = null;
71 {
72 final CharSequence galileo = this.ft2Galileo.toGalileo(faultTree);
73 reasonerWorkspace.writeText(StormDftSolver.DFT_FILE_NAME, galileo);
74 final String dftFilePath = reasonerWorkspace.getFile(StormDftSolver.DFT_FILE_NAME).getAbsolutePath();
75 _xblockexpression = this.handler.callSolver(dftFilePath, configuration);
76 }
77 return _xblockexpression;
78 }
79}