From 6f88c4bd4e91728cea62505e893b0ce300baf7fc Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Thu, 7 Feb 2019 18:24:45 +0100 Subject: Ecore2Cft transformation --- .../components/ui/.CftLanguageUiModule.xtendbin | Bin 3606 -> 3606 bytes .../.CftLanguageOutlineTreeProvider.xtendbin | Bin 2451 -> 2451 bytes ...LanguageSemanticHighlightingCalculator.xtendbin | Bin 3773 -> 3773 bytes .../faulttree/components/CftLanguage.xtextbin | Bin 5924 -> 5923 bytes .../serializer/CftLanguageSemanticSequencer.java | 10 +- .../services/CftLanguageGrammarAccess.java | 4 +- .../faulttree/components/CftLanguage.xtext | 2 +- .../components/.CftLanguageRuntimeModule.xtendbin | Bin 3436 -> 3436 bytes .../.CftLanguageQualifiedNameProvider.xtendbin | Bin 3630 -> 3630 bytes .../naming/.PackageNameProvider.xtendbin | Bin 3283 -> 3283 bytes .../scoping/.CftLanguageScopeProvider.xtendbin | Bin 8989 -> 8989 bytes .../faulttree/model/cft/CftFactory.java | 6 +- .../faulttree/model/cft/CftPackage.java | 92 ++++++++---- .../dslreasoner/faulttree/model/cft/Component.java | 27 ++++ .../faulttree/model/cft/ComponentDefinition.java | 4 +- .../faulttree/model/cft/EventDeclaration.java | 2 +- .../inf/dslreasoner/faulttree/model/cft/Input.java | 22 +-- .../faulttree/model/cft/InputEvent.java | 49 ++++++ .../faulttree/model/cft/IntputEvent.java | 49 ------ .../faulttree/model/cft/impl/CftFactoryImpl.java | 8 +- .../faulttree/model/cft/impl/CftPackageImpl.java | 42 ++++-- .../model/cft/impl/ComponentDefinitionImpl.java | 11 +- .../faulttree/model/cft/impl/ComponentImpl.java | 70 +++++++++ .../faulttree/model/cft/impl/InputEventImpl.java | 164 +++++++++++++++++++++ .../faulttree/model/cft/impl/InputImpl.java | 55 ++++--- .../faulttree/model/cft/impl/IntputEventImpl.java | 164 --------------------- .../model/cft/util/CftAdapterFactory.java | 10 +- .../faulttree/model/cft/util/CftSwitch.java | 14 +- .../model/cft.ecore | 9 +- .../model/cft.genmodel | 7 +- .../representations.aird | 34 +++-- .../.classpath | 1 + .../.project | 6 + .../META-INF/MANIFEST.MF | 9 ++ .../cft2ft/Cft2FtTransformation.xtend | 10 ++ .../ecore2cft/ComponentFaultTreeTrace.xtend | 39 +++++ .../ecore2cft/ComponentInstanceTrace.xtend | 51 +++++++ .../ecore2cft/ComponentNameGenerator.xtend | 16 ++ .../ecore2cft/Ecore2CftTransformation.xtend | 27 ++++ .../transformation/ecore2cft/InputTrace.xtend | 29 ++++ .../transformation/ecore2cft/LookupHandler.xtend | 47 ++++++ .../transformation/ecore2cft/MappingHandler.xtend | 91 ++++++++++++ .../transformation/ecore2cft/MappingQueries.xtend | 38 +++++ .../faulttree/transformation/.gitignore | 8 + .../cft2ft/.Cft2FtTransformation.xtendbin | Bin 0 -> 2298 bytes .../faulttree/transformation/cft2ft/.gitignore | 1 + .../cft2ft/Cft2FtTransformation.java | 10 ++ .../ecore2cft/.ComponentFaultTreeTrace.xtendbin | Bin 0 -> 5009 bytes .../ecore2cft/.ComponentInstanceTrace.xtendbin | Bin 0 -> 5190 bytes .../ecore2cft/.ComponentNameGenerator.xtendbin | Bin 0 -> 3472 bytes .../ecore2cft/.Ecore2CftTransformation.xtendbin | Bin 0 -> 3400 bytes .../transformation/ecore2cft/.InputTrace.xtendbin | Bin 0 -> 3849 bytes .../ecore2cft/.LookupHandler.xtendbin | Bin 0 -> 5169 bytes .../ecore2cft/.MappingHandler.xtendbin | Bin 0 -> 6876 bytes .../ecore2cft/.MappingQueries.xtendbin | Bin 0 -> 4833 bytes .../faulttree/transformation/ecore2cft/.gitignore | 9 ++ .../ecore2cft/ComponentFaultTreeTrace.java | 67 +++++++++ .../ecore2cft/ComponentInstanceTrace.java | 65 ++++++++ .../ecore2cft/ComponentNameGenerator.java | 29 ++++ .../ecore2cft/Ecore2CftTransformation.java | 35 +++++ .../transformation/ecore2cft/InputTrace.java | 35 +++++ .../transformation/ecore2cft/LookupHandler.java | 84 +++++++++++ .../transformation/ecore2cft/MappingHandler.java | 146 ++++++++++++++++++ .../transformation/ecore2cft/MappingQueries.java | 60 ++++++++ 64 files changed, 1415 insertions(+), 353 deletions(-) create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/InputEvent.java delete mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/IntputEvent.java create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/InputEventImpl.java delete mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/IntputEventImpl.java create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.xtend create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.xtend create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.xtend create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentNameGenerator.xtend create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.xtend create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/InputTrace.xtend create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/LookupHandler.xtend create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingHandler.xtend create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingQueries.xtend create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/.gitignore create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.Cft2FtTransformation.xtendbin create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.gitignore create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.java create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentFaultTreeTrace.xtendbin create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentInstanceTrace.xtendbin create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentNameGenerator.xtendbin create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.Ecore2CftTransformation.xtendbin create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.InputTrace.xtendbin create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.LookupHandler.xtendbin create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingHandler.xtendbin create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingQueries.xtendbin create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.gitignore create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.java create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.java create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentNameGenerator.java create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.java create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/InputTrace.java create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/LookupHandler.java create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingHandler.java create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingQueries.java 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 ff2238f7..56635dea 100644 Binary files a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/.CftLanguageUiModule.xtendbin and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/.CftLanguageUiModule.xtendbin 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 91137ae1..e8595819 100644 Binary files a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/outline/.CftLanguageOutlineTreeProvider.xtendbin and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/outline/.CftLanguageOutlineTreeProvider.xtendbin 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 81585f8b..d88f5256 100644 Binary files a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/syntaxcoloring/.CftLanguageSemanticHighlightingCalculator.xtendbin and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components.ui/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/ui/syntaxcoloring/.CftLanguageSemanticHighlightingCalculator.xtendbin 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 6eb4d2c2..ffe22f72 100644 Binary files a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/CftLanguage.xtextbin and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/CftLanguage.xtextbin differ 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 835bb8cc..25f16824 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 @@ -19,7 +19,7 @@ import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.AndGateDefinition; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.BasicEventDefinition; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentDefinition; -import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.IntputEvent; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.KOfMGateDefinition; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.OrGateDefinition; import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.ConstantDistribution; @@ -59,8 +59,8 @@ public class CftLanguageSemanticSequencer extends AbstractDelegatingSemanticSequ case CftPackage.COMPONENT_DEFINITION: sequence_ComponentDefinition(context, (ComponentDefinition) semanticObject); return; - case CftPackage.INTPUT_EVENT: - sequence_InputEvent(context, (IntputEvent) semanticObject); + case CftPackage.INPUT_EVENT: + sequence_InputEvent(context, (InputEvent) semanticObject); return; case CftPackage.KOF_MGATE_DEFINITION: sequence_KOfMGateDefinition(context, (KOfMGateDefinition) semanticObject); @@ -280,12 +280,12 @@ public class CftLanguageSemanticSequencer extends AbstractDelegatingSemanticSequ /** * Contexts: - * InputEvent returns IntputEvent + * InputEvent returns InputEvent * * Constraint: * (name=ValidId multiple?='[]'?) */ - protected void sequence_InputEvent(ISerializationContext context, IntputEvent semanticObject) { + protected void sequence_InputEvent(ISerializationContext context, InputEvent semanticObject) { 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 69f00bb3..cbcfbe95 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 @@ -215,7 +215,7 @@ public class CftLanguageGrammarAccess extends AbstractGrammarElementFinder { private final Assignment cMultipleAssignment_1 = (Assignment)cGroup.eContents().get(1); private final Keyword cMultipleLeftSquareBracketRightSquareBracketKeyword_1_0 = (Keyword)cMultipleAssignment_1.eContents().get(0); - //InputEvent cft::IntputEvent: + //InputEvent cft::InputEvent: // name=ValidId multiple?="[]"?; @Override public ParserRule getRule() { return rule; } @@ -1128,7 +1128,7 @@ public class CftLanguageGrammarAccess extends AbstractGrammarElementFinder { return getComponentDefinitionAccess().getRule(); } - //InputEvent cft::IntputEvent: + //InputEvent cft::InputEvent: // name=ValidId multiple?="[]"?; public InputEventElements getInputEventAccess() { return pInputEvent; 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 61ab3359..b4d5338b 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 @@ -20,7 +20,7 @@ ComponentDefinition returns cft::ComponentDefinition: (eventDefinitions+=EventDefinition ";")* "}"; -InputEvent returns cft::IntputEvent: +InputEvent returns cft::InputEvent: name=ValidId multiple?="[]"?; EventDefinition returns cft::EventDefinition: 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 638dac63..df7b7e51 100644 Binary files a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/.CftLanguageRuntimeModule.xtendbin and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/.CftLanguageRuntimeModule.xtendbin 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 6dde8420..62a48625 100644 Binary files a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.CftLanguageQualifiedNameProvider.xtendbin and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.CftLanguageQualifiedNameProvider.xtendbin 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 fc3d90f0..b5ec6fb3 100644 Binary files a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.PackageNameProvider.xtendbin and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/naming/.PackageNameProvider.xtendbin 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 40e8786a..3c714b09 100644 Binary files a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/scoping/.CftLanguageScopeProvider.xtendbin and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/components/scoping/.CftLanguageScopeProvider.xtendbin differ diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/CftFactory.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/CftFactory.java index d5f4cd76..8b5d54a0 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/CftFactory.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/CftFactory.java @@ -40,13 +40,13 @@ public interface CftFactory extends EFactory { BasicEventDefinition createBasicEventDefinition(); /** - * Returns a new object of class 'Intput Event'. + * Returns a new object of class 'Input Event'. * * - * @return a new object of class 'Intput Event'. + * @return a new object of class 'Input Event'. * @generated */ - IntputEvent createIntputEvent(); + InputEvent createInputEvent(); /** * Returns a new object of class 'And Gate Definition'. diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/CftPackage.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/CftPackage.java index 8cf7dbc6..d75710a2 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/CftPackage.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/CftPackage.java @@ -287,14 +287,14 @@ public interface CftPackage extends EPackage { int BASIC_EVENT_DEFINITION_OPERATION_COUNT = EVENT_DEFINITION_OPERATION_COUNT + 0; /** - * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.IntputEventImpl Intput Event}' class. + * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.InputEventImpl Input Event}' class. * * - * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.IntputEventImpl - * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.CftPackageImpl#getIntputEvent() + * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.InputEventImpl + * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.CftPackageImpl#getInputEvent() * @generated */ - int INTPUT_EVENT = 4; + int INPUT_EVENT = 4; /** * The feature id for the 'Name' attribute. @@ -303,7 +303,7 @@ public interface CftPackage extends EPackage { * @generated * @ordered */ - int INTPUT_EVENT__NAME = EVENT_DECLARATION__NAME; + int INPUT_EVENT__NAME = EVENT_DECLARATION__NAME; /** * The feature id for the 'Multiple' attribute. @@ -312,25 +312,25 @@ public interface CftPackage extends EPackage { * @generated * @ordered */ - int INTPUT_EVENT__MULTIPLE = EVENT_DECLARATION_FEATURE_COUNT + 0; + int INPUT_EVENT__MULTIPLE = EVENT_DECLARATION_FEATURE_COUNT + 0; /** - * The number of structural features of the 'Intput Event' class. + * The number of structural features of the 'Input Event' class. * * * @generated * @ordered */ - int INTPUT_EVENT_FEATURE_COUNT = EVENT_DECLARATION_FEATURE_COUNT + 1; + int INPUT_EVENT_FEATURE_COUNT = EVENT_DECLARATION_FEATURE_COUNT + 1; /** - * The number of operations of the 'Intput Event' class. + * The number of operations of the 'Input Event' class. * * * @generated * @ordered */ - int INTPUT_EVENT_OPERATION_COUNT = EVENT_DECLARATION_OPERATION_COUNT + 0; + int INPUT_EVENT_OPERATION_COUNT = EVENT_DECLARATION_OPERATION_COUNT + 0; /** * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.AndGateDefinitionImpl And Gate Definition}' class. @@ -571,6 +571,15 @@ public interface CftPackage extends EPackage { */ int COMPONENT__COMPONENT_DEFINITION = 2; + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPONENT__NAME = 3; + /** * The number of structural features of the 'Component' class. * @@ -578,7 +587,7 @@ public interface CftPackage extends EPackage { * @generated * @ordered */ - int COMPONENT_FEATURE_COUNT = 3; + int COMPONENT_FEATURE_COUNT = 4; /** * The number of operations of the 'Component' class. @@ -600,13 +609,13 @@ public interface CftPackage extends EPackage { int INPUT = 11; /** - * The feature id for the 'Intput Event' reference. + * The feature id for the 'Input Event' reference. * * * @generated * @ordered */ - int INPUT__INTPUT_EVENT = 0; + int INPUT__INPUT_EVENT = 0; /** * The feature id for the 'Component' container reference. @@ -853,25 +862,25 @@ public interface CftPackage extends EPackage { EReference getBasicEventDefinition_Distribution(); /** - * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.IntputEvent Intput Event}'. + * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent Input Event}'. * * - * @return the meta object for class 'Intput Event'. - * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.IntputEvent + * @return the meta object for class 'Input Event'. + * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent * @generated */ - EClass getIntputEvent(); + EClass getInputEvent(); /** - * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.IntputEvent#isMultiple Multiple}'. + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent#isMultiple Multiple}'. * * * @return the meta object for the attribute 'Multiple'. - * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.IntputEvent#isMultiple() - * @see #getIntputEvent() + * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent#isMultiple() + * @see #getInputEvent() * @generated */ - EAttribute getIntputEvent_Multiple(); + EAttribute getInputEvent_Multiple(); /** * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.EventDeclaration Event Declaration}'. @@ -1021,6 +1030,17 @@ public interface CftPackage extends EPackage { */ EReference getComponent_ComponentDefinition(); + /** + * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component#getName() + * @see #getComponent() + * @generated + */ + EAttribute getComponent_Name(); + /** * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input Input}'. * @@ -1032,15 +1052,15 @@ public interface CftPackage extends EPackage { EClass getInput(); /** - * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input#getIntputEvent Intput Event}'. + * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input#getInputEvent Input Event}'. * * - * @return the meta object for the reference 'Intput Event'. - * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input#getIntputEvent() + * @return the meta object for the reference 'Input Event'. + * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input#getInputEvent() * @see #getInput() * @generated */ - EReference getInput_IntputEvent(); + EReference getInput_InputEvent(); /** * Returns the meta object for the container reference '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input#getComponent Component}'. @@ -1251,14 +1271,14 @@ public interface CftPackage extends EPackage { EReference BASIC_EVENT_DEFINITION__DISTRIBUTION = eINSTANCE.getBasicEventDefinition_Distribution(); /** - * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.IntputEventImpl Intput Event}' class. + * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.InputEventImpl Input Event}' class. * * - * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.IntputEventImpl - * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.CftPackageImpl#getIntputEvent() + * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.InputEventImpl + * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.CftPackageImpl#getInputEvent() * @generated */ - EClass INTPUT_EVENT = eINSTANCE.getIntputEvent(); + EClass INPUT_EVENT = eINSTANCE.getInputEvent(); /** * The meta object literal for the 'Multiple' attribute feature. @@ -1266,7 +1286,7 @@ public interface CftPackage extends EPackage { * * @generated */ - EAttribute INTPUT_EVENT__MULTIPLE = eINSTANCE.getIntputEvent_Multiple(); + EAttribute INPUT_EVENT__MULTIPLE = eINSTANCE.getInputEvent_Multiple(); /** * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.EventDeclarationImpl Event Declaration}' class. @@ -1392,6 +1412,14 @@ public interface CftPackage extends EPackage { */ EReference COMPONENT__COMPONENT_DEFINITION = eINSTANCE.getComponent_ComponentDefinition(); + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute COMPONENT__NAME = eINSTANCE.getComponent_Name(); + /** * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.InputImpl Input}' class. * @@ -1403,12 +1431,12 @@ public interface CftPackage extends EPackage { EClass INPUT = eINSTANCE.getInput(); /** - * The meta object literal for the 'Intput Event' reference feature. + * The meta object literal for the 'Input Event' reference feature. * * * @generated */ - EReference INPUT__INTPUT_EVENT = eINSTANCE.getInput_IntputEvent(); + EReference INPUT__INPUT_EVENT = eINSTANCE.getInput_InputEvent(); /** * The meta object literal for the 'Component' container reference feature. diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/Component.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/Component.java index e1951172..7d5055c9 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/Component.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/Component.java @@ -18,6 +18,7 @@ import org.eclipse.emf.ecore.EObject; *
  • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component#getInputs Inputs}
  • *
  • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component#getOutputs Outputs}
  • *
  • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component#getComponentDefinition Component Definition}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component#getName Name}
  • * * * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage#getComponent() @@ -87,4 +88,30 @@ public interface Component extends EObject { */ void setComponentDefinition(ComponentDefinition value); + /** + * Returns the value of the 'Name' attribute. + * + *

    + * If the meaning of the 'Name' attribute isn't clear, + * there really should be more of a description here... + *

    + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage#getComponent_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + } // Component diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/ComponentDefinition.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/ComponentDefinition.java index b3f3b163..82ab53fa 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/ComponentDefinition.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/ComponentDefinition.java @@ -28,7 +28,7 @@ import org.eclipse.emf.ecore.EObject; public interface ComponentDefinition extends EObject { /** * Returns the value of the 'Input Events' containment reference list. - * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.IntputEvent}. + * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent}. * *

    * If the meaning of the 'Input Events' containment reference list isn't clear, @@ -40,7 +40,7 @@ public interface ComponentDefinition extends EObject { * @model containment="true" * @generated */ - EList getInputEvents(); + EList getInputEvents(); /** * Returns the value of the 'Event Definitions' containment reference list. diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/EventDeclaration.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/EventDeclaration.java index 1e52a570..28d49f06 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/EventDeclaration.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/EventDeclaration.java @@ -21,7 +21,6 @@ import org.eclipse.emf.ecore.EObject; * @generated */ public interface EventDeclaration extends EObject { - /** * Returns the value of the 'Name' attribute. * @@ -47,4 +46,5 @@ public interface EventDeclaration extends EObject { * @generated */ void setName(String value); + } // EventDeclaration diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/Input.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/Input.java index 55da3f9a..7351d1bb 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/Input.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/Input.java @@ -15,7 +15,7 @@ import org.eclipse.emf.ecore.EObject; * The following features are supported: *

    * @@ -26,30 +26,30 @@ import org.eclipse.emf.ecore.EObject; */ public interface Input extends EObject { /** - * Returns the value of the 'Intput Event' reference. + * Returns the value of the 'Input Event' reference. * *

    - * If the meaning of the 'Intput Event' reference isn't clear, + * If the meaning of the 'Input Event' reference isn't clear, * there really should be more of a description here... *

    * - * @return the value of the 'Intput Event' reference. - * @see #setIntputEvent(IntputEvent) - * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage#getInput_IntputEvent() + * @return the value of the 'Input Event' reference. + * @see #setInputEvent(InputEvent) + * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage#getInput_InputEvent() * @model required="true" * @generated */ - IntputEvent getIntputEvent(); + InputEvent getInputEvent(); /** - * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input#getIntputEvent Intput Event}' reference. + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input#getInputEvent Input Event}' reference. * * - * @param value the new value of the 'Intput Event' reference. - * @see #getIntputEvent() + * @param value the new value of the 'Input Event' reference. + * @see #getInputEvent() * @generated */ - void setIntputEvent(IntputEvent value); + void setInputEvent(InputEvent value); /** * Returns the value of the 'Component' container reference. diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/InputEvent.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/InputEvent.java new file mode 100644 index 00000000..92721776 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/InputEvent.java @@ -0,0 +1,49 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.faulttree.model.cft; + + +/** + * + * A representation of the model object 'Input Event'. + * + * + *

    + * The following features are supported: + *

    + * + * + * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage#getInputEvent() + * @model + * @generated + */ +public interface InputEvent extends EventDeclaration { + /** + * Returns the value of the 'Multiple' attribute. + * + *

    + * If the meaning of the 'Multiple' attribute isn't clear, + * there really should be more of a description here... + *

    + * + * @return the value of the 'Multiple' attribute. + * @see #setMultiple(boolean) + * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage#getInputEvent_Multiple() + * @model + * @generated + */ + boolean isMultiple(); + + /** + * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent#isMultiple Multiple}' attribute. + * + * + * @param value the new value of the 'Multiple' attribute. + * @see #isMultiple() + * @generated + */ + void setMultiple(boolean value); + +} // InputEvent diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/IntputEvent.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/IntputEvent.java deleted file mode 100644 index bec5c487..00000000 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/IntputEvent.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - */ -package hu.bme.mit.inf.dslreasoner.faulttree.model.cft; - - -/** - * - * A representation of the model object 'Intput Event'. - * - * - *

    - * The following features are supported: - *

    - * - * - * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage#getIntputEvent() - * @model - * @generated - */ -public interface IntputEvent extends EventDeclaration { - /** - * Returns the value of the 'Multiple' attribute. - * - *

    - * If the meaning of the 'Multiple' attribute isn't clear, - * there really should be more of a description here... - *

    - * - * @return the value of the 'Multiple' attribute. - * @see #setMultiple(boolean) - * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage#getIntputEvent_Multiple() - * @model - * @generated - */ - boolean isMultiple(); - - /** - * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.IntputEvent#isMultiple Multiple}' attribute. - * - * - * @param value the new value of the 'Multiple' attribute. - * @see #isMultiple() - * @generated - */ - void setMultiple(boolean value); - -} // IntputEvent diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/CftFactoryImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/CftFactoryImpl.java index 33778461..6eac2861 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/CftFactoryImpl.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/CftFactoryImpl.java @@ -58,7 +58,7 @@ public class CftFactoryImpl extends EFactoryImpl implements CftFactory { switch (eClass.getClassifierID()) { case CftPackage.COMPONENT_DEFINITION: return createComponentDefinition(); case CftPackage.BASIC_EVENT_DEFINITION: return createBasicEventDefinition(); - case CftPackage.INTPUT_EVENT: return createIntputEvent(); + case CftPackage.INPUT_EVENT: return createInputEvent(); case CftPackage.AND_GATE_DEFINITION: return createAndGateDefinition(); case CftPackage.OR_GATE_DEFINITION: return createOrGateDefinition(); case CftPackage.KOF_MGATE_DEFINITION: return createKOfMGateDefinition(); @@ -100,9 +100,9 @@ public class CftFactoryImpl extends EFactoryImpl implements CftFactory { * @generated */ @Override - public IntputEvent createIntputEvent() { - IntputEventImpl intputEvent = new IntputEventImpl(); - return intputEvent; + public InputEvent createInputEvent() { + InputEventImpl inputEvent = new InputEventImpl(); + return inputEvent; } /** diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/CftPackageImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/CftPackageImpl.java index f03fa0ba..1d6b6a23 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/CftPackageImpl.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/CftPackageImpl.java @@ -14,7 +14,7 @@ import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.EventDeclaration; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.EventDefinition; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.GateDefinition; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input; -import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.IntputEvent; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.KOfMGateDefinition; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.OrGateDefinition; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output; @@ -68,7 +68,7 @@ public class CftPackageImpl extends EPackageImpl implements CftPackage { * * @generated */ - private EClass intputEventEClass = null; + private EClass inputEventEClass = null; /** * @@ -303,8 +303,8 @@ public class CftPackageImpl extends EPackageImpl implements CftPackage { * @generated */ @Override - public EClass getIntputEvent() { - return intputEventEClass; + public EClass getInputEvent() { + return inputEventEClass; } /** @@ -313,8 +313,8 @@ public class CftPackageImpl extends EPackageImpl implements CftPackage { * @generated */ @Override - public EAttribute getIntputEvent_Multiple() { - return (EAttribute)intputEventEClass.getEStructuralFeatures().get(0); + public EAttribute getInputEvent_Multiple() { + return (EAttribute)inputEventEClass.getEStructuralFeatures().get(0); } /** @@ -457,6 +457,16 @@ public class CftPackageImpl extends EPackageImpl implements CftPackage { return (EReference)componentEClass.getEStructuralFeatures().get(2); } + /** + * + * + * @generated + */ + @Override + public EAttribute getComponent_Name() { + return (EAttribute)componentEClass.getEStructuralFeatures().get(3); + } + /** * * @@ -473,7 +483,7 @@ public class CftPackageImpl extends EPackageImpl implements CftPackage { * @generated */ @Override - public EReference getInput_IntputEvent() { + public EReference getInput_InputEvent() { return (EReference)inputEClass.getEStructuralFeatures().get(0); } @@ -610,8 +620,8 @@ public class CftPackageImpl extends EPackageImpl implements CftPackage { basicEventDefinitionEClass = createEClass(BASIC_EVENT_DEFINITION); createEReference(basicEventDefinitionEClass, BASIC_EVENT_DEFINITION__DISTRIBUTION); - intputEventEClass = createEClass(INTPUT_EVENT); - createEAttribute(intputEventEClass, INTPUT_EVENT__MULTIPLE); + inputEventEClass = createEClass(INPUT_EVENT); + createEAttribute(inputEventEClass, INPUT_EVENT__MULTIPLE); eventDeclarationEClass = createEClass(EVENT_DECLARATION); createEAttribute(eventDeclarationEClass, EVENT_DECLARATION__NAME); @@ -632,9 +642,10 @@ public class CftPackageImpl extends EPackageImpl implements CftPackage { createEReference(componentEClass, COMPONENT__INPUTS); createEReference(componentEClass, COMPONENT__OUTPUTS); createEReference(componentEClass, COMPONENT__COMPONENT_DEFINITION); + createEAttribute(componentEClass, COMPONENT__NAME); inputEClass = createEClass(INPUT); - createEReference(inputEClass, INPUT__INTPUT_EVENT); + createEReference(inputEClass, INPUT__INPUT_EVENT); createEReference(inputEClass, INPUT__COMPONENT); createEReference(inputEClass, INPUT__INCOMING_CONNECTIONS); @@ -682,14 +693,14 @@ public class CftPackageImpl extends EPackageImpl implements CftPackage { eventDefinitionEClass.getESuperTypes().add(this.getEventDeclaration()); gateDefinitionEClass.getESuperTypes().add(this.getEventDefinition()); basicEventDefinitionEClass.getESuperTypes().add(this.getEventDefinition()); - intputEventEClass.getESuperTypes().add(this.getEventDeclaration()); + inputEventEClass.getESuperTypes().add(this.getEventDeclaration()); andGateDefinitionEClass.getESuperTypes().add(this.getGateDefinition()); orGateDefinitionEClass.getESuperTypes().add(this.getGateDefinition()); kOfMGateDefinitionEClass.getESuperTypes().add(this.getGateDefinition()); // Initialize classes, features, and operations; add parameters initEClass(componentDefinitionEClass, ComponentDefinition.class, "ComponentDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getComponentDefinition_InputEvents(), this.getIntputEvent(), null, "inputEvents", null, 0, -1, ComponentDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getComponentDefinition_InputEvents(), this.getInputEvent(), null, "inputEvents", null, 0, -1, ComponentDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getComponentDefinition_EventDefinitions(), this.getEventDefinition(), null, "eventDefinitions", null, 0, -1, ComponentDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getComponentDefinition_OutputEvents(), this.getEventDeclaration(), null, "outputEvents", null, 0, -1, ComponentDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getComponentDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, ComponentDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); @@ -702,8 +713,8 @@ public class CftPackageImpl extends EPackageImpl implements CftPackage { initEClass(basicEventDefinitionEClass, BasicEventDefinition.class, "BasicEventDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getBasicEventDefinition_Distribution(), theFtPackage.getDistribution(), null, "distribution", null, 1, 1, BasicEventDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(intputEventEClass, IntputEvent.class, "IntputEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getIntputEvent_Multiple(), ecorePackage.getEBoolean(), "multiple", null, 0, 1, IntputEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(inputEventEClass, InputEvent.class, "InputEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getInputEvent_Multiple(), ecorePackage.getEBoolean(), "multiple", null, 0, 1, InputEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(eventDeclarationEClass, EventDeclaration.class, "EventDeclaration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getEventDeclaration_Name(), ecorePackage.getEString(), "name", null, 0, 1, EventDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); @@ -724,9 +735,10 @@ public class CftPackageImpl extends EPackageImpl implements CftPackage { initEReference(getComponent_Inputs(), this.getInput(), this.getInput_Component(), "inputs", null, 0, -1, Component.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getComponent_Outputs(), this.getOutput(), this.getOutput_Component(), "outputs", null, 0, -1, Component.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getComponent_ComponentDefinition(), this.getComponentDefinition(), null, "componentDefinition", null, 1, 1, Component.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getComponent_Name(), ecorePackage.getEString(), "name", null, 0, 1, Component.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(inputEClass, Input.class, "Input", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getInput_IntputEvent(), this.getIntputEvent(), null, "intputEvent", null, 1, 1, Input.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getInput_InputEvent(), this.getInputEvent(), null, "inputEvent", null, 1, 1, Input.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getInput_Component(), this.getComponent(), this.getComponent_Inputs(), "component", null, 1, 1, Input.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getInput_IncomingConnections(), this.getConnection(), this.getConnection_Input(), "incomingConnections", null, 0, -1, Input.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/ComponentDefinitionImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/ComponentDefinitionImpl.java index 58a476f3..3b79fb0c 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/ComponentDefinitionImpl.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/ComponentDefinitionImpl.java @@ -6,8 +6,7 @@ import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentDefinition; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.EventDeclaration; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.EventDefinition; -import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.IntputEvent; - +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent; import java.util.Collection; import org.eclipse.emf.common.notify.Notification; @@ -50,7 +49,7 @@ public class ComponentDefinitionImpl extends MinimalEObjectImpl.Container implem * @generated * @ordered */ - protected EList inputEvents; + protected EList inputEvents; /** * The cached value of the '{@link #getEventDefinitions() Event Definitions}' containment reference list. @@ -117,9 +116,9 @@ public class ComponentDefinitionImpl extends MinimalEObjectImpl.Container implem * @generated */ @Override - public EList getInputEvents() { + public EList getInputEvents() { if (inputEvents == null) { - inputEvents = new EObjectContainmentEList(IntputEvent.class, this, CftPackage.COMPONENT_DEFINITION__INPUT_EVENTS); + inputEvents = new EObjectContainmentEList(InputEvent.class, this, CftPackage.COMPONENT_DEFINITION__INPUT_EVENTS); } return inputEvents; } @@ -220,7 +219,7 @@ public class ComponentDefinitionImpl extends MinimalEObjectImpl.Container implem switch (featureID) { case CftPackage.COMPONENT_DEFINITION__INPUT_EVENTS: getInputEvents().clear(); - getInputEvents().addAll((Collection)newValue); + getInputEvents().addAll((Collection)newValue); return; case CftPackage.COMPONENT_DEFINITION__EVENT_DEFINITIONS: getEventDefinitions().clear(); diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/ComponentImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/ComponentImpl.java index 6d23dc78..847b6ee1 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/ComponentImpl.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/ComponentImpl.java @@ -35,6 +35,7 @@ import org.eclipse.emf.ecore.util.InternalEList; *
  • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.ComponentImpl#getInputs Inputs}
  • *
  • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.ComponentImpl#getOutputs Outputs}
  • *
  • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.ComponentImpl#getComponentDefinition Component Definition}
  • + *
  • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.ComponentImpl#getName Name}
  • * * * @generated @@ -70,6 +71,26 @@ public class ComponentImpl extends MinimalEObjectImpl.Container implements Compo */ protected ComponentDefinition componentDefinition; + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + /** * * @@ -155,6 +176,29 @@ public class ComponentImpl extends MinimalEObjectImpl.Container implements Compo eNotify(new ENotificationImpl(this, Notification.SET, CftPackage.COMPONENT__COMPONENT_DEFINITION, oldComponentDefinition, componentDefinition)); } + /** + * + * + * @generated + */ + @Override + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + @Override + public void setName(String newName) { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CftPackage.COMPONENT__NAME, oldName, name)); + } + /** * * @@ -203,6 +247,8 @@ public class ComponentImpl extends MinimalEObjectImpl.Container implements Compo case CftPackage.COMPONENT__COMPONENT_DEFINITION: if (resolve) return getComponentDefinition(); return basicGetComponentDefinition(); + case CftPackage.COMPONENT__NAME: + return getName(); } return super.eGet(featureID, resolve, coreType); } @@ -227,6 +273,9 @@ public class ComponentImpl extends MinimalEObjectImpl.Container implements Compo case CftPackage.COMPONENT__COMPONENT_DEFINITION: setComponentDefinition((ComponentDefinition)newValue); return; + case CftPackage.COMPONENT__NAME: + setName((String)newValue); + return; } super.eSet(featureID, newValue); } @@ -248,6 +297,9 @@ public class ComponentImpl extends MinimalEObjectImpl.Container implements Compo case CftPackage.COMPONENT__COMPONENT_DEFINITION: setComponentDefinition((ComponentDefinition)null); return; + case CftPackage.COMPONENT__NAME: + setName(NAME_EDEFAULT); + return; } super.eUnset(featureID); } @@ -266,8 +318,26 @@ public class ComponentImpl extends MinimalEObjectImpl.Container implements Compo return outputs != null && !outputs.isEmpty(); case CftPackage.COMPONENT__COMPONENT_DEFINITION: return componentDefinition != null; + case CftPackage.COMPONENT__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); } return super.eIsSet(featureID); } + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + } //ComponentImpl diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/InputEventImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/InputEventImpl.java new file mode 100644 index 00000000..8432e29b --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/InputEventImpl.java @@ -0,0 +1,164 @@ +/** + */ +package hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl; + +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +/** + * + * An implementation of the model object 'Input Event'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.InputEventImpl#isMultiple Multiple}
    • + *
    + * + * @generated + */ +public class InputEventImpl extends EventDeclarationImpl implements InputEvent { + /** + * The default value of the '{@link #isMultiple() Multiple}' attribute. + * + * + * @see #isMultiple() + * @generated + * @ordered + */ + protected static final boolean MULTIPLE_EDEFAULT = false; + + /** + * The cached value of the '{@link #isMultiple() Multiple}' attribute. + * + * + * @see #isMultiple() + * @generated + * @ordered + */ + protected boolean multiple = MULTIPLE_EDEFAULT; + + /** + * + * + * @generated + */ + protected InputEventImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return CftPackage.Literals.INPUT_EVENT; + } + + /** + * + * + * @generated + */ + @Override + public boolean isMultiple() { + return multiple; + } + + /** + * + * + * @generated + */ + @Override + public void setMultiple(boolean newMultiple) { + boolean oldMultiple = multiple; + multiple = newMultiple; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, CftPackage.INPUT_EVENT__MULTIPLE, oldMultiple, multiple)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case CftPackage.INPUT_EVENT__MULTIPLE: + return isMultiple(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case CftPackage.INPUT_EVENT__MULTIPLE: + setMultiple((Boolean)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case CftPackage.INPUT_EVENT__MULTIPLE: + setMultiple(MULTIPLE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case CftPackage.INPUT_EVENT__MULTIPLE: + return multiple != MULTIPLE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (multiple: "); + result.append(multiple); + result.append(')'); + return result.toString(); + } + +} //InputEventImpl diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/InputImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/InputImpl.java index eda5fea0..aa560064 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/InputImpl.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/InputImpl.java @@ -6,8 +6,7 @@ import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Connection; import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input; -import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.IntputEvent; - +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent; import java.util.Collection; import org.eclipse.emf.common.notify.Notification; @@ -33,7 +32,7 @@ import org.eclipse.emf.ecore.util.InternalEList; * The following features are implemented: *

    *
      - *
    • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.InputImpl#getIntputEvent Intput Event}
    • + *
    • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.InputImpl#getInputEvent Input Event}
    • *
    • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.InputImpl#getComponent Component}
    • *
    • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.InputImpl#getIncomingConnections Incoming Connections}
    • *
    @@ -42,14 +41,14 @@ import org.eclipse.emf.ecore.util.InternalEList; */ public class InputImpl extends MinimalEObjectImpl.Container implements Input { /** - * The cached value of the '{@link #getIntputEvent() Intput Event}' reference. + * The cached value of the '{@link #getInputEvent() Input Event}' reference. * * - * @see #getIntputEvent() + * @see #getInputEvent() * @generated * @ordered */ - protected IntputEvent intputEvent; + protected InputEvent inputEvent; /** * The cached value of the '{@link #getIncomingConnections() Incoming Connections}' containment reference list. @@ -86,16 +85,16 @@ public class InputImpl extends MinimalEObjectImpl.Container implements Input { * @generated */ @Override - public IntputEvent getIntputEvent() { - if (intputEvent != null && intputEvent.eIsProxy()) { - InternalEObject oldIntputEvent = (InternalEObject)intputEvent; - intputEvent = (IntputEvent)eResolveProxy(oldIntputEvent); - if (intputEvent != oldIntputEvent) { + public InputEvent getInputEvent() { + if (inputEvent != null && inputEvent.eIsProxy()) { + InternalEObject oldInputEvent = (InternalEObject)inputEvent; + inputEvent = (InputEvent)eResolveProxy(oldInputEvent); + if (inputEvent != oldInputEvent) { if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.RESOLVE, CftPackage.INPUT__INTPUT_EVENT, oldIntputEvent, intputEvent)); + eNotify(new ENotificationImpl(this, Notification.RESOLVE, CftPackage.INPUT__INPUT_EVENT, oldInputEvent, inputEvent)); } } - return intputEvent; + return inputEvent; } /** @@ -103,8 +102,8 @@ public class InputImpl extends MinimalEObjectImpl.Container implements Input { * * @generated */ - public IntputEvent basicGetIntputEvent() { - return intputEvent; + public InputEvent basicGetInputEvent() { + return inputEvent; } /** @@ -113,11 +112,11 @@ public class InputImpl extends MinimalEObjectImpl.Container implements Input { * @generated */ @Override - public void setIntputEvent(IntputEvent newIntputEvent) { - IntputEvent oldIntputEvent = intputEvent; - intputEvent = newIntputEvent; + public void setInputEvent(InputEvent newInputEvent) { + InputEvent oldInputEvent = inputEvent; + inputEvent = newInputEvent; if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, CftPackage.INPUT__INTPUT_EVENT, oldIntputEvent, intputEvent)); + eNotify(new ENotificationImpl(this, Notification.SET, CftPackage.INPUT__INPUT_EVENT, oldInputEvent, inputEvent)); } /** @@ -233,9 +232,9 @@ public class InputImpl extends MinimalEObjectImpl.Container implements Input { @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { - case CftPackage.INPUT__INTPUT_EVENT: - if (resolve) return getIntputEvent(); - return basicGetIntputEvent(); + case CftPackage.INPUT__INPUT_EVENT: + if (resolve) return getInputEvent(); + return basicGetInputEvent(); case CftPackage.INPUT__COMPONENT: return getComponent(); case CftPackage.INPUT__INCOMING_CONNECTIONS: @@ -253,8 +252,8 @@ public class InputImpl extends MinimalEObjectImpl.Container implements Input { @Override public void eSet(int featureID, Object newValue) { switch (featureID) { - case CftPackage.INPUT__INTPUT_EVENT: - setIntputEvent((IntputEvent)newValue); + case CftPackage.INPUT__INPUT_EVENT: + setInputEvent((InputEvent)newValue); return; case CftPackage.INPUT__COMPONENT: setComponent((Component)newValue); @@ -275,8 +274,8 @@ public class InputImpl extends MinimalEObjectImpl.Container implements Input { @Override public void eUnset(int featureID) { switch (featureID) { - case CftPackage.INPUT__INTPUT_EVENT: - setIntputEvent((IntputEvent)null); + case CftPackage.INPUT__INPUT_EVENT: + setInputEvent((InputEvent)null); return; case CftPackage.INPUT__COMPONENT: setComponent((Component)null); @@ -296,8 +295,8 @@ public class InputImpl extends MinimalEObjectImpl.Container implements Input { @Override public boolean eIsSet(int featureID) { switch (featureID) { - case CftPackage.INPUT__INTPUT_EVENT: - return intputEvent != null; + case CftPackage.INPUT__INPUT_EVENT: + return inputEvent != null; case CftPackage.INPUT__COMPONENT: return getComponent() != null; case CftPackage.INPUT__INCOMING_CONNECTIONS: diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/IntputEventImpl.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/IntputEventImpl.java deleted file mode 100644 index ea22452f..00000000 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/impl/IntputEventImpl.java +++ /dev/null @@ -1,164 +0,0 @@ -/** - */ -package hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl; - -import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage; -import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.IntputEvent; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -/** - * - * An implementation of the model object 'Intput Event'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.IntputEventImpl#isMultiple Multiple}
    • - *
    - * - * @generated - */ -public class IntputEventImpl extends EventDeclarationImpl implements IntputEvent { - /** - * The default value of the '{@link #isMultiple() Multiple}' attribute. - * - * - * @see #isMultiple() - * @generated - * @ordered - */ - protected static final boolean MULTIPLE_EDEFAULT = false; - - /** - * The cached value of the '{@link #isMultiple() Multiple}' attribute. - * - * - * @see #isMultiple() - * @generated - * @ordered - */ - protected boolean multiple = MULTIPLE_EDEFAULT; - - /** - * - * - * @generated - */ - protected IntputEventImpl() { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() { - return CftPackage.Literals.INTPUT_EVENT; - } - - /** - * - * - * @generated - */ - @Override - public boolean isMultiple() { - return multiple; - } - - /** - * - * - * @generated - */ - @Override - public void setMultiple(boolean newMultiple) { - boolean oldMultiple = multiple; - multiple = newMultiple; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, CftPackage.INTPUT_EVENT__MULTIPLE, oldMultiple, multiple)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) { - switch (featureID) { - case CftPackage.INTPUT_EVENT__MULTIPLE: - return isMultiple(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) { - switch (featureID) { - case CftPackage.INTPUT_EVENT__MULTIPLE: - setMultiple((Boolean)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) { - switch (featureID) { - case CftPackage.INTPUT_EVENT__MULTIPLE: - setMultiple(MULTIPLE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) { - switch (featureID) { - case CftPackage.INTPUT_EVENT__MULTIPLE: - return multiple != MULTIPLE_EDEFAULT; - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (multiple: "); - result.append(multiple); - result.append(')'); - return result.toString(); - } - -} //IntputEventImpl diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/util/CftAdapterFactory.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/util/CftAdapterFactory.java index c6b82734..e3a40888 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/util/CftAdapterFactory.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/util/CftAdapterFactory.java @@ -84,8 +84,8 @@ public class CftAdapterFactory extends AdapterFactoryImpl { return createBasicEventDefinitionAdapter(); } @Override - public Adapter caseIntputEvent(IntputEvent object) { - return createIntputEventAdapter(); + public Adapter caseInputEvent(InputEvent object) { + return createInputEventAdapter(); } @Override public Adapter caseEventDeclaration(EventDeclaration object) { @@ -200,16 +200,16 @@ public class CftAdapterFactory extends AdapterFactoryImpl { } /** - * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.IntputEvent Intput Event}'. + * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent Input Event}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.IntputEvent + * @see hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent * @generated */ - public Adapter createIntputEventAdapter() { + public Adapter createInputEventAdapter() { return null; } diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/util/CftSwitch.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/util/CftSwitch.java index f2ec9ffb..e32d792b 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/util/CftSwitch.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/ecore-gen/hu/bme/mit/inf/dslreasoner/faulttree/model/cft/util/CftSwitch.java @@ -95,10 +95,10 @@ public class CftSwitch extends Switch { if (result == null) result = defaultCase(theEObject); return result; } - case CftPackage.INTPUT_EVENT: { - IntputEvent intputEvent = (IntputEvent)theEObject; - T result = caseIntputEvent(intputEvent); - if (result == null) result = caseEventDeclaration(intputEvent); + case CftPackage.INPUT_EVENT: { + InputEvent inputEvent = (InputEvent)theEObject; + T result = caseInputEvent(inputEvent); + if (result == null) result = caseEventDeclaration(inputEvent); if (result == null) result = defaultCase(theEObject); return result; } @@ -230,17 +230,17 @@ public class CftSwitch extends Switch { } /** - * Returns the result of interpreting the object as an instance of 'Intput Event'. + * Returns the result of interpreting the object as an instance of 'Input Event'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Intput Event'. + * @return the result of interpreting the object as an instance of 'Input Event'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseIntputEvent(IntputEvent object) { + public T caseInputEvent(InputEvent object) { return null; } diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/cft.ecore b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/cft.ecore index f9bad301..2fc15d94 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/cft.ecore +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/model/cft.ecore @@ -4,7 +4,7 @@ nsPrefix="cft"> + eType="#//InputEvent" containment="true"/> - + @@ -45,10 +45,11 @@ eType="#//Output" containment="true" eOpposite="#//Output/component"/> + - + - - + + @@ -40,9 +40,10 @@ + - + 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 083705fc..0c5c0fe8 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/representations.aird +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.model/representations.aird @@ -185,6 +185,10 @@ + + + + @@ -635,9 +639,9 @@ - - - + + + KEEP_LOCATION KEEP_SIZE KEEP_RATIO @@ -646,8 +650,8 @@ - - + + @@ -675,8 +679,8 @@ - - + + @@ -876,10 +880,18 @@ KEEP_LOCATION KEEP_SIZE KEEP_RATIO - + + + + + + + + + @@ -949,9 +961,9 @@ - - - + + + bold diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/.classpath b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/.classpath index eca7bdba..428337e5 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/.classpath +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/.classpath @@ -3,5 +3,6 @@ + diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/.project b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/.project index bd1da900..ba51fe06 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/.project +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/.project @@ -5,6 +5,11 @@ + + org.eclipse.xtext.ui.shared.xtextBuilder + + + org.eclipse.jdt.core.javabuilder @@ -24,5 +29,6 @@ org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + org.eclipse.xtext.ui.shared.xtextNature 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 ae23171b..91eeedc5 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 @@ -5,3 +5,12 @@ Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.faulttree.transformation Bundle-Version: 1.0.0.qualifier Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.faulttree.transformation Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Require-Bundle: com.google.guava, + org.eclipse.xtext.xbase.lib, + org.eclipse.xtend.lib, + org.eclipse.xtend.lib.macro, + org.eclipse.emf.ecore, + org.eclipse.viatra.query.runtime, + org.eclipse.viatra.query.runtime.rete, + org.eclipse.viatra.query.runtime.localsearch, + hu.bme.mit.inf.dslreasoner.faulttree.components 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 new file mode 100644 index 00000000..caaffc3c --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.xtend @@ -0,0 +1,10 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft + +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree + +class Cft2FtTransformation { + def createFaultTree(ComponentFaultTree componentFaultTree) { + // TODO + throw new UnsupportedOperationException() + } +} \ No newline at end of file diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.xtend new file mode 100644 index 00000000..7a3e377b --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.xtend @@ -0,0 +1,39 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft + +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftFactory +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentDefinition +import java.util.Map +import org.eclipse.viatra.query.runtime.api.IPatternMatch +import org.eclipse.xtend.lib.annotations.Accessors + +class ComponentFaultTreeTrace { + @Accessors val componentFaultTree = CftFactory.eINSTANCE.createComponentFaultTree + + val nameGenerator = new ComponentNameGenerator + val Map componentInstancesMap = newHashMap + + def instantiateComponent(IPatternMatch patternMatch, ComponentDefinition componenDefinition) { + if (componentInstancesMap.containsKey(patternMatch)) { + throw new IllegalArgumentException("Already instantiated component for match: " + patternMatch) + } + val componentTrace = new ComponentInstanceTrace(componentFaultTree, componenDefinition, nameGenerator) + componentInstancesMap.put(patternMatch, componentTrace) + componentTrace + } + + def setTopLevel(ComponentInstanceTrace trace) { + if (componentFaultTree.topEvent !== null) { + throw new IllegalArgumentException("Top level component already set") + } + val outputs = trace.outputs + if (outputs.size !== 1) { + throw new IllegalArgumentException("Top level component must have 1 output, got " + outputs.size + + " instead") + } + componentFaultTree.topEvent = outputs.head + } + + def lookup(IPatternMatch patternMatch) { + componentInstancesMap.get(patternMatch) + } +} diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.xtend new file mode 100644 index 00000000..7353bfe5 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.xtend @@ -0,0 +1,51 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft + +import com.google.common.collect.Maps +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftFactory +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentDefinition +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.EventDeclaration +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output +import java.util.Map + +class ComponentInstanceTrace { + val componentInstance = CftFactory.eINSTANCE.createComponent + val Map inputEventsMap + val Map outputEventsMap + + protected new(ComponentFaultTree faultTree, ComponentDefinition componentDefinition, + ComponentNameGenerator nameGenerator) { + componentInstance.componentDefinition = componentDefinition + componentInstance.name = nameGenerator.nextName(componentDefinition) + inputEventsMap = Maps.newHashMapWithExpectedSize(componentDefinition.inputEvents.size) + for (inputEvent : componentDefinition.inputEvents) { + val inputTrace = new InputTrace(componentInstance, inputEvent) + inputEventsMap.put(inputEvent, inputTrace) + } + outputEventsMap = Maps.newHashMapWithExpectedSize(componentDefinition.outputEvents.size) + for (outputEvent : componentDefinition.outputEvents) { + val output = CftFactory.eINSTANCE.createOutput + output.eventDeclaration = outputEvent + componentInstance.outputs += output + outputEventsMap.put(outputEvent, output) + } + faultTree.components += componentInstance + } + + def void assign(EventDeclaration inputEvent, ComponentInstanceTrace sourceComponent, EventDeclaration outputEvent) { + val inputTrace = inputEventsMap.get(inputEvent) + if (inputTrace === null) { + throw new IllegalArgumentException("Unknown input: " + inputEvent) + } + val output = sourceComponent.outputEventsMap.get(outputEvent) + if (output === null) { + throw new IllegalArgumentException("Unknown output: " + outputEvent) + } + inputTrace.assign(output) + } + + protected def getOutputs() { + componentInstance.outputs + } +} diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentNameGenerator.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentNameGenerator.xtend new file mode 100644 index 00000000..71d40a9b --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentNameGenerator.xtend @@ -0,0 +1,16 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft + +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentDefinition +import java.util.Map + +class ComponentNameGenerator { + static val DEFAULT_NAME = "__unnamed" + + val Map instanceCounts = newHashMap + + def nextName(ComponentDefinition componentDefinition) { + val instanceCount = instanceCounts.getOrDefault(componentDefinition, 0) + instanceCounts.put(componentDefinition, instanceCount + 1) + (componentDefinition.name ?: DEFAULT_NAME) + instanceCount + } +} 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 new file mode 100644 index 00000000..36aac5e1 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.xtend @@ -0,0 +1,27 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft + +import com.google.common.collect.ImmutableList +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.TransformationDefinition +import java.util.List +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine + +class Ecore2CftTransformation { + val List mappingHandlers + + new(TransformationDefinition transformationDefinition, ViatraQueryEngine viatraQueryEngine) { + val mappingQueries = new MappingQueries(transformationDefinition, viatraQueryEngine) + mappingHandlers = ImmutableList.copyOf(transformationDefinition.mappingDefinitions.map [ mappingDefinition | + new MappingHandler(mappingDefinition, mappingQueries) + ]) + } + + def createComponentFaultTree() { + val trace = new ComponentFaultTreeTrace + for (handler : mappingHandlers) { + handler.instantiateComponents(trace) + } + for (handler : mappingHandlers) { + handler.instantiateConnections(trace) + } + } +} diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/InputTrace.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/InputTrace.xtend new file mode 100644 index 00000000..c529a09b --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/InputTrace.xtend @@ -0,0 +1,29 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft + +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftFactory +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Connection +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output +import java.util.Map + +class InputTrace { + val Input input = CftFactory.eINSTANCE.createInput + val Map connectionsMap = newHashMap + + protected new(Component component, InputEvent inputEvent) { + input.inputEvent = inputEvent + component.inputs += input + } + + def void assign(Output output) { + val connection = connectionsMap.get(output) + if (connection === null) { + val newConnection = CftFactory.eINSTANCE.createConnection + newConnection.output = output + input.incomingConnections += newConnection + connectionsMap.put(output, newConnection) + } + } +} diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/LookupHandler.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/LookupHandler.xtend new file mode 100644 index 00000000..3a06dcc3 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/LookupHandler.xtend @@ -0,0 +1,47 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft + +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.LookupDefinition +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.MappingDefinition +import org.eclipse.viatra.query.runtime.api.IPatternMatch +import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher + +class LookupHandler { + val int[] argumentIndices + val ViatraQueryMatcher lookedUpMatcher + + new(MappingDefinition mappingDefinition, LookupDefinition lookupDefinition, + ViatraQueryMatcher lookedUpMatcher) { + if (lookupDefinition.eContainer != mappingDefinition) { + throw new IllegalArgumentException("lookupDefinition must be contained in mappingDefinition") + } + val argumentCount = lookupDefinition.arguments.size + if (argumentCount != lookedUpMatcher.parameterNames.length) { + throw new IllegalArgumentException( + "lookupDefinition (name: " + lookupDefinition.mapping?.pattern?.name + + ") must have as many arguments as lookedUpMatcher (name: " + lookedUpMatcher.patternName + ")") + } + argumentIndices = newIntArrayOfSize(argumentCount) + for (var int i = 0; i < argumentCount; i++) { + val argument = lookupDefinition.arguments.get(i) + val argumentIndex = mappingDefinition.parameters.indexOf(argument) + argumentIndices.set(i, argumentIndex) + } + this.lookedUpMatcher = lookedUpMatcher + } + + def lookupForMatch(ComponentFaultTreeTrace faultTreeTrace, IPatternMatch match) { + val lookedUpMatch = createLookedUpMatch(match) + faultTreeTrace.lookup(lookedUpMatch) + } + + private def createLookedUpMatch(IPatternMatch match) { + val lookedUpMatch = lookedUpMatcher.newEmptyMatch + val argumentCount = argumentIndices.length + for (var int i = 0; i < argumentCount; i++) { + val argumentIndex = argumentIndices.get(i) + var argumentValue = match.get(argumentIndex) + lookedUpMatch.set(i, argumentValue) + } + lookedUpMatch + } +} diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingHandler.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingHandler.xtend new file mode 100644 index 00000000..643af5c4 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingHandler.xtend @@ -0,0 +1,91 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft + +import com.google.common.collect.ImmutableMap +import com.google.common.collect.Maps +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.LookupDefinition +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.MappingDefinition +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.Variable +import java.util.Map +import org.eclipse.viatra.query.runtime.api.IPatternMatch +import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher + +class MappingHandler { + val ViatraQueryMatcher matcher + val MappingDefinition mappingDefinition + val Map lookupHandlers + + new(MappingDefinition mappingDefinition, MappingQueries mappingQueries) { + matcher = mappingQueries.getMatcher(mappingDefinition) + this.mappingDefinition = mappingDefinition + val variables = newHashSet + for (assignment : mappingDefinition.assignments) { + variables += assignment.input.component + variables += assignment.output.component + } + lookupHandlers = ImmutableMap.copyOf(variables.filter(LookupDefinition).toMap([it], [ lookupDefinition | + mappingQueries.createLookupHandler(mappingDefinition, lookupDefinition) + ])) + } + + def instantiateComponents(ComponentFaultTreeTrace faultTreeTrace) { + if (!hasComponentInstace) { + return + } + matcher.forEachMatch [ match | + val componentTrace = faultTreeTrace.instantiateComponent(match, componentDefinition) + if (isTopLevel) { + faultTreeTrace.topLevel = componentTrace + } + ] + } + + def instantiateConnections(ComponentFaultTreeTrace faultTreeTrace) { + if (!hasConnections) { + return + } + matcher.forEachMatch [ match | + val lookedUpComponents = lookupComponents(faultTreeTrace, match) + for (assignment : mappingDefinition.assignments) { + val input = assignment.input + val inputComponent = lookedUpComponents.get(input.component) + val output = assignment.output + val outputComponent = lookedUpComponents.get(output.component) + if (inputComponent !== null && outputComponent !== null) { + inputComponent.assign(input.event, outputComponent, output.event) + } + } + ] + } + + private def Map lookupComponents(ComponentFaultTreeTrace faultTreeTrace, + IPatternMatch match) { + val lookedUpComponents = Maps.newHashMapWithExpectedSize(lookupHandlers.size + 1) + if (hasComponentInstace) { + val componentInstance = faultTreeTrace.lookup(match) + lookedUpComponents.put(mappingDefinition.componentInstance, componentInstance) + } + for (pair : lookupHandlers.entrySet) { + val componentInstance = pair.value.lookupForMatch(faultTreeTrace, match) + if (componentInstance !== null) { + lookedUpComponents.put(pair.key, componentInstance) + } + } + lookedUpComponents + } + + private def getComponentDefinition() { + mappingDefinition.componentInstance?.componentType + } + + private def hasComponentInstace() { + componentDefinition !== null + } + + private def isTopLevel() { + mappingDefinition.topLevel + } + + private def hasConnections() { + !mappingDefinition.assignments.empty + } +} diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingQueries.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingQueries.xtend new file mode 100644 index 00000000..6683b3f8 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/src/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingQueries.xtend @@ -0,0 +1,38 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft + +import com.google.common.collect.ImmutableMap +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.LookupDefinition +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.MappingDefinition +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.TransformationDefinition +import java.util.Map +import org.eclipse.viatra.query.patternlanguage.emf.specification.SpecificationBuilder +import org.eclipse.viatra.query.runtime.api.GenericQueryGroup +import org.eclipse.viatra.query.runtime.api.IPatternMatch +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine +import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher + +class MappingQueries { + val Map> matchersMap + + new(TransformationDefinition transformationDefinition, ViatraQueryEngine viatraQueryEngine) { + val specificationBuilder = new SpecificationBuilder + val querySpecificationsMap = transformationDefinition.mappingDefinitions.toMap([it], [ + specificationBuilder.getOrCreateSpecification(pattern) + ]) + GenericQueryGroup.of(querySpecificationsMap.values).prepare(viatraQueryEngine) + matchersMap = ImmutableMap.copyOf(querySpecificationsMap.mapValues[getMatcher(viatraQueryEngine)]) + } + + def getMatcher(MappingDefinition mappingDefinition) { + val matcher = matchersMap.get(mappingDefinition) + if (matcher === null) { + throw new IllegalArgumentException("Unknown mapping definition: " + mappingDefinition) + } + matcher + } + + def createLookupHandler(MappingDefinition mappingDefinition, LookupDefinition lookupDefinition) { + val lookedUpMatcher = getMatcher(lookupDefinition.mapping) + new LookupHandler(mappingDefinition, lookupDefinition, lookedUpMatcher) + } +} diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/.gitignore b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/.gitignore new file mode 100644 index 00000000..49df59a2 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/.gitignore @@ -0,0 +1,8 @@ +/.CftTransformation.java._trace +/.ComponentFaultTreeTrace.java._trace +/.ComponentInstanceTrace.java._trace +/.InputTrace.java._trace +/.MappingHandler.java._trace +/.ComponentInstantiationHandler.java._trace +/.MappingQueries.java._trace +/.LookupHandler.java._trace 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 new file mode 100644 index 00000000..3e751774 Binary files /dev/null and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.Cft2FtTransformation.xtendbin 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 new file mode 100644 index 00000000..70156b02 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.gitignore @@ -0,0 +1 @@ +/.Cft2FtTransformation.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 new file mode 100644 index 00000000..ae750806 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/Cft2FtTransformation.java @@ -0,0 +1,10 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft; + +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree; + +@SuppressWarnings("all") +public class Cft2FtTransformation { + public void createFaultTree(final ComponentFaultTree componentFaultTree) { + throw new UnsupportedOperationException(); + } +} 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 new file mode 100644 index 00000000..d26ae359 Binary files /dev/null and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentFaultTreeTrace.xtendbin 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 new file mode 100644 index 00000000..03d6064f Binary files /dev/null and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentInstanceTrace.xtendbin 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 new file mode 100644 index 00000000..1f6758ac Binary files /dev/null and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.ComponentNameGenerator.xtendbin 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 new file mode 100644 index 00000000..3569c02f Binary files /dev/null and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.Ecore2CftTransformation.xtendbin 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 new file mode 100644 index 00000000..378550ba Binary files /dev/null and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.InputTrace.xtendbin 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 new file mode 100644 index 00000000..0b0e534a Binary files /dev/null and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.LookupHandler.xtendbin 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 new file mode 100644 index 00000000..5e26d4e4 Binary files /dev/null and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingHandler.xtendbin 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 new file mode 100644 index 00000000..8fb7f13f Binary files /dev/null and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.MappingQueries.xtendbin differ diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.gitignore b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.gitignore new file mode 100644 index 00000000..33bb70d4 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/.gitignore @@ -0,0 +1,9 @@ +/.ComponentFaultTreeTrace.java._trace +/.ComponentInstanceTrace.java._trace +/.InputTrace.java._trace +/.LookupHandler.java._trace +/.MappingHandler.java._trace +/.MappingQueries.java._trace +/.CftTransformation.java._trace +/.Ecore2CftTransformation.java._trace +/.ComponentNameGenerator.java._trace diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.java new file mode 100644 index 00000000..46e711d9 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentFaultTreeTrace.java @@ -0,0 +1,67 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft; + +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftFactory; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentDefinition; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentInstanceTrace; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentNameGenerator; +import java.util.Map; +import org.eclipse.emf.common.util.EList; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.xtend.lib.annotations.Accessors; +import org.eclipse.xtext.xbase.lib.CollectionLiterals; +import org.eclipse.xtext.xbase.lib.IterableExtensions; +import org.eclipse.xtext.xbase.lib.Pure; + +@SuppressWarnings("all") +public class ComponentFaultTreeTrace { + @Accessors + private final ComponentFaultTree componentFaultTree = CftFactory.eINSTANCE.createComponentFaultTree(); + + private final ComponentNameGenerator nameGenerator = new ComponentNameGenerator(); + + private final Map componentInstancesMap = CollectionLiterals.newHashMap(); + + public ComponentInstanceTrace instantiateComponent(final IPatternMatch patternMatch, final ComponentDefinition componenDefinition) { + ComponentInstanceTrace _xblockexpression = null; + { + boolean _containsKey = this.componentInstancesMap.containsKey(patternMatch); + if (_containsKey) { + throw new IllegalArgumentException(("Already instantiated component for match: " + patternMatch)); + } + final ComponentInstanceTrace componentTrace = new ComponentInstanceTrace(this.componentFaultTree, componenDefinition, this.nameGenerator); + this.componentInstancesMap.put(patternMatch, componentTrace); + _xblockexpression = componentTrace; + } + return _xblockexpression; + } + + public void setTopLevel(final ComponentInstanceTrace trace) { + Output _topEvent = this.componentFaultTree.getTopEvent(); + boolean _tripleNotEquals = (_topEvent != null); + if (_tripleNotEquals) { + throw new IllegalArgumentException("Top level component already set"); + } + final EList outputs = trace.getOutputs(); + int _size = outputs.size(); + boolean _tripleNotEquals_1 = (_size != 1); + if (_tripleNotEquals_1) { + int _size_1 = outputs.size(); + String _plus = ("Top level component must have 1 output, got " + Integer.valueOf(_size_1)); + String _plus_1 = (_plus + + " instead"); + throw new IllegalArgumentException(_plus_1); + } + this.componentFaultTree.setTopEvent(IterableExtensions.head(outputs)); + } + + public ComponentInstanceTrace lookup(final IPatternMatch patternMatch) { + return this.componentInstancesMap.get(patternMatch); + } + + @Pure + public ComponentFaultTree getComponentFaultTree() { + return this.componentFaultTree; + } +} diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.java new file mode 100644 index 00000000..840f501d --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentInstanceTrace.java @@ -0,0 +1,65 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft; + +import com.google.common.collect.Maps; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftFactory; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentDefinition; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentFaultTree; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.EventDeclaration; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentNameGenerator; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.InputTrace; +import java.util.Map; +import org.eclipse.emf.common.util.EList; + +@SuppressWarnings("all") +public class ComponentInstanceTrace { + private final Component componentInstance = CftFactory.eINSTANCE.createComponent(); + + private final Map inputEventsMap; + + private final Map outputEventsMap; + + protected ComponentInstanceTrace(final ComponentFaultTree faultTree, final ComponentDefinition componentDefinition, final ComponentNameGenerator nameGenerator) { + this.componentInstance.setComponentDefinition(componentDefinition); + this.componentInstance.setName(nameGenerator.nextName(componentDefinition)); + this.inputEventsMap = Maps.newHashMapWithExpectedSize(componentDefinition.getInputEvents().size()); + EList _inputEvents = componentDefinition.getInputEvents(); + for (final InputEvent inputEvent : _inputEvents) { + { + final InputTrace inputTrace = new InputTrace(this.componentInstance, inputEvent); + this.inputEventsMap.put(inputEvent, inputTrace); + } + } + this.outputEventsMap = Maps.newHashMapWithExpectedSize(componentDefinition.getOutputEvents().size()); + EList _outputEvents = componentDefinition.getOutputEvents(); + for (final EventDeclaration outputEvent : _outputEvents) { + { + final Output output = CftFactory.eINSTANCE.createOutput(); + output.setEventDeclaration(outputEvent); + EList _outputs = this.componentInstance.getOutputs(); + _outputs.add(output); + this.outputEventsMap.put(outputEvent, output); + } + } + EList _components = faultTree.getComponents(); + _components.add(this.componentInstance); + } + + public void assign(final EventDeclaration inputEvent, final ComponentInstanceTrace sourceComponent, final EventDeclaration outputEvent) { + final InputTrace inputTrace = this.inputEventsMap.get(inputEvent); + if ((inputTrace == null)) { + throw new IllegalArgumentException(("Unknown input: " + inputEvent)); + } + final Output output = sourceComponent.outputEventsMap.get(outputEvent); + if ((output == null)) { + throw new IllegalArgumentException(("Unknown output: " + outputEvent)); + } + inputTrace.assign(output); + } + + protected EList getOutputs() { + return this.componentInstance.getOutputs(); + } +} diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentNameGenerator.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentNameGenerator.java new file mode 100644 index 00000000..e7dca003 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/ComponentNameGenerator.java @@ -0,0 +1,29 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft; + +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentDefinition; +import java.util.Map; +import org.eclipse.xtext.xbase.lib.CollectionLiterals; + +@SuppressWarnings("all") +public class ComponentNameGenerator { + private static final String DEFAULT_NAME = "__unnamed"; + + private final Map instanceCounts = CollectionLiterals.newHashMap(); + + public String nextName(final ComponentDefinition componentDefinition) { + String _xblockexpression = null; + { + final Integer instanceCount = this.instanceCounts.getOrDefault(componentDefinition, Integer.valueOf(0)); + this.instanceCounts.put(componentDefinition, Integer.valueOf(((instanceCount).intValue() + 1))); + String _elvis = null; + String _name = componentDefinition.getName(); + if (_name != null) { + _elvis = _name; + } else { + _elvis = ComponentNameGenerator.DEFAULT_NAME; + } + _xblockexpression = (_elvis + instanceCount); + } + return _xblockexpression; + } +} 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 new file mode 100644 index 00000000..8b2d9d97 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/Ecore2CftTransformation.java @@ -0,0 +1,35 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft; + +import com.google.common.collect.ImmutableList; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.MappingDefinition; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.TransformationDefinition; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentFaultTreeTrace; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.MappingHandler; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.MappingQueries; +import java.util.List; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.ListExtensions; + +@SuppressWarnings("all") +public class Ecore2CftTransformation { + private final List mappingHandlers; + + public Ecore2CftTransformation(final TransformationDefinition transformationDefinition, final ViatraQueryEngine viatraQueryEngine) { + final MappingQueries mappingQueries = new MappingQueries(transformationDefinition, viatraQueryEngine); + final Function1 _function = (MappingDefinition mappingDefinition) -> { + return new MappingHandler(mappingDefinition, mappingQueries); + }; + this.mappingHandlers = ImmutableList.copyOf(ListExtensions.map(transformationDefinition.getMappingDefinitions(), _function)); + } + + public void createComponentFaultTree() { + final ComponentFaultTreeTrace trace = new ComponentFaultTreeTrace(); + for (final MappingHandler handler : this.mappingHandlers) { + handler.instantiateComponents(trace); + } + for (final MappingHandler handler_1 : this.mappingHandlers) { + handler_1.instantiateConnections(trace); + } + } +} diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/InputTrace.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/InputTrace.java new file mode 100644 index 00000000..c12f2bae --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/InputTrace.java @@ -0,0 +1,35 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft; + +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftFactory; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Component; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Connection; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Input; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.Output; +import java.util.Map; +import org.eclipse.emf.common.util.EList; +import org.eclipse.xtext.xbase.lib.CollectionLiterals; + +@SuppressWarnings("all") +public class InputTrace { + private final Input input = CftFactory.eINSTANCE.createInput(); + + private final Map connectionsMap = CollectionLiterals.newHashMap(); + + protected InputTrace(final Component component, final InputEvent inputEvent) { + this.input.setInputEvent(inputEvent); + EList _inputs = component.getInputs(); + _inputs.add(this.input); + } + + public void assign(final Output output) { + final Connection connection = this.connectionsMap.get(output); + if ((connection == null)) { + final Connection newConnection = CftFactory.eINSTANCE.createConnection(); + newConnection.setOutput(output); + EList _incomingConnections = this.input.getIncomingConnections(); + _incomingConnections.add(newConnection); + this.connectionsMap.put(output, newConnection); + } + } +} diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/LookupHandler.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/LookupHandler.java new file mode 100644 index 00000000..e155aac8 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/LookupHandler.java @@ -0,0 +1,84 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft; + +import com.google.common.base.Objects; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.LookupDefinition; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.MappingDefinition; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.MappingParameter; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentFaultTreeTrace; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentInstanceTrace; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.viatra.query.patternlanguage.emf.vql.Pattern; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; +import org.eclipse.xtext.xbase.lib.Conversions; + +@SuppressWarnings("all") +public class LookupHandler { + private final int[] argumentIndices; + + private final ViatraQueryMatcher lookedUpMatcher; + + public LookupHandler(final MappingDefinition mappingDefinition, final LookupDefinition lookupDefinition, final ViatraQueryMatcher lookedUpMatcher) { + EObject _eContainer = lookupDefinition.eContainer(); + boolean _notEquals = (!Objects.equal(_eContainer, mappingDefinition)); + if (_notEquals) { + throw new IllegalArgumentException("lookupDefinition must be contained in mappingDefinition"); + } + final int argumentCount = lookupDefinition.getArguments().size(); + int _length = ((Object[])Conversions.unwrapArray(lookedUpMatcher.getParameterNames(), Object.class)).length; + boolean _notEquals_1 = (argumentCount != _length); + if (_notEquals_1) { + MappingDefinition _mapping = lookupDefinition.getMapping(); + Pattern _pattern = null; + if (_mapping!=null) { + _pattern=_mapping.getPattern(); + } + String _name = null; + if (_pattern!=null) { + _name=_pattern.getName(); + } + String _plus = ("lookupDefinition (name: " + _name); + String _plus_1 = (_plus + + ") must have as many arguments as lookedUpMatcher (name: "); + String _patternName = lookedUpMatcher.getPatternName(); + String _plus_2 = (_plus_1 + _patternName); + String _plus_3 = (_plus_2 + ")"); + throw new IllegalArgumentException(_plus_3); + } + this.argumentIndices = new int[argumentCount]; + for (int i = 0; (i < argumentCount); i++) { + { + final MappingParameter argument = lookupDefinition.getArguments().get(i); + final int argumentIndex = mappingDefinition.getParameters().indexOf(argument); + this.argumentIndices[i] = argumentIndex; + } + } + this.lookedUpMatcher = lookedUpMatcher; + } + + public ComponentInstanceTrace lookupForMatch(final ComponentFaultTreeTrace faultTreeTrace, final IPatternMatch match) { + ComponentInstanceTrace _xblockexpression = null; + { + final IPatternMatch lookedUpMatch = this.createLookedUpMatch(match); + _xblockexpression = faultTreeTrace.lookup(lookedUpMatch); + } + return _xblockexpression; + } + + private IPatternMatch createLookedUpMatch(final IPatternMatch match) { + IPatternMatch _xblockexpression = null; + { + final IPatternMatch lookedUpMatch = this.lookedUpMatcher.newEmptyMatch(); + final int argumentCount = this.argumentIndices.length; + for (int i = 0; (i < argumentCount); i++) { + { + final int argumentIndex = this.argumentIndices[i]; + Object argumentValue = match.get(argumentIndex); + lookedUpMatch.set(i, argumentValue); + } + } + _xblockexpression = lookedUpMatch; + } + return _xblockexpression; + } +} diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingHandler.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingHandler.java new file mode 100644 index 00000000..41703289 --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingHandler.java @@ -0,0 +1,146 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; +import com.google.common.collect.Maps; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.Assignment; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.ComponentInstance; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.EventReference; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.LookupDefinition; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.MappingDefinition; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.Variable; +import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentDefinition; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentFaultTreeTrace; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.ComponentInstanceTrace; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.LookupHandler; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.MappingQueries; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.function.Consumer; +import org.eclipse.emf.common.util.EList; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; +import org.eclipse.xtext.xbase.lib.CollectionLiterals; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.IterableExtensions; + +@SuppressWarnings("all") +public class MappingHandler { + private final ViatraQueryMatcher matcher; + + private final MappingDefinition mappingDefinition; + + private final Map lookupHandlers; + + public MappingHandler(final MappingDefinition mappingDefinition, final MappingQueries mappingQueries) { + this.matcher = mappingQueries.getMatcher(mappingDefinition); + this.mappingDefinition = mappingDefinition; + final HashSet variables = CollectionLiterals.newHashSet(); + EList _assignments = mappingDefinition.getAssignments(); + for (final Assignment assignment : _assignments) { + { + Variable _component = assignment.getInput().getComponent(); + variables.add(_component); + Variable _component_1 = assignment.getOutput().getComponent(); + variables.add(_component_1); + } + } + final Function1 _function = (LookupDefinition it) -> { + return it; + }; + final Function1 _function_1 = (LookupDefinition lookupDefinition) -> { + return mappingQueries.createLookupHandler(mappingDefinition, lookupDefinition); + }; + this.lookupHandlers = ImmutableMap.copyOf(IterableExtensions.toMap(Iterables.filter(variables, LookupDefinition.class), _function, _function_1)); + } + + public void instantiateComponents(final ComponentFaultTreeTrace faultTreeTrace) { + boolean _hasComponentInstace = this.hasComponentInstace(); + boolean _not = (!_hasComponentInstace); + if (_not) { + return; + } + final Consumer _function = (IPatternMatch match) -> { + final ComponentInstanceTrace componentTrace = faultTreeTrace.instantiateComponent(match, this.getComponentDefinition()); + boolean _isTopLevel = this.isTopLevel(); + if (_isTopLevel) { + faultTreeTrace.setTopLevel(componentTrace); + } + }; + this.matcher.forEachMatch(_function); + } + + public void instantiateConnections(final ComponentFaultTreeTrace faultTreeTrace) { + boolean _hasConnections = this.hasConnections(); + boolean _not = (!_hasConnections); + if (_not) { + return; + } + final Consumer _function = (IPatternMatch match) -> { + final Map lookedUpComponents = this.lookupComponents(faultTreeTrace, match); + EList _assignments = this.mappingDefinition.getAssignments(); + for (final Assignment assignment : _assignments) { + { + final EventReference input = assignment.getInput(); + final ComponentInstanceTrace inputComponent = lookedUpComponents.get(input.getComponent()); + final EventReference output = assignment.getOutput(); + final ComponentInstanceTrace outputComponent = lookedUpComponents.get(output.getComponent()); + if (((inputComponent != null) && (outputComponent != null))) { + inputComponent.assign(input.getEvent(), outputComponent, output.getEvent()); + } + } + } + }; + this.matcher.forEachMatch(_function); + } + + private Map lookupComponents(final ComponentFaultTreeTrace faultTreeTrace, final IPatternMatch match) { + HashMap _xblockexpression = null; + { + int _size = this.lookupHandlers.size(); + int _plus = (_size + 1); + final HashMap lookedUpComponents = Maps.newHashMapWithExpectedSize(_plus); + boolean _hasComponentInstace = this.hasComponentInstace(); + if (_hasComponentInstace) { + final ComponentInstanceTrace componentInstance = faultTreeTrace.lookup(match); + lookedUpComponents.put(this.mappingDefinition.getComponentInstance(), componentInstance); + } + Set> _entrySet = this.lookupHandlers.entrySet(); + for (final Map.Entry pair : _entrySet) { + { + final ComponentInstanceTrace componentInstance_1 = pair.getValue().lookupForMatch(faultTreeTrace, match); + if ((componentInstance_1 != null)) { + lookedUpComponents.put(pair.getKey(), componentInstance_1); + } + } + } + _xblockexpression = lookedUpComponents; + } + return _xblockexpression; + } + + private ComponentDefinition getComponentDefinition() { + ComponentInstance _componentInstance = this.mappingDefinition.getComponentInstance(); + ComponentDefinition _componentType = null; + if (_componentInstance!=null) { + _componentType=_componentInstance.getComponentType(); + } + return _componentType; + } + + private boolean hasComponentInstace() { + ComponentDefinition _componentDefinition = this.getComponentDefinition(); + return (_componentDefinition != null); + } + + private boolean isTopLevel() { + return this.mappingDefinition.isTopLevel(); + } + + private boolean hasConnections() { + boolean _isEmpty = this.mappingDefinition.getAssignments().isEmpty(); + return (!_isEmpty); + } +} diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingQueries.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingQueries.java new file mode 100644 index 00000000..6147807e --- /dev/null +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/ecore2cft/MappingQueries.java @@ -0,0 +1,60 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft; + +import com.google.common.collect.ImmutableMap; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.LookupDefinition; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.MappingDefinition; +import hu.bme.mit.inf.dslreasoner.faulttree.components.cftLanguage.TransformationDefinition; +import hu.bme.mit.inf.dslreasoner.faulttree.transformation.ecore2cft.LookupHandler; +import java.util.Map; +import org.eclipse.viatra.query.patternlanguage.emf.specification.SpecificationBuilder; +import org.eclipse.viatra.query.runtime.api.GenericQueryGroup; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; +import org.eclipse.xtext.xbase.lib.Conversions; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.IterableExtensions; +import org.eclipse.xtext.xbase.lib.MapExtensions; + +@SuppressWarnings("all") +public class MappingQueries { + private final Map> matchersMap; + + public MappingQueries(final TransformationDefinition transformationDefinition, final ViatraQueryEngine viatraQueryEngine) { + final SpecificationBuilder specificationBuilder = new SpecificationBuilder(); + final Function1 _function = (MappingDefinition it) -> { + return it; + }; + final Function1>> _function_1 = (MappingDefinition it) -> { + return specificationBuilder.getOrCreateSpecification(it.getPattern()); + }; + final Map>> querySpecificationsMap = IterableExtensions.>>toMap(transformationDefinition.getMappingDefinitions(), _function, _function_1); + GenericQueryGroup.of(((IQuerySpecification[])Conversions.unwrapArray(querySpecificationsMap.values(), IQuerySpecification.class))).prepare(viatraQueryEngine); + final Function1>, ViatraQueryMatcher> _function_2 = (IQuerySpecification> it) -> { + return it.getMatcher(viatraQueryEngine); + }; + this.matchersMap = ImmutableMap.>copyOf(MapExtensions.>, ViatraQueryMatcher>mapValues(querySpecificationsMap, _function_2)); + } + + public ViatraQueryMatcher getMatcher(final MappingDefinition mappingDefinition) { + ViatraQueryMatcher _xblockexpression = null; + { + final ViatraQueryMatcher matcher = this.matchersMap.get(mappingDefinition); + if ((matcher == null)) { + throw new IllegalArgumentException(("Unknown mapping definition: " + mappingDefinition)); + } + _xblockexpression = matcher; + } + return _xblockexpression; + } + + public LookupHandler createLookupHandler(final MappingDefinition mappingDefinition, final LookupDefinition lookupDefinition) { + LookupHandler _xblockexpression = null; + { + final ViatraQueryMatcher lookedUpMatcher = this.getMatcher(lookupDefinition.getMapping()); + _xblockexpression = new LookupHandler(mappingDefinition, lookupDefinition, lookedUpMatcher); + } + return _xblockexpression; + } +} -- cgit v1.2.3-70-g09d2