aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-03-24 22:08:23 -0400
committerLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-03-24 22:08:23 -0400
commitdbbf707d78c76f4bc001d7df2418bd6ceab12db3 (patch)
tree08739c6d7739bc4fa404a9c850f98bef9ea994e7
parentupgraded attribute support for the graph solver (diff)
downloadVIATRA-Generator-dbbf707d78c76f4bc001d7df2418bd6ceab12db3.tar.gz
VIATRA-Generator-dbbf707d78c76f4bc001d7df2418bd6ceab12db3.tar.zst
VIATRA-Generator-dbbf707d78c76f4bc001d7df2418bd6ceab12db3.zip
example projects added
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/.classpath10
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/.gitignore1
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/.project40
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/.settings/org.eclipse.jdt.core.prefs11
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/.settings/org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguage.prefs32
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/FamGeneration.vsconfig18
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/META-INF/MANIFEST.MF21
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/build.properties7
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FAMTerminator.java52
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/Function.java61
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionType.java241
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalArchitectureModel.java42
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalData.java81
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalElement.java109
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalInput.java42
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalInterface.java73
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalOutput.java42
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalarchitectureFactory.java96
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalarchitecturePackage.java1032
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/InformationLink.java81
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FAMTerminatorImpl.java196
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionImpl.java191
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalArchitectureModelImpl.java152
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalDataImpl.java267
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalElementImpl.java318
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalInputImpl.java165
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalInterfaceImpl.java243
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalOutputImpl.java165
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalarchitectureFactoryImpl.java213
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalarchitecturePackageImpl.java574
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/InformationLinkImpl.java285
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/util/FunctionalarchitectureAdapterFactory.java265
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/util/FunctionalarchitectureSwitch.java282
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/generator.vqgen2
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.aird2
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore69
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.genmodel48
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/model/FunctionalArchitectureModel.xmi4
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/output/.gitignore2
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/plugin.properties4
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml27
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/src/hu/bme/mit/inf/dslreasoner/domains/transima/fam/FamPatterns.vql114
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/vql-gen/hu/bme/mit/inf/dslreasoner/domains/transima/fam/.gitignore18
-rw-r--r--Domains/Examples/ModelGenExampleFAM_standalone/.project23
-rw-r--r--Domains/Examples/ModelGenExampleFAM_standalone/FamGeneration.vsconfig25
-rw-r--r--Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamInstance.xmi12
-rw-r--r--Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamMetamodel.ecore52
-rw-r--r--Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamPatterns.vql104
-rw-r--r--Domains/Examples/ModelGenExampleFAM_standalone/outputs/.gitignore2
49 files changed, 5916 insertions, 0 deletions
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/.classpath b/Domains/Examples/ModelGenExampleFAM_plugin/.classpath
new file mode 100644
index 00000000..5d959836
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/.classpath
@@ -0,0 +1,10 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<classpath>
3 <classpathentry kind="src" path="ecore-gen"/>
4 <classpathentry kind="src" path="src"/>
5 <classpathentry kind="src" path="model"/>
6 <classpathentry kind="src" path="vql-gen"/>
7 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
8 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
9 <classpathentry kind="output" path="bin"/>
10</classpath>
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/.gitignore b/Domains/Examples/ModelGenExampleFAM_plugin/.gitignore
new file mode 100644
index 00000000..ae3c1726
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/.gitignore
@@ -0,0 +1 @@
/bin/
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/.project b/Domains/Examples/ModelGenExampleFAM_plugin/.project
new file mode 100644
index 00000000..70920828
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/.project
@@ -0,0 +1,40 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
3 <name>ModelGenExampleFAM_plugin</name>
4 <comment></comment>
5 <projects>
6 </projects>
7 <buildSpec>
8 <buildCommand>
9 <name>org.eclipse.viatra.query.tooling.ui.projectbuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 <buildCommand>
14 <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
15 <arguments>
16 </arguments>
17 </buildCommand>
18 <buildCommand>
19 <name>org.eclipse.jdt.core.javabuilder</name>
20 <arguments>
21 </arguments>
22 </buildCommand>
23 <buildCommand>
24 <name>org.eclipse.pde.ManifestBuilder</name>
25 <arguments>
26 </arguments>
27 </buildCommand>
28 <buildCommand>
29 <name>org.eclipse.pde.SchemaBuilder</name>
30 <arguments>
31 </arguments>
32 </buildCommand>
33 </buildSpec>
34 <natures>
35 <nature>org.eclipse.jdt.core.javanature</nature>
36 <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
37 <nature>org.eclipse.viatra.query.projectnature</nature>
38 <nature>org.eclipse.pde.PluginNature</nature>
39 </natures>
40</projectDescription>
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/.settings/org.eclipse.jdt.core.prefs b/Domains/Examples/ModelGenExampleFAM_plugin/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..bb35fa0a
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
1eclipse.preferences.version=1
2org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
4org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
5org.eclipse.jdt.core.compiler.compliance=1.8
6org.eclipse.jdt.core.compiler.debug.lineNumber=generate
7org.eclipse.jdt.core.compiler.debug.localVariable=generate
8org.eclipse.jdt.core.compiler.debug.sourceFile=generate
9org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
10org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
11org.eclipse.jdt.core.compiler.source=1.8
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/.settings/org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguage.prefs b/Domains/Examples/ModelGenExampleFAM_plugin/.settings/org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguage.prefs
new file mode 100644
index 00000000..c1ba78d2
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/.settings/org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguage.prefs
@@ -0,0 +1,32 @@
1BuilderConfiguration.is_project_specific=true
2autobuilding=true
3eclipse.preferences.version=1
4generateEclipseExtensions=true
5generateGeneratedAnnotation=false
6generateManifestEntries=true
7generateMatchProcessors=true
8generateMatchers=USE_GENERIC
9generateSuppressWarnings=true
10generatedAnnotationComment=
11includeDateInGenerated=false
12org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguage.useProjectSettings=true
13outlet.DEFAULT_OUTPUT.cleanDirectory=false
14outlet.DEFAULT_OUTPUT.cleanupDerived=true
15outlet.DEFAULT_OUTPUT.createDirectory=true
16outlet.DEFAULT_OUTPUT.derived=true
17outlet.DEFAULT_OUTPUT.directory=./vql-gen
18outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
19outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
20outlet.DEFAULT_OUTPUT.keepLocalHistory=true
21outlet.DEFAULT_OUTPUT.override=true
22outlet.DEFAULT_OUTPUT.sourceFolder.ecore-gen.directory=
23outlet.DEFAULT_OUTPUT.sourceFolder.ecore-gen.ignore=
24outlet.DEFAULT_OUTPUT.sourceFolder.inputs.directory=
25outlet.DEFAULT_OUTPUT.sourceFolder.inputs.ignore=
26outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=
27outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.ignore=
28outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=
29outlet.DEFAULT_OUTPUT.sourceFolder.src.ignore=
30outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=
31targetJavaVersion=JAVA5
32useJavaCompilerCompliance=true
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/FamGeneration.vsconfig b/Domains/Examples/ModelGenExampleFAM_plugin/FamGeneration.vsconfig
new file mode 100644
index 00000000..b84679b7
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/FamGeneration.vsconfig
@@ -0,0 +1,18 @@
1import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam"
2import viatra "hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns"
3
4generate {
5 metamodel = { package functionalarchitecture }
6 patterns = { package hu.bme.mit.inf.dslreasoner.domains.transima.fam }
7
8 solver = ViatraSolver
9
10 scope = {
11 #node = 10
12 }
13
14 number = 3
15 runs = 3
16
17 output = "platform:/resource/ModelGenExampleFAM_plugin/output"
18} \ No newline at end of file
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/META-INF/MANIFEST.MF b/Domains/Examples/ModelGenExampleFAM_plugin/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..423e95bd
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
1Manifest-Version: 1.0
2Bundle-ManifestVersion: 2
3Bundle-Name: %pluginName
4Bundle-SymbolicName: ModelGenExampleFAM_plugin;singleton:=true
5Bundle-Version: 1.0.0.qualifier
6Bundle-ClassPath: .
7Bundle-Vendor: %providerName
8Bundle-Localization: plugin
9Export-Package: functionalarchitecture,
10 functionalarchitecture.impl,
11 functionalarchitecture.util,
12 hu.bme.mit.inf.dslreasoner.domains.transima.fam
13Require-Bundle: ModelGenExampleFAM_plugin,
14 org.eclipse.viatra.addon.querybasedfeatures.runtime,
15 org.eclipse.viatra.query.runtime,
16 org.apache.log4j;bundle-version="1.2.15",
17 com.google.guava;bundle-version="15.0.0",
18 org.eclipse.core.runtime,
19 org.eclipse.emf.ecore;visibility:=reexport
20Bundle-RequiredExecutionEnvironment: JavaSE-1.8
21Bundle-ActivationPolicy: lazy
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/build.properties b/Domains/Examples/ModelGenExampleFAM_plugin/build.properties
new file mode 100644
index 00000000..2503cbe2
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/build.properties
@@ -0,0 +1,7 @@
1bin.includes = META-INF/,\
2 .,\
3 plugin.xml
4source.. = src/,\
5 model/,\
6 src-gen/
7output.. = bin/
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FAMTerminator.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FAMTerminator.java
new file mode 100644
index 00000000..ae350e1f
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FAMTerminator.java
@@ -0,0 +1,52 @@
1/**
2 */
3package functionalarchitecture;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>FAM Terminator</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link functionalarchitecture.FAMTerminator#getData <em>Data</em>}</li>
17 * </ul>
18 *
19 * @see functionalarchitecture.FunctionalarchitecturePackage#getFAMTerminator()
20 * @model
21 * @generated
22 */
23public interface FAMTerminator extends EObject {
24 /**
25 * Returns the value of the '<em><b>Data</b></em>' container reference.
26 * It is bidirectional and its opposite is '{@link functionalarchitecture.FunctionalData#getTerminator <em>Terminator</em>}'.
27 * <!-- begin-user-doc -->
28 * <p>
29 * If the meaning of the '<em>Data</em>' container reference isn't clear,
30 * there really should be more of a description here...
31 * </p>
32 * <!-- end-user-doc -->
33 * @return the value of the '<em>Data</em>' container reference.
34 * @see #setData(FunctionalData)
35 * @see functionalarchitecture.FunctionalarchitecturePackage#getFAMTerminator_Data()
36 * @see functionalarchitecture.FunctionalData#getTerminator
37 * @model opposite="terminator" transient="false"
38 * @generated
39 */
40 FunctionalData getData();
41
42 /**
43 * Sets the value of the '{@link functionalarchitecture.FAMTerminator#getData <em>Data</em>}' container reference.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @param value the new value of the '<em>Data</em>' container reference.
47 * @see #getData()
48 * @generated
49 */
50 void setData(FunctionalData value);
51
52} // FAMTerminator
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/Function.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/Function.java
new file mode 100644
index 00000000..5b484066
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/Function.java
@@ -0,0 +1,61 @@
1/**
2 */
3package functionalarchitecture;
4
5import org.eclipse.emf.common.util.EList;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Function</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link functionalarchitecture.Function#getSubElements <em>Sub Elements</em>}</li>
17 * <li>{@link functionalarchitecture.Function#getType <em>Type</em>}</li>
18 * </ul>
19 *
20 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunction()
21 * @model
22 * @generated
23 */
24public interface Function extends FunctionalElement {
25 /**
26 * Returns the value of the '<em><b>Sub Elements</b></em>' containment reference list.
27 * The list contents are of type {@link functionalarchitecture.FunctionalElement}.
28 * It is bidirectional and its opposite is '{@link functionalarchitecture.FunctionalElement#getParent <em>Parent</em>}'.
29 * <!-- begin-user-doc -->
30 * <p>
31 * If the meaning of the '<em>Sub Elements</em>' containment reference list isn't clear,
32 * there really should be more of a description here...
33 * </p>
34 * <!-- end-user-doc -->
35 * @return the value of the '<em>Sub Elements</em>' containment reference list.
36 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunction_SubElements()
37 * @see functionalarchitecture.FunctionalElement#getParent
38 * @model opposite="parent" containment="true"
39 * @generated
40 */
41 EList<FunctionalElement> getSubElements();
42
43 /**
44 * Returns the value of the '<em><b>Type</b></em>' attribute.
45 * The literals are from the enumeration {@link functionalarchitecture.FunctionType}.
46 * <!-- begin-user-doc -->
47 * <p>
48 * If the meaning of the '<em>Type</em>' attribute isn't clear,
49 * there really should be more of a description here...
50 * </p>
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Type</em>' attribute.
53 * @see functionalarchitecture.FunctionType
54 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunction_Type()
55 * @model required="true" transient="true" changeable="false" volatile="true" derived="true"
56 * annotation="org.eclipse.viatra.query.querybasedfeature patternFQN='hu.bme.mit.inf.dslreasoner.domains.transima.fam.type'"
57 * @generated
58 */
59 FunctionType getType();
60
61} // Function
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionType.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionType.java
new file mode 100644
index 00000000..59fe3fb2
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionType.java
@@ -0,0 +1,241 @@
1/**
2 */
3package functionalarchitecture;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Function Type</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionType()
17 * @model
18 * @generated
19 */
20public enum FunctionType implements Enumerator {
21 /**
22 * The '<em><b>Root</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #ROOT_VALUE
26 * @generated
27 * @ordered
28 */
29 ROOT(0, "Root", "Root"),
30
31 /**
32 * The '<em><b>Intermediate</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #INTERMEDIATE_VALUE
36 * @generated
37 * @ordered
38 */
39 INTERMEDIATE(1, "Intermediate", "Intermediate"),
40
41 /**
42 * The '<em><b>Leaf</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #LEAF_VALUE
46 * @generated
47 * @ordered
48 */
49 LEAF(2, "Leaf", "Leaf");
50
51 /**
52 * The '<em><b>Root</b></em>' literal value.
53 * <!-- begin-user-doc -->
54 * <p>
55 * If the meaning of '<em><b>Root</b></em>' literal object isn't clear,
56 * there really should be more of a description here...
57 * </p>
58 * <!-- end-user-doc -->
59 * @see #ROOT
60 * @model name="Root"
61 * @generated
62 * @ordered
63 */
64 public static final int ROOT_VALUE = 0;
65
66 /**
67 * The '<em><b>Intermediate</b></em>' literal value.
68 * <!-- begin-user-doc -->
69 * <p>
70 * If the meaning of '<em><b>Intermediate</b></em>' literal object isn't clear,
71 * there really should be more of a description here...
72 * </p>
73 * <!-- end-user-doc -->
74 * @see #INTERMEDIATE
75 * @model name="Intermediate"
76 * @generated
77 * @ordered
78 */
79 public static final int INTERMEDIATE_VALUE = 1;
80
81 /**
82 * The '<em><b>Leaf</b></em>' literal value.
83 * <!-- begin-user-doc -->
84 * <p>
85 * If the meaning of '<em><b>Leaf</b></em>' literal object isn't clear,
86 * there really should be more of a description here...
87 * </p>
88 * <!-- end-user-doc -->
89 * @see #LEAF
90 * @model name="Leaf"
91 * @generated
92 * @ordered
93 */
94 public static final int LEAF_VALUE = 2;
95
96 /**
97 * An array of all the '<em><b>Function Type</b></em>' enumerators.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 private static final FunctionType[] VALUES_ARRAY =
103 new FunctionType[] {
104 ROOT,
105 INTERMEDIATE,
106 LEAF,
107 };
108
109 /**
110 * A public read-only list of all the '<em><b>Function Type</b></em>' enumerators.
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @generated
114 */
115 public static final List<FunctionType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
116
117 /**
118 * Returns the '<em><b>Function Type</b></em>' literal with the specified literal value.
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @param literal the literal.
122 * @return the matching enumerator or <code>null</code>.
123 * @generated
124 */
125 public static FunctionType get(String literal) {
126 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
127 FunctionType result = VALUES_ARRAY[i];
128 if (result.toString().equals(literal)) {
129 return result;
130 }
131 }
132 return null;
133 }
134
135 /**
136 * Returns the '<em><b>Function Type</b></em>' literal with the specified name.
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @param name the name.
140 * @return the matching enumerator or <code>null</code>.
141 * @generated
142 */
143 public static FunctionType getByName(String name) {
144 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
145 FunctionType result = VALUES_ARRAY[i];
146 if (result.getName().equals(name)) {
147 return result;
148 }
149 }
150 return null;
151 }
152
153 /**
154 * Returns the '<em><b>Function Type</b></em>' literal with the specified integer value.
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @param value the integer value.
158 * @return the matching enumerator or <code>null</code>.
159 * @generated
160 */
161 public static FunctionType get(int value) {
162 switch (value) {
163 case ROOT_VALUE: return ROOT;
164 case INTERMEDIATE_VALUE: return INTERMEDIATE;
165 case LEAF_VALUE: return LEAF;
166 }
167 return null;
168 }
169
170 /**
171 * <!-- begin-user-doc -->
172 * <!-- end-user-doc -->
173 * @generated
174 */
175 private final int value;
176
177 /**
178 * <!-- begin-user-doc -->
179 * <!-- end-user-doc -->
180 * @generated
181 */
182 private final String name;
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 private final String literal;
190
191 /**
192 * Only this class can construct instances.
193 * <!-- begin-user-doc -->
194 * <!-- end-user-doc -->
195 * @generated
196 */
197 private FunctionType(int value, String name, String literal) {
198 this.value = value;
199 this.name = name;
200 this.literal = literal;
201 }
202
203 /**
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 public int getValue() {
209 return value;
210 }
211
212 /**
213 * <!-- begin-user-doc -->
214 * <!-- end-user-doc -->
215 * @generated
216 */
217 public String getName() {
218 return name;
219 }
220
221 /**
222 * <!-- begin-user-doc -->
223 * <!-- end-user-doc -->
224 * @generated
225 */
226 public String getLiteral() {
227 return literal;
228 }
229
230 /**
231 * Returns the literal value of the enumerator, which is its string representation.
232 * <!-- begin-user-doc -->
233 * <!-- end-user-doc -->
234 * @generated
235 */
236 @Override
237 public String toString() {
238 return literal;
239 }
240
241} //FunctionType
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalArchitectureModel.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalArchitectureModel.java
new file mode 100644
index 00000000..048a08ef
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalArchitectureModel.java
@@ -0,0 +1,42 @@
1/**
2 */
3package functionalarchitecture;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Functional Architecture Model</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link functionalarchitecture.FunctionalArchitectureModel#getRootElements <em>Root Elements</em>}</li>
19 * </ul>
20 *
21 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalArchitectureModel()
22 * @model
23 * @generated
24 */
25public interface FunctionalArchitectureModel extends EObject {
26 /**
27 * Returns the value of the '<em><b>Root Elements</b></em>' containment reference list.
28 * The list contents are of type {@link functionalarchitecture.FunctionalElement}.
29 * <!-- begin-user-doc -->
30 * <p>
31 * If the meaning of the '<em>Root Elements</em>' containment reference list isn't clear,
32 * there really should be more of a description here...
33 * </p>
34 * <!-- end-user-doc -->
35 * @return the value of the '<em>Root Elements</em>' containment reference list.
36 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalArchitectureModel_RootElements()
37 * @model containment="true"
38 * @generated
39 */
40 EList<FunctionalElement> getRootElements();
41
42} // FunctionalArchitectureModel
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalData.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalData.java
new file mode 100644
index 00000000..39639f99
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalData.java
@@ -0,0 +1,81 @@
1/**
2 */
3package functionalarchitecture;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Functional Data</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link functionalarchitecture.FunctionalData#getTerminator <em>Terminator</em>}</li>
17 * <li>{@link functionalarchitecture.FunctionalData#getInterface <em>Interface</em>}</li>
18 * </ul>
19 *
20 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalData()
21 * @model abstract="true"
22 * @generated
23 */
24public interface FunctionalData extends EObject {
25 /**
26 * Returns the value of the '<em><b>Terminator</b></em>' containment reference.
27 * It is bidirectional and its opposite is '{@link functionalarchitecture.FAMTerminator#getData <em>Data</em>}'.
28 * <!-- begin-user-doc -->
29 * <p>
30 * If the meaning of the '<em>Terminator</em>' containment reference isn't clear,
31 * there really should be more of a description here...
32 * </p>
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>Terminator</em>' containment reference.
35 * @see #setTerminator(FAMTerminator)
36 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalData_Terminator()
37 * @see functionalarchitecture.FAMTerminator#getData
38 * @model opposite="data" containment="true"
39 * @generated
40 */
41 FAMTerminator getTerminator();
42
43 /**
44 * Sets the value of the '{@link functionalarchitecture.FunctionalData#getTerminator <em>Terminator</em>}' containment reference.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @param value the new value of the '<em>Terminator</em>' containment reference.
48 * @see #getTerminator()
49 * @generated
50 */
51 void setTerminator(FAMTerminator value);
52
53 /**
54 * Returns the value of the '<em><b>Interface</b></em>' container reference.
55 * It is bidirectional and its opposite is '{@link functionalarchitecture.FunctionalInterface#getData <em>Data</em>}'.
56 * <!-- begin-user-doc -->
57 * <p>
58 * If the meaning of the '<em>Interface</em>' container reference isn't clear,
59 * there really should be more of a description here...
60 * </p>
61 * <!-- end-user-doc -->
62 * @return the value of the '<em>Interface</em>' container reference.
63 * @see #setInterface(FunctionalInterface)
64 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalData_Interface()
65 * @see functionalarchitecture.FunctionalInterface#getData
66 * @model opposite="data" transient="false"
67 * @generated
68 */
69 FunctionalInterface getInterface();
70
71 /**
72 * Sets the value of the '{@link functionalarchitecture.FunctionalData#getInterface <em>Interface</em>}' container reference.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @param value the new value of the '<em>Interface</em>' container reference.
76 * @see #getInterface()
77 * @generated
78 */
79 void setInterface(FunctionalInterface value);
80
81} // FunctionalData
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalElement.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalElement.java
new file mode 100644
index 00000000..f5a2ff19
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalElement.java
@@ -0,0 +1,109 @@
1/**
2 */
3package functionalarchitecture;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Functional Element</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link functionalarchitecture.FunctionalElement#getInterface <em>Interface</em>}</li>
17 * <li>{@link functionalarchitecture.FunctionalElement#getModel <em>Model</em>}</li>
18 * <li>{@link functionalarchitecture.FunctionalElement#getParent <em>Parent</em>}</li>
19 * </ul>
20 *
21 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalElement()
22 * @model abstract="true"
23 * @generated
24 */
25public interface FunctionalElement extends EObject {
26 /**
27 * Returns the value of the '<em><b>Interface</b></em>' containment reference.
28 * It is bidirectional and its opposite is '{@link functionalarchitecture.FunctionalInterface#getElement <em>Element</em>}'.
29 * <!-- begin-user-doc -->
30 * <p>
31 * If the meaning of the '<em>Interface</em>' containment reference isn't clear,
32 * there really should be more of a description here...
33 * </p>
34 * <!-- end-user-doc -->
35 * @return the value of the '<em>Interface</em>' containment reference.
36 * @see #setInterface(FunctionalInterface)
37 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalElement_Interface()
38 * @see functionalarchitecture.FunctionalInterface#getElement
39 * @model opposite="element" containment="true"
40 * @generated
41 */
42 FunctionalInterface getInterface();
43
44 /**
45 * Sets the value of the '{@link functionalarchitecture.FunctionalElement#getInterface <em>Interface</em>}' containment reference.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @param value the new value of the '<em>Interface</em>' containment reference.
49 * @see #getInterface()
50 * @generated
51 */
52 void setInterface(FunctionalInterface value);
53
54 /**
55 * Returns the value of the '<em><b>Model</b></em>' reference.
56 * <!-- begin-user-doc -->
57 * <p>
58 * If the meaning of the '<em>Model</em>' reference isn't clear,
59 * there really should be more of a description here...
60 * </p>
61 * <!-- end-user-doc -->
62 * @return the value of the '<em>Model</em>' reference.
63 * @see #setModel(FunctionalArchitectureModel)
64 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalElement_Model()
65 * @model required="true" transient="true" volatile="true" derived="true"
66 * annotation="org.eclipse.viatra.query.querybasedfeature patternFQN='hu.bme.mit.inf.dslreasoner.domains.transima.fam.model'"
67 * @generated
68 */
69 FunctionalArchitectureModel getModel();
70
71 /**
72 * Sets the value of the '{@link functionalarchitecture.FunctionalElement#getModel <em>Model</em>}' reference.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @param value the new value of the '<em>Model</em>' reference.
76 * @see #getModel()
77 * @generated
78 */
79 void setModel(FunctionalArchitectureModel value);
80
81 /**
82 * Returns the value of the '<em><b>Parent</b></em>' container reference.
83 * It is bidirectional and its opposite is '{@link functionalarchitecture.Function#getSubElements <em>Sub Elements</em>}'.
84 * <!-- begin-user-doc -->
85 * <p>
86 * If the meaning of the '<em>Parent</em>' container reference isn't clear,
87 * there really should be more of a description here...
88 * </p>
89 * <!-- end-user-doc -->
90 * @return the value of the '<em>Parent</em>' container reference.
91 * @see #setParent(Function)
92 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalElement_Parent()
93 * @see functionalarchitecture.Function#getSubElements
94 * @model opposite="subElements" transient="false"
95 * @generated
96 */
97 Function getParent();
98
99 /**
100 * Sets the value of the '{@link functionalarchitecture.FunctionalElement#getParent <em>Parent</em>}' container reference.
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @param value the new value of the '<em>Parent</em>' container reference.
104 * @see #getParent()
105 * @generated
106 */
107 void setParent(Function value);
108
109} // FunctionalElement
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalInput.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalInput.java
new file mode 100644
index 00000000..47a8c7d4
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalInput.java
@@ -0,0 +1,42 @@
1/**
2 */
3package functionalarchitecture;
4
5import org.eclipse.emf.common.util.EList;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Functional Input</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link functionalarchitecture.FunctionalInput#getIncomingLinks <em>Incoming Links</em>}</li>
17 * </ul>
18 *
19 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalInput()
20 * @model
21 * @generated
22 */
23public interface FunctionalInput extends FunctionalData {
24 /**
25 * Returns the value of the '<em><b>Incoming Links</b></em>' reference list.
26 * The list contents are of type {@link functionalarchitecture.InformationLink}.
27 * It is bidirectional and its opposite is '{@link functionalarchitecture.InformationLink#getTo <em>To</em>}'.
28 * <!-- begin-user-doc -->
29 * <p>
30 * If the meaning of the '<em>Incoming Links</em>' reference list isn't clear,
31 * there really should be more of a description here...
32 * </p>
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>Incoming Links</em>' reference list.
35 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalInput_IncomingLinks()
36 * @see functionalarchitecture.InformationLink#getTo
37 * @model opposite="to"
38 * @generated
39 */
40 EList<InformationLink> getIncomingLinks();
41
42} // FunctionalInput
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalInterface.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalInterface.java
new file mode 100644
index 00000000..e752f903
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalInterface.java
@@ -0,0 +1,73 @@
1/**
2 */
3package functionalarchitecture;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Functional Interface</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link functionalarchitecture.FunctionalInterface#getData <em>Data</em>}</li>
19 * <li>{@link functionalarchitecture.FunctionalInterface#getElement <em>Element</em>}</li>
20 * </ul>
21 *
22 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalInterface()
23 * @model
24 * @generated
25 */
26public interface FunctionalInterface extends EObject {
27 /**
28 * Returns the value of the '<em><b>Data</b></em>' containment reference list.
29 * The list contents are of type {@link functionalarchitecture.FunctionalData}.
30 * It is bidirectional and its opposite is '{@link functionalarchitecture.FunctionalData#getInterface <em>Interface</em>}'.
31 * <!-- begin-user-doc -->
32 * <p>
33 * If the meaning of the '<em>Data</em>' containment reference list isn't clear,
34 * there really should be more of a description here...
35 * </p>
36 * <!-- end-user-doc -->
37 * @return the value of the '<em>Data</em>' containment reference list.
38 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalInterface_Data()
39 * @see functionalarchitecture.FunctionalData#getInterface
40 * @model opposite="interface" containment="true"
41 * @generated
42 */
43 EList<FunctionalData> getData();
44
45 /**
46 * Returns the value of the '<em><b>Element</b></em>' container reference.
47 * It is bidirectional and its opposite is '{@link functionalarchitecture.FunctionalElement#getInterface <em>Interface</em>}'.
48 * <!-- begin-user-doc -->
49 * <p>
50 * If the meaning of the '<em>Element</em>' container reference isn't clear,
51 * there really should be more of a description here...
52 * </p>
53 * <!-- end-user-doc -->
54 * @return the value of the '<em>Element</em>' container reference.
55 * @see #setElement(FunctionalElement)
56 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalInterface_Element()
57 * @see functionalarchitecture.FunctionalElement#getInterface
58 * @model opposite="interface" transient="false"
59 * @generated
60 */
61 FunctionalElement getElement();
62
63 /**
64 * Sets the value of the '{@link functionalarchitecture.FunctionalInterface#getElement <em>Element</em>}' container reference.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @param value the new value of the '<em>Element</em>' container reference.
68 * @see #getElement()
69 * @generated
70 */
71 void setElement(FunctionalElement value);
72
73} // FunctionalInterface
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalOutput.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalOutput.java
new file mode 100644
index 00000000..29f467ef
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalOutput.java
@@ -0,0 +1,42 @@
1/**
2 */
3package functionalarchitecture;
4
5import org.eclipse.emf.common.util.EList;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Functional Output</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link functionalarchitecture.FunctionalOutput#getOutgoingLinks <em>Outgoing Links</em>}</li>
17 * </ul>
18 *
19 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalOutput()
20 * @model
21 * @generated
22 */
23public interface FunctionalOutput extends FunctionalData {
24 /**
25 * Returns the value of the '<em><b>Outgoing Links</b></em>' containment reference list.
26 * The list contents are of type {@link functionalarchitecture.InformationLink}.
27 * It is bidirectional and its opposite is '{@link functionalarchitecture.InformationLink#getFrom <em>From</em>}'.
28 * <!-- begin-user-doc -->
29 * <p>
30 * If the meaning of the '<em>Outgoing Links</em>' containment reference list isn't clear,
31 * there really should be more of a description here...
32 * </p>
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>Outgoing Links</em>' containment reference list.
35 * @see functionalarchitecture.FunctionalarchitecturePackage#getFunctionalOutput_OutgoingLinks()
36 * @see functionalarchitecture.InformationLink#getFrom
37 * @model opposite="from" containment="true"
38 * @generated
39 */
40 EList<InformationLink> getOutgoingLinks();
41
42} // FunctionalOutput
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalarchitectureFactory.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalarchitectureFactory.java
new file mode 100644
index 00000000..a65ae0a7
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalarchitectureFactory.java
@@ -0,0 +1,96 @@
1/**
2 */
3package functionalarchitecture;
4
5import org.eclipse.emf.ecore.EFactory;
6
7/**
8 * <!-- begin-user-doc -->
9 * The <b>Factory</b> for the model.
10 * It provides a create method for each non-abstract class of the model.
11 * <!-- end-user-doc -->
12 * @see functionalarchitecture.FunctionalarchitecturePackage
13 * @generated
14 */
15public interface FunctionalarchitectureFactory extends EFactory {
16 /**
17 * The singleton instance of the factory.
18 * <!-- begin-user-doc -->
19 * <!-- end-user-doc -->
20 * @generated
21 */
22 FunctionalarchitectureFactory eINSTANCE = functionalarchitecture.impl.FunctionalarchitectureFactoryImpl.init();
23
24 /**
25 * Returns a new object of class '<em>Functional Architecture Model</em>'.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return a new object of class '<em>Functional Architecture Model</em>'.
29 * @generated
30 */
31 FunctionalArchitectureModel createFunctionalArchitectureModel();
32
33 /**
34 * Returns a new object of class '<em>Function</em>'.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return a new object of class '<em>Function</em>'.
38 * @generated
39 */
40 Function createFunction();
41
42 /**
43 * Returns a new object of class '<em>FAM Terminator</em>'.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @return a new object of class '<em>FAM Terminator</em>'.
47 * @generated
48 */
49 FAMTerminator createFAMTerminator();
50
51 /**
52 * Returns a new object of class '<em>Information Link</em>'.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return a new object of class '<em>Information Link</em>'.
56 * @generated
57 */
58 InformationLink createInformationLink();
59
60 /**
61 * Returns a new object of class '<em>Functional Interface</em>'.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @return a new object of class '<em>Functional Interface</em>'.
65 * @generated
66 */
67 FunctionalInterface createFunctionalInterface();
68
69 /**
70 * Returns a new object of class '<em>Functional Input</em>'.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @return a new object of class '<em>Functional Input</em>'.
74 * @generated
75 */
76 FunctionalInput createFunctionalInput();
77
78 /**
79 * Returns a new object of class '<em>Functional Output</em>'.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @return a new object of class '<em>Functional Output</em>'.
83 * @generated
84 */
85 FunctionalOutput createFunctionalOutput();
86
87 /**
88 * Returns the package supported by this factory.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @return the package supported by this factory.
92 * @generated
93 */
94 FunctionalarchitecturePackage getFunctionalarchitecturePackage();
95
96} //FunctionalarchitectureFactory
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalarchitecturePackage.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalarchitecturePackage.java
new file mode 100644
index 00000000..ac0d910e
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/FunctionalarchitecturePackage.java
@@ -0,0 +1,1032 @@
1/**
2 */
3package functionalarchitecture;
4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EEnum;
8import org.eclipse.emf.ecore.EPackage;
9import org.eclipse.emf.ecore.EReference;
10
11/**
12 * <!-- begin-user-doc -->
13 * The <b>Package</b> for the model.
14 * It contains accessors for the meta objects to represent
15 * <ul>
16 * <li>each class,</li>
17 * <li>each feature of each class,</li>
18 * <li>each operation of each class,</li>
19 * <li>each enum,</li>
20 * <li>and each data type</li>
21 * </ul>
22 * <!-- end-user-doc -->
23 * @see functionalarchitecture.FunctionalarchitectureFactory
24 * @model kind="package"
25 * annotation="http://www.eclipse.org/emf/2002/Ecore settingDelegates='org.eclipse.viatra.query.querybasedfeature'"
26 * @generated
27 */
28public interface FunctionalarchitecturePackage extends EPackage {
29 /**
30 * The package name.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 String eNAME = "functionalarchitecture";
36
37 /**
38 * The package namespace URI.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @generated
42 */
43 String eNS_URI = "http://www.inf.mit.bme.hu/viatrasolver/example/fam";
44
45 /**
46 * The package namespace name.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @generated
50 */
51 String eNS_PREFIX = "functionalarchitecture";
52
53 /**
54 * The singleton instance of the package.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @generated
58 */
59 FunctionalarchitecturePackage eINSTANCE = functionalarchitecture.impl.FunctionalarchitecturePackageImpl.init();
60
61 /**
62 * The meta object id for the '{@link functionalarchitecture.impl.FunctionalElementImpl <em>Functional Element</em>}' class.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see functionalarchitecture.impl.FunctionalElementImpl
66 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionalElement()
67 * @generated
68 */
69 int FUNCTIONAL_ELEMENT = 0;
70
71 /**
72 * The feature id for the '<em><b>Interface</b></em>' containment reference.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @generated
76 * @ordered
77 */
78 int FUNCTIONAL_ELEMENT__INTERFACE = 0;
79
80 /**
81 * The feature id for the '<em><b>Model</b></em>' reference.
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 * @ordered
86 */
87 int FUNCTIONAL_ELEMENT__MODEL = 1;
88
89 /**
90 * The feature id for the '<em><b>Parent</b></em>' container reference.
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 * @ordered
95 */
96 int FUNCTIONAL_ELEMENT__PARENT = 2;
97
98 /**
99 * The number of structural features of the '<em>Functional Element</em>' class.
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 * @ordered
104 */
105 int FUNCTIONAL_ELEMENT_FEATURE_COUNT = 3;
106
107 /**
108 * The number of operations of the '<em>Functional Element</em>' class.
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 * @ordered
113 */
114 int FUNCTIONAL_ELEMENT_OPERATION_COUNT = 0;
115
116 /**
117 * The meta object id for the '{@link functionalarchitecture.impl.FunctionalArchitectureModelImpl <em>Functional Architecture Model</em>}' class.
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @see functionalarchitecture.impl.FunctionalArchitectureModelImpl
121 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionalArchitectureModel()
122 * @generated
123 */
124 int FUNCTIONAL_ARCHITECTURE_MODEL = 1;
125
126 /**
127 * The feature id for the '<em><b>Root Elements</b></em>' containment reference list.
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 * @ordered
132 */
133 int FUNCTIONAL_ARCHITECTURE_MODEL__ROOT_ELEMENTS = 0;
134
135 /**
136 * The number of structural features of the '<em>Functional Architecture Model</em>' class.
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @generated
140 * @ordered
141 */
142 int FUNCTIONAL_ARCHITECTURE_MODEL_FEATURE_COUNT = 1;
143
144 /**
145 * The number of operations of the '<em>Functional Architecture Model</em>' class.
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @generated
149 * @ordered
150 */
151 int FUNCTIONAL_ARCHITECTURE_MODEL_OPERATION_COUNT = 0;
152
153 /**
154 * The meta object id for the '{@link functionalarchitecture.impl.FunctionImpl <em>Function</em>}' class.
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @see functionalarchitecture.impl.FunctionImpl
158 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunction()
159 * @generated
160 */
161 int FUNCTION = 2;
162
163 /**
164 * The feature id for the '<em><b>Interface</b></em>' containment reference.
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @generated
168 * @ordered
169 */
170 int FUNCTION__INTERFACE = FUNCTIONAL_ELEMENT__INTERFACE;
171
172 /**
173 * The feature id for the '<em><b>Model</b></em>' reference.
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 * @ordered
178 */
179 int FUNCTION__MODEL = FUNCTIONAL_ELEMENT__MODEL;
180
181 /**
182 * The feature id for the '<em><b>Parent</b></em>' container reference.
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 * @ordered
187 */
188 int FUNCTION__PARENT = FUNCTIONAL_ELEMENT__PARENT;
189
190 /**
191 * The feature id for the '<em><b>Sub Elements</b></em>' containment reference list.
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 * @ordered
196 */
197 int FUNCTION__SUB_ELEMENTS = FUNCTIONAL_ELEMENT_FEATURE_COUNT + 0;
198
199 /**
200 * The feature id for the '<em><b>Type</b></em>' attribute.
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 * @ordered
205 */
206 int FUNCTION__TYPE = FUNCTIONAL_ELEMENT_FEATURE_COUNT + 1;
207
208 /**
209 * The number of structural features of the '<em>Function</em>' class.
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 * @ordered
214 */
215 int FUNCTION_FEATURE_COUNT = FUNCTIONAL_ELEMENT_FEATURE_COUNT + 2;
216
217 /**
218 * The number of operations of the '<em>Function</em>' class.
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 * @ordered
223 */
224 int FUNCTION_OPERATION_COUNT = FUNCTIONAL_ELEMENT_OPERATION_COUNT + 0;
225
226 /**
227 * The meta object id for the '{@link functionalarchitecture.impl.FAMTerminatorImpl <em>FAM Terminator</em>}' class.
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @see functionalarchitecture.impl.FAMTerminatorImpl
231 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFAMTerminator()
232 * @generated
233 */
234 int FAM_TERMINATOR = 3;
235
236 /**
237 * The feature id for the '<em><b>Data</b></em>' container reference.
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @generated
241 * @ordered
242 */
243 int FAM_TERMINATOR__DATA = 0;
244
245 /**
246 * The number of structural features of the '<em>FAM Terminator</em>' class.
247 * <!-- begin-user-doc -->
248 * <!-- end-user-doc -->
249 * @generated
250 * @ordered
251 */
252 int FAM_TERMINATOR_FEATURE_COUNT = 1;
253
254 /**
255 * The number of operations of the '<em>FAM Terminator</em>' class.
256 * <!-- begin-user-doc -->
257 * <!-- end-user-doc -->
258 * @generated
259 * @ordered
260 */
261 int FAM_TERMINATOR_OPERATION_COUNT = 0;
262
263 /**
264 * The meta object id for the '{@link functionalarchitecture.impl.InformationLinkImpl <em>Information Link</em>}' class.
265 * <!-- begin-user-doc -->
266 * <!-- end-user-doc -->
267 * @see functionalarchitecture.impl.InformationLinkImpl
268 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getInformationLink()
269 * @generated
270 */
271 int INFORMATION_LINK = 4;
272
273 /**
274 * The feature id for the '<em><b>From</b></em>' container reference.
275 * <!-- begin-user-doc -->
276 * <!-- end-user-doc -->
277 * @generated
278 * @ordered
279 */
280 int INFORMATION_LINK__FROM = 0;
281
282 /**
283 * The feature id for the '<em><b>To</b></em>' reference.
284 * <!-- begin-user-doc -->
285 * <!-- end-user-doc -->
286 * @generated
287 * @ordered
288 */
289 int INFORMATION_LINK__TO = 1;
290
291 /**
292 * The number of structural features of the '<em>Information Link</em>' class.
293 * <!-- begin-user-doc -->
294 * <!-- end-user-doc -->
295 * @generated
296 * @ordered
297 */
298 int INFORMATION_LINK_FEATURE_COUNT = 2;
299
300 /**
301 * The number of operations of the '<em>Information Link</em>' class.
302 * <!-- begin-user-doc -->
303 * <!-- end-user-doc -->
304 * @generated
305 * @ordered
306 */
307 int INFORMATION_LINK_OPERATION_COUNT = 0;
308
309 /**
310 * The meta object id for the '{@link functionalarchitecture.impl.FunctionalInterfaceImpl <em>Functional Interface</em>}' class.
311 * <!-- begin-user-doc -->
312 * <!-- end-user-doc -->
313 * @see functionalarchitecture.impl.FunctionalInterfaceImpl
314 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionalInterface()
315 * @generated
316 */
317 int FUNCTIONAL_INTERFACE = 5;
318
319 /**
320 * The feature id for the '<em><b>Data</b></em>' containment reference list.
321 * <!-- begin-user-doc -->
322 * <!-- end-user-doc -->
323 * @generated
324 * @ordered
325 */
326 int FUNCTIONAL_INTERFACE__DATA = 0;
327
328 /**
329 * The feature id for the '<em><b>Element</b></em>' container reference.
330 * <!-- begin-user-doc -->
331 * <!-- end-user-doc -->
332 * @generated
333 * @ordered
334 */
335 int FUNCTIONAL_INTERFACE__ELEMENT = 1;
336
337 /**
338 * The number of structural features of the '<em>Functional Interface</em>' class.
339 * <!-- begin-user-doc -->
340 * <!-- end-user-doc -->
341 * @generated
342 * @ordered
343 */
344 int FUNCTIONAL_INTERFACE_FEATURE_COUNT = 2;
345
346 /**
347 * The number of operations of the '<em>Functional Interface</em>' class.
348 * <!-- begin-user-doc -->
349 * <!-- end-user-doc -->
350 * @generated
351 * @ordered
352 */
353 int FUNCTIONAL_INTERFACE_OPERATION_COUNT = 0;
354
355 /**
356 * The meta object id for the '{@link functionalarchitecture.impl.FunctionalDataImpl <em>Functional Data</em>}' class.
357 * <!-- begin-user-doc -->
358 * <!-- end-user-doc -->
359 * @see functionalarchitecture.impl.FunctionalDataImpl
360 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionalData()
361 * @generated
362 */
363 int FUNCTIONAL_DATA = 8;
364
365 /**
366 * The feature id for the '<em><b>Terminator</b></em>' containment reference.
367 * <!-- begin-user-doc -->
368 * <!-- end-user-doc -->
369 * @generated
370 * @ordered
371 */
372 int FUNCTIONAL_DATA__TERMINATOR = 0;
373
374 /**
375 * The feature id for the '<em><b>Interface</b></em>' container reference.
376 * <!-- begin-user-doc -->
377 * <!-- end-user-doc -->
378 * @generated
379 * @ordered
380 */
381 int FUNCTIONAL_DATA__INTERFACE = 1;
382
383 /**
384 * The number of structural features of the '<em>Functional Data</em>' class.
385 * <!-- begin-user-doc -->
386 * <!-- end-user-doc -->
387 * @generated
388 * @ordered
389 */
390 int FUNCTIONAL_DATA_FEATURE_COUNT = 2;
391
392 /**
393 * The number of operations of the '<em>Functional Data</em>' class.
394 * <!-- begin-user-doc -->
395 * <!-- end-user-doc -->
396 * @generated
397 * @ordered
398 */
399 int FUNCTIONAL_DATA_OPERATION_COUNT = 0;
400
401 /**
402 * The meta object id for the '{@link functionalarchitecture.impl.FunctionalInputImpl <em>Functional Input</em>}' class.
403 * <!-- begin-user-doc -->
404 * <!-- end-user-doc -->
405 * @see functionalarchitecture.impl.FunctionalInputImpl
406 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionalInput()
407 * @generated
408 */
409 int FUNCTIONAL_INPUT = 6;
410
411 /**
412 * The feature id for the '<em><b>Terminator</b></em>' containment reference.
413 * <!-- begin-user-doc -->
414 * <!-- end-user-doc -->
415 * @generated
416 * @ordered
417 */
418 int FUNCTIONAL_INPUT__TERMINATOR = FUNCTIONAL_DATA__TERMINATOR;
419
420 /**
421 * The feature id for the '<em><b>Interface</b></em>' container reference.
422 * <!-- begin-user-doc -->
423 * <!-- end-user-doc -->
424 * @generated
425 * @ordered
426 */
427 int FUNCTIONAL_INPUT__INTERFACE = FUNCTIONAL_DATA__INTERFACE;
428
429 /**
430 * The feature id for the '<em><b>Incoming Links</b></em>' reference list.
431 * <!-- begin-user-doc -->
432 * <!-- end-user-doc -->
433 * @generated
434 * @ordered
435 */
436 int FUNCTIONAL_INPUT__INCOMING_LINKS = FUNCTIONAL_DATA_FEATURE_COUNT + 0;
437
438 /**
439 * The number of structural features of the '<em>Functional Input</em>' class.
440 * <!-- begin-user-doc -->
441 * <!-- end-user-doc -->
442 * @generated
443 * @ordered
444 */
445 int FUNCTIONAL_INPUT_FEATURE_COUNT = FUNCTIONAL_DATA_FEATURE_COUNT + 1;
446
447 /**
448 * The number of operations of the '<em>Functional Input</em>' class.
449 * <!-- begin-user-doc -->
450 * <!-- end-user-doc -->
451 * @generated
452 * @ordered
453 */
454 int FUNCTIONAL_INPUT_OPERATION_COUNT = FUNCTIONAL_DATA_OPERATION_COUNT + 0;
455
456 /**
457 * The meta object id for the '{@link functionalarchitecture.impl.FunctionalOutputImpl <em>Functional Output</em>}' class.
458 * <!-- begin-user-doc -->
459 * <!-- end-user-doc -->
460 * @see functionalarchitecture.impl.FunctionalOutputImpl
461 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionalOutput()
462 * @generated
463 */
464 int FUNCTIONAL_OUTPUT = 7;
465
466 /**
467 * The feature id for the '<em><b>Terminator</b></em>' containment reference.
468 * <!-- begin-user-doc -->
469 * <!-- end-user-doc -->
470 * @generated
471 * @ordered
472 */
473 int FUNCTIONAL_OUTPUT__TERMINATOR = FUNCTIONAL_DATA__TERMINATOR;
474
475 /**
476 * The feature id for the '<em><b>Interface</b></em>' container reference.
477 * <!-- begin-user-doc -->
478 * <!-- end-user-doc -->
479 * @generated
480 * @ordered
481 */
482 int FUNCTIONAL_OUTPUT__INTERFACE = FUNCTIONAL_DATA__INTERFACE;
483
484 /**
485 * The feature id for the '<em><b>Outgoing Links</b></em>' containment reference list.
486 * <!-- begin-user-doc -->
487 * <!-- end-user-doc -->
488 * @generated
489 * @ordered
490 */
491 int FUNCTIONAL_OUTPUT__OUTGOING_LINKS = FUNCTIONAL_DATA_FEATURE_COUNT + 0;
492
493 /**
494 * The number of structural features of the '<em>Functional Output</em>' class.
495 * <!-- begin-user-doc -->
496 * <!-- end-user-doc -->
497 * @generated
498 * @ordered
499 */
500 int FUNCTIONAL_OUTPUT_FEATURE_COUNT = FUNCTIONAL_DATA_FEATURE_COUNT + 1;
501
502 /**
503 * The number of operations of the '<em>Functional Output</em>' class.
504 * <!-- begin-user-doc -->
505 * <!-- end-user-doc -->
506 * @generated
507 * @ordered
508 */
509 int FUNCTIONAL_OUTPUT_OPERATION_COUNT = FUNCTIONAL_DATA_OPERATION_COUNT + 0;
510
511 /**
512 * The meta object id for the '{@link functionalarchitecture.FunctionType <em>Function Type</em>}' enum.
513 * <!-- begin-user-doc -->
514 * <!-- end-user-doc -->
515 * @see functionalarchitecture.FunctionType
516 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionType()
517 * @generated
518 */
519 int FUNCTION_TYPE = 9;
520
521
522 /**
523 * Returns the meta object for class '{@link functionalarchitecture.FunctionalElement <em>Functional Element</em>}'.
524 * <!-- begin-user-doc -->
525 * <!-- end-user-doc -->
526 * @return the meta object for class '<em>Functional Element</em>'.
527 * @see functionalarchitecture.FunctionalElement
528 * @generated
529 */
530 EClass getFunctionalElement();
531
532 /**
533 * Returns the meta object for the containment reference '{@link functionalarchitecture.FunctionalElement#getInterface <em>Interface</em>}'.
534 * <!-- begin-user-doc -->
535 * <!-- end-user-doc -->
536 * @return the meta object for the containment reference '<em>Interface</em>'.
537 * @see functionalarchitecture.FunctionalElement#getInterface()
538 * @see #getFunctionalElement()
539 * @generated
540 */
541 EReference getFunctionalElement_Interface();
542
543 /**
544 * Returns the meta object for the reference '{@link functionalarchitecture.FunctionalElement#getModel <em>Model</em>}'.
545 * <!-- begin-user-doc -->
546 * <!-- end-user-doc -->
547 * @return the meta object for the reference '<em>Model</em>'.
548 * @see functionalarchitecture.FunctionalElement#getModel()
549 * @see #getFunctionalElement()
550 * @generated
551 */
552 EReference getFunctionalElement_Model();
553
554 /**
555 * Returns the meta object for the container reference '{@link functionalarchitecture.FunctionalElement#getParent <em>Parent</em>}'.
556 * <!-- begin-user-doc -->
557 * <!-- end-user-doc -->
558 * @return the meta object for the container reference '<em>Parent</em>'.
559 * @see functionalarchitecture.FunctionalElement#getParent()
560 * @see #getFunctionalElement()
561 * @generated
562 */
563 EReference getFunctionalElement_Parent();
564
565 /**
566 * Returns the meta object for class '{@link functionalarchitecture.FunctionalArchitectureModel <em>Functional Architecture Model</em>}'.
567 * <!-- begin-user-doc -->
568 * <!-- end-user-doc -->
569 * @return the meta object for class '<em>Functional Architecture Model</em>'.
570 * @see functionalarchitecture.FunctionalArchitectureModel
571 * @generated
572 */
573 EClass getFunctionalArchitectureModel();
574
575 /**
576 * Returns the meta object for the containment reference list '{@link functionalarchitecture.FunctionalArchitectureModel#getRootElements <em>Root Elements</em>}'.
577 * <!-- begin-user-doc -->
578 * <!-- end-user-doc -->
579 * @return the meta object for the containment reference list '<em>Root Elements</em>'.
580 * @see functionalarchitecture.FunctionalArchitectureModel#getRootElements()
581 * @see #getFunctionalArchitectureModel()
582 * @generated
583 */
584 EReference getFunctionalArchitectureModel_RootElements();
585
586 /**
587 * Returns the meta object for class '{@link functionalarchitecture.Function <em>Function</em>}'.
588 * <!-- begin-user-doc -->
589 * <!-- end-user-doc -->
590 * @return the meta object for class '<em>Function</em>'.
591 * @see functionalarchitecture.Function
592 * @generated
593 */
594 EClass getFunction();
595
596 /**
597 * Returns the meta object for the containment reference list '{@link functionalarchitecture.Function#getSubElements <em>Sub Elements</em>}'.
598 * <!-- begin-user-doc -->
599 * <!-- end-user-doc -->
600 * @return the meta object for the containment reference list '<em>Sub Elements</em>'.
601 * @see functionalarchitecture.Function#getSubElements()
602 * @see #getFunction()
603 * @generated
604 */
605 EReference getFunction_SubElements();
606
607 /**
608 * Returns the meta object for the attribute '{@link functionalarchitecture.Function#getType <em>Type</em>}'.
609 * <!-- begin-user-doc -->
610 * <!-- end-user-doc -->
611 * @return the meta object for the attribute '<em>Type</em>'.
612 * @see functionalarchitecture.Function#getType()
613 * @see #getFunction()
614 * @generated
615 */
616 EAttribute getFunction_Type();
617
618 /**
619 * Returns the meta object for class '{@link functionalarchitecture.FAMTerminator <em>FAM Terminator</em>}'.
620 * <!-- begin-user-doc -->
621 * <!-- end-user-doc -->
622 * @return the meta object for class '<em>FAM Terminator</em>'.
623 * @see functionalarchitecture.FAMTerminator
624 * @generated
625 */
626 EClass getFAMTerminator();
627
628 /**
629 * Returns the meta object for the container reference '{@link functionalarchitecture.FAMTerminator#getData <em>Data</em>}'.
630 * <!-- begin-user-doc -->
631 * <!-- end-user-doc -->
632 * @return the meta object for the container reference '<em>Data</em>'.
633 * @see functionalarchitecture.FAMTerminator#getData()
634 * @see #getFAMTerminator()
635 * @generated
636 */
637 EReference getFAMTerminator_Data();
638
639 /**
640 * Returns the meta object for class '{@link functionalarchitecture.InformationLink <em>Information Link</em>}'.
641 * <!-- begin-user-doc -->
642 * <!-- end-user-doc -->
643 * @return the meta object for class '<em>Information Link</em>'.
644 * @see functionalarchitecture.InformationLink
645 * @generated
646 */
647 EClass getInformationLink();
648
649 /**
650 * Returns the meta object for the container reference '{@link functionalarchitecture.InformationLink#getFrom <em>From</em>}'.
651 * <!-- begin-user-doc -->
652 * <!-- end-user-doc -->
653 * @return the meta object for the container reference '<em>From</em>'.
654 * @see functionalarchitecture.InformationLink#getFrom()
655 * @see #getInformationLink()
656 * @generated
657 */
658 EReference getInformationLink_From();
659
660 /**
661 * Returns the meta object for the reference '{@link functionalarchitecture.InformationLink#getTo <em>To</em>}'.
662 * <!-- begin-user-doc -->
663 * <!-- end-user-doc -->
664 * @return the meta object for the reference '<em>To</em>'.
665 * @see functionalarchitecture.InformationLink#getTo()
666 * @see #getInformationLink()
667 * @generated
668 */
669 EReference getInformationLink_To();
670
671 /**
672 * Returns the meta object for class '{@link functionalarchitecture.FunctionalInterface <em>Functional Interface</em>}'.
673 * <!-- begin-user-doc -->
674 * <!-- end-user-doc -->
675 * @return the meta object for class '<em>Functional Interface</em>'.
676 * @see functionalarchitecture.FunctionalInterface
677 * @generated
678 */
679 EClass getFunctionalInterface();
680
681 /**
682 * Returns the meta object for the containment reference list '{@link functionalarchitecture.FunctionalInterface#getData <em>Data</em>}'.
683 * <!-- begin-user-doc -->
684 * <!-- end-user-doc -->
685 * @return the meta object for the containment reference list '<em>Data</em>'.
686 * @see functionalarchitecture.FunctionalInterface#getData()
687 * @see #getFunctionalInterface()
688 * @generated
689 */
690 EReference getFunctionalInterface_Data();
691
692 /**
693 * Returns the meta object for the container reference '{@link functionalarchitecture.FunctionalInterface#getElement <em>Element</em>}'.
694 * <!-- begin-user-doc -->
695 * <!-- end-user-doc -->
696 * @return the meta object for the container reference '<em>Element</em>'.
697 * @see functionalarchitecture.FunctionalInterface#getElement()
698 * @see #getFunctionalInterface()
699 * @generated
700 */
701 EReference getFunctionalInterface_Element();
702
703 /**
704 * Returns the meta object for class '{@link functionalarchitecture.FunctionalInput <em>Functional Input</em>}'.
705 * <!-- begin-user-doc -->
706 * <!-- end-user-doc -->
707 * @return the meta object for class '<em>Functional Input</em>'.
708 * @see functionalarchitecture.FunctionalInput
709 * @generated
710 */
711 EClass getFunctionalInput();
712
713 /**
714 * Returns the meta object for the reference list '{@link functionalarchitecture.FunctionalInput#getIncomingLinks <em>Incoming Links</em>}'.
715 * <!-- begin-user-doc -->
716 * <!-- end-user-doc -->
717 * @return the meta object for the reference list '<em>Incoming Links</em>'.
718 * @see functionalarchitecture.FunctionalInput#getIncomingLinks()
719 * @see #getFunctionalInput()
720 * @generated
721 */
722 EReference getFunctionalInput_IncomingLinks();
723
724 /**
725 * Returns the meta object for class '{@link functionalarchitecture.FunctionalOutput <em>Functional Output</em>}'.
726 * <!-- begin-user-doc -->
727 * <!-- end-user-doc -->
728 * @return the meta object for class '<em>Functional Output</em>'.
729 * @see functionalarchitecture.FunctionalOutput
730 * @generated
731 */
732 EClass getFunctionalOutput();
733
734 /**
735 * Returns the meta object for the containment reference list '{@link functionalarchitecture.FunctionalOutput#getOutgoingLinks <em>Outgoing Links</em>}'.
736 * <!-- begin-user-doc -->
737 * <!-- end-user-doc -->
738 * @return the meta object for the containment reference list '<em>Outgoing Links</em>'.
739 * @see functionalarchitecture.FunctionalOutput#getOutgoingLinks()
740 * @see #getFunctionalOutput()
741 * @generated
742 */
743 EReference getFunctionalOutput_OutgoingLinks();
744
745 /**
746 * Returns the meta object for class '{@link functionalarchitecture.FunctionalData <em>Functional Data</em>}'.
747 * <!-- begin-user-doc -->
748 * <!-- end-user-doc -->
749 * @return the meta object for class '<em>Functional Data</em>'.
750 * @see functionalarchitecture.FunctionalData
751 * @generated
752 */
753 EClass getFunctionalData();
754
755 /**
756 * Returns the meta object for the containment reference '{@link functionalarchitecture.FunctionalData#getTerminator <em>Terminator</em>}'.
757 * <!-- begin-user-doc -->
758 * <!-- end-user-doc -->
759 * @return the meta object for the containment reference '<em>Terminator</em>'.
760 * @see functionalarchitecture.FunctionalData#getTerminator()
761 * @see #getFunctionalData()
762 * @generated
763 */
764 EReference getFunctionalData_Terminator();
765
766 /**
767 * Returns the meta object for the container reference '{@link functionalarchitecture.FunctionalData#getInterface <em>Interface</em>}'.
768 * <!-- begin-user-doc -->
769 * <!-- end-user-doc -->
770 * @return the meta object for the container reference '<em>Interface</em>'.
771 * @see functionalarchitecture.FunctionalData#getInterface()
772 * @see #getFunctionalData()
773 * @generated
774 */
775 EReference getFunctionalData_Interface();
776
777 /**
778 * Returns the meta object for enum '{@link functionalarchitecture.FunctionType <em>Function Type</em>}'.
779 * <!-- begin-user-doc -->
780 * <!-- end-user-doc -->
781 * @return the meta object for enum '<em>Function Type</em>'.
782 * @see functionalarchitecture.FunctionType
783 * @generated
784 */
785 EEnum getFunctionType();
786
787 /**
788 * Returns the factory that creates the instances of the model.
789 * <!-- begin-user-doc -->
790 * <!-- end-user-doc -->
791 * @return the factory that creates the instances of the model.
792 * @generated
793 */
794 FunctionalarchitectureFactory getFunctionalarchitectureFactory();
795
796 /**
797 * <!-- begin-user-doc -->
798 * Defines literals for the meta objects that represent
799 * <ul>
800 * <li>each class,</li>
801 * <li>each feature of each class,</li>
802 * <li>each operation of each class,</li>
803 * <li>each enum,</li>
804 * <li>and each data type</li>
805 * </ul>
806 * <!-- end-user-doc -->
807 * @generated
808 */
809 interface Literals {
810 /**
811 * The meta object literal for the '{@link functionalarchitecture.impl.FunctionalElementImpl <em>Functional Element</em>}' class.
812 * <!-- begin-user-doc -->
813 * <!-- end-user-doc -->
814 * @see functionalarchitecture.impl.FunctionalElementImpl
815 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionalElement()
816 * @generated
817 */
818 EClass FUNCTIONAL_ELEMENT = eINSTANCE.getFunctionalElement();
819
820 /**
821 * The meta object literal for the '<em><b>Interface</b></em>' containment reference feature.
822 * <!-- begin-user-doc -->
823 * <!-- end-user-doc -->
824 * @generated
825 */
826 EReference FUNCTIONAL_ELEMENT__INTERFACE = eINSTANCE.getFunctionalElement_Interface();
827
828 /**
829 * The meta object literal for the '<em><b>Model</b></em>' reference feature.
830 * <!-- begin-user-doc -->
831 * <!-- end-user-doc -->
832 * @generated
833 */
834 EReference FUNCTIONAL_ELEMENT__MODEL = eINSTANCE.getFunctionalElement_Model();
835
836 /**
837 * The meta object literal for the '<em><b>Parent</b></em>' container reference feature.
838 * <!-- begin-user-doc -->
839 * <!-- end-user-doc -->
840 * @generated
841 */
842 EReference FUNCTIONAL_ELEMENT__PARENT = eINSTANCE.getFunctionalElement_Parent();
843
844 /**
845 * The meta object literal for the '{@link functionalarchitecture.impl.FunctionalArchitectureModelImpl <em>Functional Architecture Model</em>}' class.
846 * <!-- begin-user-doc -->
847 * <!-- end-user-doc -->
848 * @see functionalarchitecture.impl.FunctionalArchitectureModelImpl
849 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionalArchitectureModel()
850 * @generated
851 */
852 EClass FUNCTIONAL_ARCHITECTURE_MODEL = eINSTANCE.getFunctionalArchitectureModel();
853
854 /**
855 * The meta object literal for the '<em><b>Root Elements</b></em>' containment reference list feature.
856 * <!-- begin-user-doc -->
857 * <!-- end-user-doc -->
858 * @generated
859 */
860 EReference FUNCTIONAL_ARCHITECTURE_MODEL__ROOT_ELEMENTS = eINSTANCE.getFunctionalArchitectureModel_RootElements();
861
862 /**
863 * The meta object literal for the '{@link functionalarchitecture.impl.FunctionImpl <em>Function</em>}' class.
864 * <!-- begin-user-doc -->
865 * <!-- end-user-doc -->
866 * @see functionalarchitecture.impl.FunctionImpl
867 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunction()
868 * @generated
869 */
870 EClass FUNCTION = eINSTANCE.getFunction();
871
872 /**
873 * The meta object literal for the '<em><b>Sub Elements</b></em>' containment reference list feature.
874 * <!-- begin-user-doc -->
875 * <!-- end-user-doc -->
876 * @generated
877 */
878 EReference FUNCTION__SUB_ELEMENTS = eINSTANCE.getFunction_SubElements();
879
880 /**
881 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
882 * <!-- begin-user-doc -->
883 * <!-- end-user-doc -->
884 * @generated
885 */
886 EAttribute FUNCTION__TYPE = eINSTANCE.getFunction_Type();
887
888 /**
889 * The meta object literal for the '{@link functionalarchitecture.impl.FAMTerminatorImpl <em>FAM Terminator</em>}' class.
890 * <!-- begin-user-doc -->
891 * <!-- end-user-doc -->
892 * @see functionalarchitecture.impl.FAMTerminatorImpl
893 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFAMTerminator()
894 * @generated
895 */
896 EClass FAM_TERMINATOR = eINSTANCE.getFAMTerminator();
897
898 /**
899 * The meta object literal for the '<em><b>Data</b></em>' container reference feature.
900 * <!-- begin-user-doc -->
901 * <!-- end-user-doc -->
902 * @generated
903 */
904 EReference FAM_TERMINATOR__DATA = eINSTANCE.getFAMTerminator_Data();
905
906 /**
907 * The meta object literal for the '{@link functionalarchitecture.impl.InformationLinkImpl <em>Information Link</em>}' class.
908 * <!-- begin-user-doc -->
909 * <!-- end-user-doc -->
910 * @see functionalarchitecture.impl.InformationLinkImpl
911 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getInformationLink()
912 * @generated
913 */
914 EClass INFORMATION_LINK = eINSTANCE.getInformationLink();
915
916 /**
917 * The meta object literal for the '<em><b>From</b></em>' container reference feature.
918 * <!-- begin-user-doc -->
919 * <!-- end-user-doc -->
920 * @generated
921 */
922 EReference INFORMATION_LINK__FROM = eINSTANCE.getInformationLink_From();
923
924 /**
925 * The meta object literal for the '<em><b>To</b></em>' reference feature.
926 * <!-- begin-user-doc -->
927 * <!-- end-user-doc -->
928 * @generated
929 */
930 EReference INFORMATION_LINK__TO = eINSTANCE.getInformationLink_To();
931
932 /**
933 * The meta object literal for the '{@link functionalarchitecture.impl.FunctionalInterfaceImpl <em>Functional Interface</em>}' class.
934 * <!-- begin-user-doc -->
935 * <!-- end-user-doc -->
936 * @see functionalarchitecture.impl.FunctionalInterfaceImpl
937 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionalInterface()
938 * @generated
939 */
940 EClass FUNCTIONAL_INTERFACE = eINSTANCE.getFunctionalInterface();
941
942 /**
943 * The meta object literal for the '<em><b>Data</b></em>' containment reference list feature.
944 * <!-- begin-user-doc -->
945 * <!-- end-user-doc -->
946 * @generated
947 */
948 EReference FUNCTIONAL_INTERFACE__DATA = eINSTANCE.getFunctionalInterface_Data();
949
950 /**
951 * The meta object literal for the '<em><b>Element</b></em>' container reference feature.
952 * <!-- begin-user-doc -->
953 * <!-- end-user-doc -->
954 * @generated
955 */
956 EReference FUNCTIONAL_INTERFACE__ELEMENT = eINSTANCE.getFunctionalInterface_Element();
957
958 /**
959 * The meta object literal for the '{@link functionalarchitecture.impl.FunctionalInputImpl <em>Functional Input</em>}' class.
960 * <!-- begin-user-doc -->
961 * <!-- end-user-doc -->
962 * @see functionalarchitecture.impl.FunctionalInputImpl
963 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionalInput()
964 * @generated
965 */
966 EClass FUNCTIONAL_INPUT = eINSTANCE.getFunctionalInput();
967
968 /**
969 * The meta object literal for the '<em><b>Incoming Links</b></em>' reference list feature.
970 * <!-- begin-user-doc -->
971 * <!-- end-user-doc -->
972 * @generated
973 */
974 EReference FUNCTIONAL_INPUT__INCOMING_LINKS = eINSTANCE.getFunctionalInput_IncomingLinks();
975
976 /**
977 * The meta object literal for the '{@link functionalarchitecture.impl.FunctionalOutputImpl <em>Functional Output</em>}' class.
978 * <!-- begin-user-doc -->
979 * <!-- end-user-doc -->
980 * @see functionalarchitecture.impl.FunctionalOutputImpl
981 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionalOutput()
982 * @generated
983 */
984 EClass FUNCTIONAL_OUTPUT = eINSTANCE.getFunctionalOutput();
985
986 /**
987 * The meta object literal for the '<em><b>Outgoing Links</b></em>' containment reference list feature.
988 * <!-- begin-user-doc -->
989 * <!-- end-user-doc -->
990 * @generated
991 */
992 EReference FUNCTIONAL_OUTPUT__OUTGOING_LINKS = eINSTANCE.getFunctionalOutput_OutgoingLinks();
993
994 /**
995 * The meta object literal for the '{@link functionalarchitecture.impl.FunctionalDataImpl <em>Functional Data</em>}' class.
996 * <!-- begin-user-doc -->
997 * <!-- end-user-doc -->
998 * @see functionalarchitecture.impl.FunctionalDataImpl
999 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionalData()
1000 * @generated
1001 */
1002 EClass FUNCTIONAL_DATA = eINSTANCE.getFunctionalData();
1003
1004 /**
1005 * The meta object literal for the '<em><b>Terminator</b></em>' containment reference feature.
1006 * <!-- begin-user-doc -->
1007 * <!-- end-user-doc -->
1008 * @generated
1009 */
1010 EReference FUNCTIONAL_DATA__TERMINATOR = eINSTANCE.getFunctionalData_Terminator();
1011
1012 /**
1013 * The meta object literal for the '<em><b>Interface</b></em>' container reference feature.
1014 * <!-- begin-user-doc -->
1015 * <!-- end-user-doc -->
1016 * @generated
1017 */
1018 EReference FUNCTIONAL_DATA__INTERFACE = eINSTANCE.getFunctionalData_Interface();
1019
1020 /**
1021 * The meta object literal for the '{@link functionalarchitecture.FunctionType <em>Function Type</em>}' enum.
1022 * <!-- begin-user-doc -->
1023 * <!-- end-user-doc -->
1024 * @see functionalarchitecture.FunctionType
1025 * @see functionalarchitecture.impl.FunctionalarchitecturePackageImpl#getFunctionType()
1026 * @generated
1027 */
1028 EEnum FUNCTION_TYPE = eINSTANCE.getFunctionType();
1029
1030 }
1031
1032} //FunctionalarchitecturePackage
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/InformationLink.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/InformationLink.java
new file mode 100644
index 00000000..64cd9df4
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/InformationLink.java
@@ -0,0 +1,81 @@
1/**
2 */
3package functionalarchitecture;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Information Link</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link functionalarchitecture.InformationLink#getFrom <em>From</em>}</li>
17 * <li>{@link functionalarchitecture.InformationLink#getTo <em>To</em>}</li>
18 * </ul>
19 *
20 * @see functionalarchitecture.FunctionalarchitecturePackage#getInformationLink()
21 * @model
22 * @generated
23 */
24public interface InformationLink extends EObject {
25 /**
26 * Returns the value of the '<em><b>From</b></em>' container reference.
27 * It is bidirectional and its opposite is '{@link functionalarchitecture.FunctionalOutput#getOutgoingLinks <em>Outgoing Links</em>}'.
28 * <!-- begin-user-doc -->
29 * <p>
30 * If the meaning of the '<em>From</em>' container reference isn't clear,
31 * there really should be more of a description here...
32 * </p>
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>From</em>' container reference.
35 * @see #setFrom(FunctionalOutput)
36 * @see functionalarchitecture.FunctionalarchitecturePackage#getInformationLink_From()
37 * @see functionalarchitecture.FunctionalOutput#getOutgoingLinks
38 * @model opposite="outgoingLinks" transient="false"
39 * @generated
40 */
41 FunctionalOutput getFrom();
42
43 /**
44 * Sets the value of the '{@link functionalarchitecture.InformationLink#getFrom <em>From</em>}' container reference.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @param value the new value of the '<em>From</em>' container reference.
48 * @see #getFrom()
49 * @generated
50 */
51 void setFrom(FunctionalOutput value);
52
53 /**
54 * Returns the value of the '<em><b>To</b></em>' reference.
55 * It is bidirectional and its opposite is '{@link functionalarchitecture.FunctionalInput#getIncomingLinks <em>Incoming Links</em>}'.
56 * <!-- begin-user-doc -->
57 * <p>
58 * If the meaning of the '<em>To</em>' reference isn't clear,
59 * there really should be more of a description here...
60 * </p>
61 * <!-- end-user-doc -->
62 * @return the value of the '<em>To</em>' reference.
63 * @see #setTo(FunctionalInput)
64 * @see functionalarchitecture.FunctionalarchitecturePackage#getInformationLink_To()
65 * @see functionalarchitecture.FunctionalInput#getIncomingLinks
66 * @model opposite="IncomingLinks" required="true"
67 * @generated
68 */
69 FunctionalInput getTo();
70
71 /**
72 * Sets the value of the '{@link functionalarchitecture.InformationLink#getTo <em>To</em>}' reference.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @param value the new value of the '<em>To</em>' reference.
76 * @see #getTo()
77 * @generated
78 */
79 void setTo(FunctionalInput value);
80
81} // InformationLink
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FAMTerminatorImpl.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FAMTerminatorImpl.java
new file mode 100644
index 00000000..382e0170
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FAMTerminatorImpl.java
@@ -0,0 +1,196 @@
1/**
2 */
3package functionalarchitecture.impl;
4
5import functionalarchitecture.FAMTerminator;
6import functionalarchitecture.FunctionalData;
7import functionalarchitecture.FunctionalarchitecturePackage;
8
9import org.eclipse.emf.common.notify.Notification;
10import org.eclipse.emf.common.notify.NotificationChain;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
17
18import org.eclipse.emf.ecore.util.EcoreUtil;
19
20/**
21 * <!-- begin-user-doc -->
22 * An implementation of the model object '<em><b>FAM Terminator</b></em>'.
23 * <!-- end-user-doc -->
24 * <p>
25 * The following features are implemented:
26 * </p>
27 * <ul>
28 * <li>{@link functionalarchitecture.impl.FAMTerminatorImpl#getData <em>Data</em>}</li>
29 * </ul>
30 *
31 * @generated
32 */
33public class FAMTerminatorImpl extends MinimalEObjectImpl.Container implements FAMTerminator {
34 /**
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @generated
38 */
39 protected FAMTerminatorImpl() {
40 super();
41 }
42
43 /**
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @generated
47 */
48 @Override
49 protected EClass eStaticClass() {
50 return FunctionalarchitecturePackage.Literals.FAM_TERMINATOR;
51 }
52
53 /**
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @generated
57 */
58 public FunctionalData getData() {
59 if (eContainerFeatureID() != FunctionalarchitecturePackage.FAM_TERMINATOR__DATA) return null;
60 return (FunctionalData)eInternalContainer();
61 }
62
63 /**
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @generated
67 */
68 public NotificationChain basicSetData(FunctionalData newData, NotificationChain msgs) {
69 msgs = eBasicSetContainer((InternalEObject)newData, FunctionalarchitecturePackage.FAM_TERMINATOR__DATA, msgs);
70 return msgs;
71 }
72
73 /**
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @generated
77 */
78 public void setData(FunctionalData newData) {
79 if (newData != eInternalContainer() || (eContainerFeatureID() != FunctionalarchitecturePackage.FAM_TERMINATOR__DATA && newData != null)) {
80 if (EcoreUtil.isAncestor(this, newData))
81 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
82 NotificationChain msgs = null;
83 if (eInternalContainer() != null)
84 msgs = eBasicRemoveFromContainer(msgs);
85 if (newData != null)
86 msgs = ((InternalEObject)newData).eInverseAdd(this, FunctionalarchitecturePackage.FUNCTIONAL_DATA__TERMINATOR, FunctionalData.class, msgs);
87 msgs = basicSetData(newData, msgs);
88 if (msgs != null) msgs.dispatch();
89 }
90 else if (eNotificationRequired())
91 eNotify(new ENotificationImpl(this, Notification.SET, FunctionalarchitecturePackage.FAM_TERMINATOR__DATA, newData, newData));
92 }
93
94 /**
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @generated
98 */
99 @Override
100 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
101 switch (featureID) {
102 case FunctionalarchitecturePackage.FAM_TERMINATOR__DATA:
103 if (eInternalContainer() != null)
104 msgs = eBasicRemoveFromContainer(msgs);
105 return basicSetData((FunctionalData)otherEnd, msgs);
106 }
107 return super.eInverseAdd(otherEnd, featureID, msgs);
108 }
109
110 /**
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @generated
114 */
115 @Override
116 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
117 switch (featureID) {
118 case FunctionalarchitecturePackage.FAM_TERMINATOR__DATA:
119 return basicSetData(null, msgs);
120 }
121 return super.eInverseRemove(otherEnd, featureID, msgs);
122 }
123
124 /**
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @generated
128 */
129 @Override
130 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
131 switch (eContainerFeatureID()) {
132 case FunctionalarchitecturePackage.FAM_TERMINATOR__DATA:
133 return eInternalContainer().eInverseRemove(this, FunctionalarchitecturePackage.FUNCTIONAL_DATA__TERMINATOR, FunctionalData.class, msgs);
134 }
135 return super.eBasicRemoveFromContainerFeature(msgs);
136 }
137
138 /**
139 * <!-- begin-user-doc -->
140 * <!-- end-user-doc -->
141 * @generated
142 */
143 @Override
144 public Object eGet(int featureID, boolean resolve, boolean coreType) {
145 switch (featureID) {
146 case FunctionalarchitecturePackage.FAM_TERMINATOR__DATA:
147 return getData();
148 }
149 return super.eGet(featureID, resolve, coreType);
150 }
151
152 /**
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 */
157 @Override
158 public void eSet(int featureID, Object newValue) {
159 switch (featureID) {
160 case FunctionalarchitecturePackage.FAM_TERMINATOR__DATA:
161 setData((FunctionalData)newValue);
162 return;
163 }
164 super.eSet(featureID, newValue);
165 }
166
167 /**
168 * <!-- begin-user-doc -->
169 * <!-- end-user-doc -->
170 * @generated
171 */
172 @Override
173 public void eUnset(int featureID) {
174 switch (featureID) {
175 case FunctionalarchitecturePackage.FAM_TERMINATOR__DATA:
176 setData((FunctionalData)null);
177 return;
178 }
179 super.eUnset(featureID);
180 }
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 */
187 @Override
188 public boolean eIsSet(int featureID) {
189 switch (featureID) {
190 case FunctionalarchitecturePackage.FAM_TERMINATOR__DATA:
191 return getData() != null;
192 }
193 return super.eIsSet(featureID);
194 }
195
196} //FAMTerminatorImpl
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionImpl.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionImpl.java
new file mode 100644
index 00000000..46736c8c
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionImpl.java
@@ -0,0 +1,191 @@
1/**
2 */
3package functionalarchitecture.impl;
4
5import functionalarchitecture.Function;
6import functionalarchitecture.FunctionType;
7import functionalarchitecture.FunctionalElement;
8import functionalarchitecture.FunctionalarchitecturePackage;
9
10import java.util.Collection;
11
12import org.eclipse.emf.common.notify.NotificationChain;
13
14import org.eclipse.emf.common.util.EList;
15
16import org.eclipse.emf.ecore.EClass;
17import org.eclipse.emf.ecore.EStructuralFeature;
18import org.eclipse.emf.ecore.InternalEObject;
19
20import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
21import org.eclipse.emf.ecore.util.InternalEList;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model object '<em><b>Function</b></em>'.
26 * <!-- end-user-doc -->
27 * <p>
28 * The following features are implemented:
29 * </p>
30 * <ul>
31 * <li>{@link functionalarchitecture.impl.FunctionImpl#getSubElements <em>Sub Elements</em>}</li>
32 * <li>{@link functionalarchitecture.impl.FunctionImpl#getType <em>Type</em>}</li>
33 * </ul>
34 *
35 * @generated
36 */
37public class FunctionImpl extends FunctionalElementImpl implements Function {
38 /**
39 * The cached value of the '{@link #getSubElements() <em>Sub Elements</em>}' containment reference list.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @see #getSubElements()
43 * @generated
44 * @ordered
45 */
46 protected EList<FunctionalElement> subElements;
47
48 /**
49 * The cached setting delegate for the '{@link #getType() <em>Type</em>}' attribute.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @see #getType()
53 * @generated
54 * @ordered
55 */
56 protected EStructuralFeature.Internal.SettingDelegate TYPE__ESETTING_DELEGATE = ((EStructuralFeature.Internal)FunctionalarchitecturePackage.Literals.FUNCTION__TYPE).getSettingDelegate();
57
58 /**
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @generated
62 */
63 protected FunctionImpl() {
64 super();
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 @Override
73 protected EClass eStaticClass() {
74 return FunctionalarchitecturePackage.Literals.FUNCTION;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 public EList<FunctionalElement> getSubElements() {
83 if (subElements == null) {
84 subElements = new EObjectContainmentWithInverseEList<FunctionalElement>(FunctionalElement.class, this, FunctionalarchitecturePackage.FUNCTION__SUB_ELEMENTS, FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__PARENT);
85 }
86 return subElements;
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 public FunctionType getType() {
95 return (FunctionType)TYPE__ESETTING_DELEGATE.dynamicGet(this, null, 0, true, false);
96 }
97
98 /**
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 */
103 @SuppressWarnings("unchecked")
104 @Override
105 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
106 switch (featureID) {
107 case FunctionalarchitecturePackage.FUNCTION__SUB_ELEMENTS:
108 return ((InternalEList<InternalEObject>)(InternalEList<?>)getSubElements()).basicAdd(otherEnd, msgs);
109 }
110 return super.eInverseAdd(otherEnd, featureID, msgs);
111 }
112
113 /**
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @generated
117 */
118 @Override
119 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
120 switch (featureID) {
121 case FunctionalarchitecturePackage.FUNCTION__SUB_ELEMENTS:
122 return ((InternalEList<?>)getSubElements()).basicRemove(otherEnd, msgs);
123 }
124 return super.eInverseRemove(otherEnd, featureID, msgs);
125 }
126
127 /**
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 */
132 @Override
133 public Object eGet(int featureID, boolean resolve, boolean coreType) {
134 switch (featureID) {
135 case FunctionalarchitecturePackage.FUNCTION__SUB_ELEMENTS:
136 return getSubElements();
137 case FunctionalarchitecturePackage.FUNCTION__TYPE:
138 return getType();
139 }
140 return super.eGet(featureID, resolve, coreType);
141 }
142
143 /**
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 */
148 @SuppressWarnings("unchecked")
149 @Override
150 public void eSet(int featureID, Object newValue) {
151 switch (featureID) {
152 case FunctionalarchitecturePackage.FUNCTION__SUB_ELEMENTS:
153 getSubElements().clear();
154 getSubElements().addAll((Collection<? extends FunctionalElement>)newValue);
155 return;
156 }
157 super.eSet(featureID, newValue);
158 }
159
160 /**
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @generated
164 */
165 @Override
166 public void eUnset(int featureID) {
167 switch (featureID) {
168 case FunctionalarchitecturePackage.FUNCTION__SUB_ELEMENTS:
169 getSubElements().clear();
170 return;
171 }
172 super.eUnset(featureID);
173 }
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 @Override
181 public boolean eIsSet(int featureID) {
182 switch (featureID) {
183 case FunctionalarchitecturePackage.FUNCTION__SUB_ELEMENTS:
184 return subElements != null && !subElements.isEmpty();
185 case FunctionalarchitecturePackage.FUNCTION__TYPE:
186 return TYPE__ESETTING_DELEGATE.dynamicIsSet(this, null, 0);
187 }
188 return super.eIsSet(featureID);
189 }
190
191} //FunctionImpl
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalArchitectureModelImpl.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalArchitectureModelImpl.java
new file mode 100644
index 00000000..78f6d6f2
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalArchitectureModelImpl.java
@@ -0,0 +1,152 @@
1/**
2 */
3package functionalarchitecture.impl;
4
5import functionalarchitecture.FunctionalArchitectureModel;
6import functionalarchitecture.FunctionalElement;
7import functionalarchitecture.FunctionalarchitecturePackage;
8
9import java.util.Collection;
10
11import org.eclipse.emf.common.notify.NotificationChain;
12
13import org.eclipse.emf.common.util.EList;
14
15import org.eclipse.emf.ecore.EClass;
16import org.eclipse.emf.ecore.InternalEObject;
17
18import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
19
20import org.eclipse.emf.ecore.util.EObjectContainmentEList;
21import org.eclipse.emf.ecore.util.InternalEList;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model object '<em><b>Functional Architecture Model</b></em>'.
26 * <!-- end-user-doc -->
27 * <p>
28 * The following features are implemented:
29 * </p>
30 * <ul>
31 * <li>{@link functionalarchitecture.impl.FunctionalArchitectureModelImpl#getRootElements <em>Root Elements</em>}</li>
32 * </ul>
33 *
34 * @generated
35 */
36public class FunctionalArchitectureModelImpl extends MinimalEObjectImpl.Container implements FunctionalArchitectureModel {
37 /**
38 * The cached value of the '{@link #getRootElements() <em>Root Elements</em>}' containment reference list.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @see #getRootElements()
42 * @generated
43 * @ordered
44 */
45 protected EList<FunctionalElement> rootElements;
46
47 /**
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @generated
51 */
52 protected FunctionalArchitectureModelImpl() {
53 super();
54 }
55
56 /**
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @generated
60 */
61 @Override
62 protected EClass eStaticClass() {
63 return FunctionalarchitecturePackage.Literals.FUNCTIONAL_ARCHITECTURE_MODEL;
64 }
65
66 /**
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 public EList<FunctionalElement> getRootElements() {
72 if (rootElements == null) {
73 rootElements = new EObjectContainmentEList<FunctionalElement>(FunctionalElement.class, this, FunctionalarchitecturePackage.FUNCTIONAL_ARCHITECTURE_MODEL__ROOT_ELEMENTS);
74 }
75 return rootElements;
76 }
77
78 /**
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @generated
82 */
83 @Override
84 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
85 switch (featureID) {
86 case FunctionalarchitecturePackage.FUNCTIONAL_ARCHITECTURE_MODEL__ROOT_ELEMENTS:
87 return ((InternalEList<?>)getRootElements()).basicRemove(otherEnd, msgs);
88 }
89 return super.eInverseRemove(otherEnd, featureID, msgs);
90 }
91
92 /**
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @generated
96 */
97 @Override
98 public Object eGet(int featureID, boolean resolve, boolean coreType) {
99 switch (featureID) {
100 case FunctionalarchitecturePackage.FUNCTIONAL_ARCHITECTURE_MODEL__ROOT_ELEMENTS:
101 return getRootElements();
102 }
103 return super.eGet(featureID, resolve, coreType);
104 }
105
106 /**
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 */
111 @SuppressWarnings("unchecked")
112 @Override
113 public void eSet(int featureID, Object newValue) {
114 switch (featureID) {
115 case FunctionalarchitecturePackage.FUNCTIONAL_ARCHITECTURE_MODEL__ROOT_ELEMENTS:
116 getRootElements().clear();
117 getRootElements().addAll((Collection<? extends FunctionalElement>)newValue);
118 return;
119 }
120 super.eSet(featureID, newValue);
121 }
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 @Override
129 public void eUnset(int featureID) {
130 switch (featureID) {
131 case FunctionalarchitecturePackage.FUNCTIONAL_ARCHITECTURE_MODEL__ROOT_ELEMENTS:
132 getRootElements().clear();
133 return;
134 }
135 super.eUnset(featureID);
136 }
137
138 /**
139 * <!-- begin-user-doc -->
140 * <!-- end-user-doc -->
141 * @generated
142 */
143 @Override
144 public boolean eIsSet(int featureID) {
145 switch (featureID) {
146 case FunctionalarchitecturePackage.FUNCTIONAL_ARCHITECTURE_MODEL__ROOT_ELEMENTS:
147 return rootElements != null && !rootElements.isEmpty();
148 }
149 return super.eIsSet(featureID);
150 }
151
152} //FunctionalArchitectureModelImpl
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalDataImpl.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalDataImpl.java
new file mode 100644
index 00000000..10937e8d
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalDataImpl.java
@@ -0,0 +1,267 @@
1/**
2 */
3package functionalarchitecture.impl;
4
5import functionalarchitecture.FAMTerminator;
6import functionalarchitecture.FunctionalData;
7import functionalarchitecture.FunctionalInterface;
8import functionalarchitecture.FunctionalarchitecturePackage;
9
10import org.eclipse.emf.common.notify.Notification;
11import org.eclipse.emf.common.notify.NotificationChain;
12
13import org.eclipse.emf.ecore.EClass;
14import org.eclipse.emf.ecore.InternalEObject;
15
16import org.eclipse.emf.ecore.impl.ENotificationImpl;
17import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
18
19import org.eclipse.emf.ecore.util.EcoreUtil;
20
21/**
22 * <!-- begin-user-doc -->
23 * An implementation of the model object '<em><b>Functional Data</b></em>'.
24 * <!-- end-user-doc -->
25 * <p>
26 * The following features are implemented:
27 * </p>
28 * <ul>
29 * <li>{@link functionalarchitecture.impl.FunctionalDataImpl#getTerminator <em>Terminator</em>}</li>
30 * <li>{@link functionalarchitecture.impl.FunctionalDataImpl#getInterface <em>Interface</em>}</li>
31 * </ul>
32 *
33 * @generated
34 */
35public abstract class FunctionalDataImpl extends MinimalEObjectImpl.Container implements FunctionalData {
36 /**
37 * The cached value of the '{@link #getTerminator() <em>Terminator</em>}' containment reference.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @see #getTerminator()
41 * @generated
42 * @ordered
43 */
44 protected FAMTerminator terminator;
45
46 /**
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @generated
50 */
51 protected FunctionalDataImpl() {
52 super();
53 }
54
55 /**
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @generated
59 */
60 @Override
61 protected EClass eStaticClass() {
62 return FunctionalarchitecturePackage.Literals.FUNCTIONAL_DATA;
63 }
64
65 /**
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @generated
69 */
70 public FAMTerminator getTerminator() {
71 return terminator;
72 }
73
74 /**
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @generated
78 */
79 public NotificationChain basicSetTerminator(FAMTerminator newTerminator, NotificationChain msgs) {
80 FAMTerminator oldTerminator = terminator;
81 terminator = newTerminator;
82 if (eNotificationRequired()) {
83 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FunctionalarchitecturePackage.FUNCTIONAL_DATA__TERMINATOR, oldTerminator, newTerminator);
84 if (msgs == null) msgs = notification; else msgs.add(notification);
85 }
86 return msgs;
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 public void setTerminator(FAMTerminator newTerminator) {
95 if (newTerminator != terminator) {
96 NotificationChain msgs = null;
97 if (terminator != null)
98 msgs = ((InternalEObject)terminator).eInverseRemove(this, FunctionalarchitecturePackage.FAM_TERMINATOR__DATA, FAMTerminator.class, msgs);
99 if (newTerminator != null)
100 msgs = ((InternalEObject)newTerminator).eInverseAdd(this, FunctionalarchitecturePackage.FAM_TERMINATOR__DATA, FAMTerminator.class, msgs);
101 msgs = basicSetTerminator(newTerminator, msgs);
102 if (msgs != null) msgs.dispatch();
103 }
104 else if (eNotificationRequired())
105 eNotify(new ENotificationImpl(this, Notification.SET, FunctionalarchitecturePackage.FUNCTIONAL_DATA__TERMINATOR, newTerminator, newTerminator));
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 public FunctionalInterface getInterface() {
114 if (eContainerFeatureID() != FunctionalarchitecturePackage.FUNCTIONAL_DATA__INTERFACE) return null;
115 return (FunctionalInterface)eInternalContainer();
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 public NotificationChain basicSetInterface(FunctionalInterface newInterface, NotificationChain msgs) {
124 msgs = eBasicSetContainer((InternalEObject)newInterface, FunctionalarchitecturePackage.FUNCTIONAL_DATA__INTERFACE, msgs);
125 return msgs;
126 }
127
128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @generated
132 */
133 public void setInterface(FunctionalInterface newInterface) {
134 if (newInterface != eInternalContainer() || (eContainerFeatureID() != FunctionalarchitecturePackage.FUNCTIONAL_DATA__INTERFACE && newInterface != null)) {
135 if (EcoreUtil.isAncestor(this, newInterface))
136 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
137 NotificationChain msgs = null;
138 if (eInternalContainer() != null)
139 msgs = eBasicRemoveFromContainer(msgs);
140 if (newInterface != null)
141 msgs = ((InternalEObject)newInterface).eInverseAdd(this, FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__DATA, FunctionalInterface.class, msgs);
142 msgs = basicSetInterface(newInterface, msgs);
143 if (msgs != null) msgs.dispatch();
144 }
145 else if (eNotificationRequired())
146 eNotify(new ENotificationImpl(this, Notification.SET, FunctionalarchitecturePackage.FUNCTIONAL_DATA__INTERFACE, newInterface, newInterface));
147 }
148
149 /**
150 * <!-- begin-user-doc -->
151 * <!-- end-user-doc -->
152 * @generated
153 */
154 @Override
155 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
156 switch (featureID) {
157 case FunctionalarchitecturePackage.FUNCTIONAL_DATA__TERMINATOR:
158 if (terminator != null)
159 msgs = ((InternalEObject)terminator).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FunctionalarchitecturePackage.FUNCTIONAL_DATA__TERMINATOR, null, msgs);
160 return basicSetTerminator((FAMTerminator)otherEnd, msgs);
161 case FunctionalarchitecturePackage.FUNCTIONAL_DATA__INTERFACE:
162 if (eInternalContainer() != null)
163 msgs = eBasicRemoveFromContainer(msgs);
164 return basicSetInterface((FunctionalInterface)otherEnd, msgs);
165 }
166 return super.eInverseAdd(otherEnd, featureID, msgs);
167 }
168
169 /**
170 * <!-- begin-user-doc -->
171 * <!-- end-user-doc -->
172 * @generated
173 */
174 @Override
175 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
176 switch (featureID) {
177 case FunctionalarchitecturePackage.FUNCTIONAL_DATA__TERMINATOR:
178 return basicSetTerminator(null, msgs);
179 case FunctionalarchitecturePackage.FUNCTIONAL_DATA__INTERFACE:
180 return basicSetInterface(null, msgs);
181 }
182 return super.eInverseRemove(otherEnd, featureID, msgs);
183 }
184
185 /**
186 * <!-- begin-user-doc -->
187 * <!-- end-user-doc -->
188 * @generated
189 */
190 @Override
191 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
192 switch (eContainerFeatureID()) {
193 case FunctionalarchitecturePackage.FUNCTIONAL_DATA__INTERFACE:
194 return eInternalContainer().eInverseRemove(this, FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__DATA, FunctionalInterface.class, msgs);
195 }
196 return super.eBasicRemoveFromContainerFeature(msgs);
197 }
198
199 /**
200 * <!-- begin-user-doc -->
201 * <!-- end-user-doc -->
202 * @generated
203 */
204 @Override
205 public Object eGet(int featureID, boolean resolve, boolean coreType) {
206 switch (featureID) {
207 case FunctionalarchitecturePackage.FUNCTIONAL_DATA__TERMINATOR:
208 return getTerminator();
209 case FunctionalarchitecturePackage.FUNCTIONAL_DATA__INTERFACE:
210 return getInterface();
211 }
212 return super.eGet(featureID, resolve, coreType);
213 }
214
215 /**
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @generated
219 */
220 @Override
221 public void eSet(int featureID, Object newValue) {
222 switch (featureID) {
223 case FunctionalarchitecturePackage.FUNCTIONAL_DATA__TERMINATOR:
224 setTerminator((FAMTerminator)newValue);
225 return;
226 case FunctionalarchitecturePackage.FUNCTIONAL_DATA__INTERFACE:
227 setInterface((FunctionalInterface)newValue);
228 return;
229 }
230 super.eSet(featureID, newValue);
231 }
232
233 /**
234 * <!-- begin-user-doc -->
235 * <!-- end-user-doc -->
236 * @generated
237 */
238 @Override
239 public void eUnset(int featureID) {
240 switch (featureID) {
241 case FunctionalarchitecturePackage.FUNCTIONAL_DATA__TERMINATOR:
242 setTerminator((FAMTerminator)null);
243 return;
244 case FunctionalarchitecturePackage.FUNCTIONAL_DATA__INTERFACE:
245 setInterface((FunctionalInterface)null);
246 return;
247 }
248 super.eUnset(featureID);
249 }
250
251 /**
252 * <!-- begin-user-doc -->
253 * <!-- end-user-doc -->
254 * @generated
255 */
256 @Override
257 public boolean eIsSet(int featureID) {
258 switch (featureID) {
259 case FunctionalarchitecturePackage.FUNCTIONAL_DATA__TERMINATOR:
260 return terminator != null;
261 case FunctionalarchitecturePackage.FUNCTIONAL_DATA__INTERFACE:
262 return getInterface() != null;
263 }
264 return super.eIsSet(featureID);
265 }
266
267} //FunctionalDataImpl
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalElementImpl.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalElementImpl.java
new file mode 100644
index 00000000..809e9ed5
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalElementImpl.java
@@ -0,0 +1,318 @@
1/**
2 */
3package functionalarchitecture.impl;
4
5import functionalarchitecture.Function;
6import functionalarchitecture.FunctionalArchitectureModel;
7import functionalarchitecture.FunctionalElement;
8import functionalarchitecture.FunctionalInterface;
9import functionalarchitecture.FunctionalarchitecturePackage;
10
11import org.eclipse.emf.common.notify.Notification;
12import org.eclipse.emf.common.notify.NotificationChain;
13
14import org.eclipse.emf.ecore.EClass;
15import org.eclipse.emf.ecore.EStructuralFeature;
16import org.eclipse.emf.ecore.InternalEObject;
17
18import org.eclipse.emf.ecore.impl.ENotificationImpl;
19import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
20
21import org.eclipse.emf.ecore.util.EcoreUtil;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model object '<em><b>Functional Element</b></em>'.
26 * <!-- end-user-doc -->
27 * <p>
28 * The following features are implemented:
29 * </p>
30 * <ul>
31 * <li>{@link functionalarchitecture.impl.FunctionalElementImpl#getInterface <em>Interface</em>}</li>
32 * <li>{@link functionalarchitecture.impl.FunctionalElementImpl#getModel <em>Model</em>}</li>
33 * <li>{@link functionalarchitecture.impl.FunctionalElementImpl#getParent <em>Parent</em>}</li>
34 * </ul>
35 *
36 * @generated
37 */
38public abstract class FunctionalElementImpl extends MinimalEObjectImpl.Container implements FunctionalElement {
39 /**
40 * The cached value of the '{@link #getInterface() <em>Interface</em>}' containment reference.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getInterface()
44 * @generated
45 * @ordered
46 */
47 protected FunctionalInterface interface_;
48
49 /**
50 * The cached setting delegate for the '{@link #getModel() <em>Model</em>}' reference.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @see #getModel()
54 * @generated
55 * @ordered
56 */
57 protected EStructuralFeature.Internal.SettingDelegate MODEL__ESETTING_DELEGATE = ((EStructuralFeature.Internal)FunctionalarchitecturePackage.Literals.FUNCTIONAL_ELEMENT__MODEL).getSettingDelegate();
58
59 /**
60 * <!-- begin-user-doc -->
61 * <!-- end-user-doc -->
62 * @generated
63 */
64 protected FunctionalElementImpl() {
65 super();
66 }
67
68 /**
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @generated
72 */
73 @Override
74 protected EClass eStaticClass() {
75 return FunctionalarchitecturePackage.Literals.FUNCTIONAL_ELEMENT;
76 }
77
78 /**
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @generated
82 */
83 public FunctionalInterface getInterface() {
84 return interface_;
85 }
86
87 /**
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @generated
91 */
92 public NotificationChain basicSetInterface(FunctionalInterface newInterface, NotificationChain msgs) {
93 FunctionalInterface oldInterface = interface_;
94 interface_ = newInterface;
95 if (eNotificationRequired()) {
96 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__INTERFACE, oldInterface, newInterface);
97 if (msgs == null) msgs = notification; else msgs.add(notification);
98 }
99 return msgs;
100 }
101
102 /**
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @generated
106 */
107 public void setInterface(FunctionalInterface newInterface) {
108 if (newInterface != interface_) {
109 NotificationChain msgs = null;
110 if (interface_ != null)
111 msgs = ((InternalEObject)interface_).eInverseRemove(this, FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__ELEMENT, FunctionalInterface.class, msgs);
112 if (newInterface != null)
113 msgs = ((InternalEObject)newInterface).eInverseAdd(this, FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__ELEMENT, FunctionalInterface.class, msgs);
114 msgs = basicSetInterface(newInterface, msgs);
115 if (msgs != null) msgs.dispatch();
116 }
117 else if (eNotificationRequired())
118 eNotify(new ENotificationImpl(this, Notification.SET, FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__INTERFACE, newInterface, newInterface));
119 }
120
121 /**
122 * <!-- begin-user-doc -->
123 * <!-- end-user-doc -->
124 * @generated
125 */
126 public FunctionalArchitectureModel getModel() {
127 return (FunctionalArchitectureModel)MODEL__ESETTING_DELEGATE.dynamicGet(this, null, 0, true, false);
128 }
129
130 /**
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @generated
134 */
135 public FunctionalArchitectureModel basicGetModel() {
136 return (FunctionalArchitectureModel)MODEL__ESETTING_DELEGATE.dynamicGet(this, null, 0, false, false);
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 public void setModel(FunctionalArchitectureModel newModel) {
145 MODEL__ESETTING_DELEGATE.dynamicSet(this, null, 0, newModel);
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 public Function getParent() {
154 if (eContainerFeatureID() != FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__PARENT) return null;
155 return (Function)eInternalContainer();
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 public NotificationChain basicSetParent(Function newParent, NotificationChain msgs) {
164 msgs = eBasicSetContainer((InternalEObject)newParent, FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__PARENT, msgs);
165 return msgs;
166 }
167
168 /**
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 public void setParent(Function newParent) {
174 if (newParent != eInternalContainer() || (eContainerFeatureID() != FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__PARENT && newParent != null)) {
175 if (EcoreUtil.isAncestor(this, newParent))
176 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
177 NotificationChain msgs = null;
178 if (eInternalContainer() != null)
179 msgs = eBasicRemoveFromContainer(msgs);
180 if (newParent != null)
181 msgs = ((InternalEObject)newParent).eInverseAdd(this, FunctionalarchitecturePackage.FUNCTION__SUB_ELEMENTS, Function.class, msgs);
182 msgs = basicSetParent(newParent, msgs);
183 if (msgs != null) msgs.dispatch();
184 }
185 else if (eNotificationRequired())
186 eNotify(new ENotificationImpl(this, Notification.SET, FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__PARENT, newParent, newParent));
187 }
188
189 /**
190 * <!-- begin-user-doc -->
191 * <!-- end-user-doc -->
192 * @generated
193 */
194 @Override
195 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
196 switch (featureID) {
197 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__INTERFACE:
198 if (interface_ != null)
199 msgs = ((InternalEObject)interface_).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__INTERFACE, null, msgs);
200 return basicSetInterface((FunctionalInterface)otherEnd, msgs);
201 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__PARENT:
202 if (eInternalContainer() != null)
203 msgs = eBasicRemoveFromContainer(msgs);
204 return basicSetParent((Function)otherEnd, msgs);
205 }
206 return super.eInverseAdd(otherEnd, featureID, msgs);
207 }
208
209 /**
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 */
214 @Override
215 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
216 switch (featureID) {
217 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__INTERFACE:
218 return basicSetInterface(null, msgs);
219 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__PARENT:
220 return basicSetParent(null, msgs);
221 }
222 return super.eInverseRemove(otherEnd, featureID, msgs);
223 }
224
225 /**
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @generated
229 */
230 @Override
231 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
232 switch (eContainerFeatureID()) {
233 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__PARENT:
234 return eInternalContainer().eInverseRemove(this, FunctionalarchitecturePackage.FUNCTION__SUB_ELEMENTS, Function.class, msgs);
235 }
236 return super.eBasicRemoveFromContainerFeature(msgs);
237 }
238
239 /**
240 * <!-- begin-user-doc -->
241 * <!-- end-user-doc -->
242 * @generated
243 */
244 @Override
245 public Object eGet(int featureID, boolean resolve, boolean coreType) {
246 switch (featureID) {
247 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__INTERFACE:
248 return getInterface();
249 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__MODEL:
250 if (resolve) return getModel();
251 return basicGetModel();
252 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__PARENT:
253 return getParent();
254 }
255 return super.eGet(featureID, resolve, coreType);
256 }
257
258 /**
259 * <!-- begin-user-doc -->
260 * <!-- end-user-doc -->
261 * @generated
262 */
263 @Override
264 public void eSet(int featureID, Object newValue) {
265 switch (featureID) {
266 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__INTERFACE:
267 setInterface((FunctionalInterface)newValue);
268 return;
269 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__MODEL:
270 setModel((FunctionalArchitectureModel)newValue);
271 return;
272 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__PARENT:
273 setParent((Function)newValue);
274 return;
275 }
276 super.eSet(featureID, newValue);
277 }
278
279 /**
280 * <!-- begin-user-doc -->
281 * <!-- end-user-doc -->
282 * @generated
283 */
284 @Override
285 public void eUnset(int featureID) {
286 switch (featureID) {
287 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__INTERFACE:
288 setInterface((FunctionalInterface)null);
289 return;
290 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__MODEL:
291 setModel((FunctionalArchitectureModel)null);
292 return;
293 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__PARENT:
294 setParent((Function)null);
295 return;
296 }
297 super.eUnset(featureID);
298 }
299
300 /**
301 * <!-- begin-user-doc -->
302 * <!-- end-user-doc -->
303 * @generated
304 */
305 @Override
306 public boolean eIsSet(int featureID) {
307 switch (featureID) {
308 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__INTERFACE:
309 return interface_ != null;
310 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__MODEL:
311 return MODEL__ESETTING_DELEGATE.dynamicIsSet(this, null, 0);
312 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__PARENT:
313 return getParent() != null;
314 }
315 return super.eIsSet(featureID);
316 }
317
318} //FunctionalElementImpl
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalInputImpl.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalInputImpl.java
new file mode 100644
index 00000000..9df1ec0c
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalInputImpl.java
@@ -0,0 +1,165 @@
1/**
2 */
3package functionalarchitecture.impl;
4
5import functionalarchitecture.FunctionalInput;
6import functionalarchitecture.FunctionalarchitecturePackage;
7import functionalarchitecture.InformationLink;
8
9import java.util.Collection;
10
11import org.eclipse.emf.common.notify.NotificationChain;
12
13import org.eclipse.emf.common.util.EList;
14
15import org.eclipse.emf.ecore.EClass;
16import org.eclipse.emf.ecore.InternalEObject;
17
18import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
19import org.eclipse.emf.ecore.util.InternalEList;
20
21/**
22 * <!-- begin-user-doc -->
23 * An implementation of the model object '<em><b>Functional Input</b></em>'.
24 * <!-- end-user-doc -->
25 * <p>
26 * The following features are implemented:
27 * </p>
28 * <ul>
29 * <li>{@link functionalarchitecture.impl.FunctionalInputImpl#getIncomingLinks <em>Incoming Links</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public class FunctionalInputImpl extends FunctionalDataImpl implements FunctionalInput {
35 /**
36 * The cached value of the '{@link #getIncomingLinks() <em>Incoming Links</em>}' reference list.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getIncomingLinks()
40 * @generated
41 * @ordered
42 */
43 protected EList<InformationLink> incomingLinks;
44
45 /**
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @generated
49 */
50 protected FunctionalInputImpl() {
51 super();
52 }
53
54 /**
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @generated
58 */
59 @Override
60 protected EClass eStaticClass() {
61 return FunctionalarchitecturePackage.Literals.FUNCTIONAL_INPUT;
62 }
63
64 /**
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @generated
68 */
69 public EList<InformationLink> getIncomingLinks() {
70 if (incomingLinks == null) {
71 incomingLinks = new EObjectWithInverseResolvingEList<InformationLink>(InformationLink.class, this, FunctionalarchitecturePackage.FUNCTIONAL_INPUT__INCOMING_LINKS, FunctionalarchitecturePackage.INFORMATION_LINK__TO);
72 }
73 return incomingLinks;
74 }
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 @SuppressWarnings("unchecked")
82 @Override
83 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
84 switch (featureID) {
85 case FunctionalarchitecturePackage.FUNCTIONAL_INPUT__INCOMING_LINKS:
86 return ((InternalEList<InternalEObject>)(InternalEList<?>)getIncomingLinks()).basicAdd(otherEnd, msgs);
87 }
88 return super.eInverseAdd(otherEnd, featureID, msgs);
89 }
90
91 /**
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @generated
95 */
96 @Override
97 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
98 switch (featureID) {
99 case FunctionalarchitecturePackage.FUNCTIONAL_INPUT__INCOMING_LINKS:
100 return ((InternalEList<?>)getIncomingLinks()).basicRemove(otherEnd, msgs);
101 }
102 return super.eInverseRemove(otherEnd, featureID, msgs);
103 }
104
105 /**
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 @Override
111 public Object eGet(int featureID, boolean resolve, boolean coreType) {
112 switch (featureID) {
113 case FunctionalarchitecturePackage.FUNCTIONAL_INPUT__INCOMING_LINKS:
114 return getIncomingLinks();
115 }
116 return super.eGet(featureID, resolve, coreType);
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @SuppressWarnings("unchecked")
125 @Override
126 public void eSet(int featureID, Object newValue) {
127 switch (featureID) {
128 case FunctionalarchitecturePackage.FUNCTIONAL_INPUT__INCOMING_LINKS:
129 getIncomingLinks().clear();
130 getIncomingLinks().addAll((Collection<? extends InformationLink>)newValue);
131 return;
132 }
133 super.eSet(featureID, newValue);
134 }
135
136 /**
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @generated
140 */
141 @Override
142 public void eUnset(int featureID) {
143 switch (featureID) {
144 case FunctionalarchitecturePackage.FUNCTIONAL_INPUT__INCOMING_LINKS:
145 getIncomingLinks().clear();
146 return;
147 }
148 super.eUnset(featureID);
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
157 public boolean eIsSet(int featureID) {
158 switch (featureID) {
159 case FunctionalarchitecturePackage.FUNCTIONAL_INPUT__INCOMING_LINKS:
160 return incomingLinks != null && !incomingLinks.isEmpty();
161 }
162 return super.eIsSet(featureID);
163 }
164
165} //FunctionalInputImpl
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalInterfaceImpl.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalInterfaceImpl.java
new file mode 100644
index 00000000..20151886
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalInterfaceImpl.java
@@ -0,0 +1,243 @@
1/**
2 */
3package functionalarchitecture.impl;
4
5import functionalarchitecture.FunctionalData;
6import functionalarchitecture.FunctionalElement;
7import functionalarchitecture.FunctionalInterface;
8import functionalarchitecture.FunctionalarchitecturePackage;
9
10import java.util.Collection;
11
12import org.eclipse.emf.common.notify.Notification;
13import org.eclipse.emf.common.notify.NotificationChain;
14
15import org.eclipse.emf.common.util.EList;
16
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.emf.ecore.InternalEObject;
19
20import org.eclipse.emf.ecore.impl.ENotificationImpl;
21import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
22
23import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
24import org.eclipse.emf.ecore.util.EcoreUtil;
25import org.eclipse.emf.ecore.util.InternalEList;
26
27/**
28 * <!-- begin-user-doc -->
29 * An implementation of the model object '<em><b>Functional Interface</b></em>'.
30 * <!-- end-user-doc -->
31 * <p>
32 * The following features are implemented:
33 * </p>
34 * <ul>
35 * <li>{@link functionalarchitecture.impl.FunctionalInterfaceImpl#getData <em>Data</em>}</li>
36 * <li>{@link functionalarchitecture.impl.FunctionalInterfaceImpl#getElement <em>Element</em>}</li>
37 * </ul>
38 *
39 * @generated
40 */
41public class FunctionalInterfaceImpl extends MinimalEObjectImpl.Container implements FunctionalInterface {
42 /**
43 * The cached value of the '{@link #getData() <em>Data</em>}' containment reference list.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @see #getData()
47 * @generated
48 * @ordered
49 */
50 protected EList<FunctionalData> data;
51
52 /**
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 protected FunctionalInterfaceImpl() {
58 super();
59 }
60
61 /**
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @generated
65 */
66 @Override
67 protected EClass eStaticClass() {
68 return FunctionalarchitecturePackage.Literals.FUNCTIONAL_INTERFACE;
69 }
70
71 /**
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @generated
75 */
76 public EList<FunctionalData> getData() {
77 if (data == null) {
78 data = new EObjectContainmentWithInverseEList<FunctionalData>(FunctionalData.class, this, FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__DATA, FunctionalarchitecturePackage.FUNCTIONAL_DATA__INTERFACE);
79 }
80 return data;
81 }
82
83 /**
84 * <!-- begin-user-doc -->
85 * <!-- end-user-doc -->
86 * @generated
87 */
88 public FunctionalElement getElement() {
89 if (eContainerFeatureID() != FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__ELEMENT) return null;
90 return (FunctionalElement)eInternalContainer();
91 }
92
93 /**
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 public NotificationChain basicSetElement(FunctionalElement newElement, NotificationChain msgs) {
99 msgs = eBasicSetContainer((InternalEObject)newElement, FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__ELEMENT, msgs);
100 return msgs;
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 public void setElement(FunctionalElement newElement) {
109 if (newElement != eInternalContainer() || (eContainerFeatureID() != FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__ELEMENT && newElement != null)) {
110 if (EcoreUtil.isAncestor(this, newElement))
111 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
112 NotificationChain msgs = null;
113 if (eInternalContainer() != null)
114 msgs = eBasicRemoveFromContainer(msgs);
115 if (newElement != null)
116 msgs = ((InternalEObject)newElement).eInverseAdd(this, FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__INTERFACE, FunctionalElement.class, msgs);
117 msgs = basicSetElement(newElement, msgs);
118 if (msgs != null) msgs.dispatch();
119 }
120 else if (eNotificationRequired())
121 eNotify(new ENotificationImpl(this, Notification.SET, FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__ELEMENT, newElement, newElement));
122 }
123
124 /**
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @generated
128 */
129 @SuppressWarnings("unchecked")
130 @Override
131 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
132 switch (featureID) {
133 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__DATA:
134 return ((InternalEList<InternalEObject>)(InternalEList<?>)getData()).basicAdd(otherEnd, msgs);
135 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__ELEMENT:
136 if (eInternalContainer() != null)
137 msgs = eBasicRemoveFromContainer(msgs);
138 return basicSetElement((FunctionalElement)otherEnd, msgs);
139 }
140 return super.eInverseAdd(otherEnd, featureID, msgs);
141 }
142
143 /**
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 */
148 @Override
149 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
150 switch (featureID) {
151 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__DATA:
152 return ((InternalEList<?>)getData()).basicRemove(otherEnd, msgs);
153 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__ELEMENT:
154 return basicSetElement(null, msgs);
155 }
156 return super.eInverseRemove(otherEnd, featureID, msgs);
157 }
158
159 /**
160 * <!-- begin-user-doc -->
161 * <!-- end-user-doc -->
162 * @generated
163 */
164 @Override
165 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
166 switch (eContainerFeatureID()) {
167 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__ELEMENT:
168 return eInternalContainer().eInverseRemove(this, FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT__INTERFACE, FunctionalElement.class, msgs);
169 }
170 return super.eBasicRemoveFromContainerFeature(msgs);
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 @Override
179 public Object eGet(int featureID, boolean resolve, boolean coreType) {
180 switch (featureID) {
181 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__DATA:
182 return getData();
183 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__ELEMENT:
184 return getElement();
185 }
186 return super.eGet(featureID, resolve, coreType);
187 }
188
189 /**
190 * <!-- begin-user-doc -->
191 * <!-- end-user-doc -->
192 * @generated
193 */
194 @SuppressWarnings("unchecked")
195 @Override
196 public void eSet(int featureID, Object newValue) {
197 switch (featureID) {
198 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__DATA:
199 getData().clear();
200 getData().addAll((Collection<? extends FunctionalData>)newValue);
201 return;
202 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__ELEMENT:
203 setElement((FunctionalElement)newValue);
204 return;
205 }
206 super.eSet(featureID, newValue);
207 }
208
209 /**
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 */
214 @Override
215 public void eUnset(int featureID) {
216 switch (featureID) {
217 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__DATA:
218 getData().clear();
219 return;
220 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__ELEMENT:
221 setElement((FunctionalElement)null);
222 return;
223 }
224 super.eUnset(featureID);
225 }
226
227 /**
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 */
232 @Override
233 public boolean eIsSet(int featureID) {
234 switch (featureID) {
235 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__DATA:
236 return data != null && !data.isEmpty();
237 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE__ELEMENT:
238 return getElement() != null;
239 }
240 return super.eIsSet(featureID);
241 }
242
243} //FunctionalInterfaceImpl
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalOutputImpl.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalOutputImpl.java
new file mode 100644
index 00000000..1ae2a964
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalOutputImpl.java
@@ -0,0 +1,165 @@
1/**
2 */
3package functionalarchitecture.impl;
4
5import functionalarchitecture.FunctionalOutput;
6import functionalarchitecture.FunctionalarchitecturePackage;
7import functionalarchitecture.InformationLink;
8
9import java.util.Collection;
10
11import org.eclipse.emf.common.notify.NotificationChain;
12
13import org.eclipse.emf.common.util.EList;
14
15import org.eclipse.emf.ecore.EClass;
16import org.eclipse.emf.ecore.InternalEObject;
17
18import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
19import org.eclipse.emf.ecore.util.InternalEList;
20
21/**
22 * <!-- begin-user-doc -->
23 * An implementation of the model object '<em><b>Functional Output</b></em>'.
24 * <!-- end-user-doc -->
25 * <p>
26 * The following features are implemented:
27 * </p>
28 * <ul>
29 * <li>{@link functionalarchitecture.impl.FunctionalOutputImpl#getOutgoingLinks <em>Outgoing Links</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public class FunctionalOutputImpl extends FunctionalDataImpl implements FunctionalOutput {
35 /**
36 * The cached value of the '{@link #getOutgoingLinks() <em>Outgoing Links</em>}' containment reference list.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getOutgoingLinks()
40 * @generated
41 * @ordered
42 */
43 protected EList<InformationLink> outgoingLinks;
44
45 /**
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @generated
49 */
50 protected FunctionalOutputImpl() {
51 super();
52 }
53
54 /**
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @generated
58 */
59 @Override
60 protected EClass eStaticClass() {
61 return FunctionalarchitecturePackage.Literals.FUNCTIONAL_OUTPUT;
62 }
63
64 /**
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @generated
68 */
69 public EList<InformationLink> getOutgoingLinks() {
70 if (outgoingLinks == null) {
71 outgoingLinks = new EObjectContainmentWithInverseEList<InformationLink>(InformationLink.class, this, FunctionalarchitecturePackage.FUNCTIONAL_OUTPUT__OUTGOING_LINKS, FunctionalarchitecturePackage.INFORMATION_LINK__FROM);
72 }
73 return outgoingLinks;
74 }
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 @SuppressWarnings("unchecked")
82 @Override
83 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
84 switch (featureID) {
85 case FunctionalarchitecturePackage.FUNCTIONAL_OUTPUT__OUTGOING_LINKS:
86 return ((InternalEList<InternalEObject>)(InternalEList<?>)getOutgoingLinks()).basicAdd(otherEnd, msgs);
87 }
88 return super.eInverseAdd(otherEnd, featureID, msgs);
89 }
90
91 /**
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @generated
95 */
96 @Override
97 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
98 switch (featureID) {
99 case FunctionalarchitecturePackage.FUNCTIONAL_OUTPUT__OUTGOING_LINKS:
100 return ((InternalEList<?>)getOutgoingLinks()).basicRemove(otherEnd, msgs);
101 }
102 return super.eInverseRemove(otherEnd, featureID, msgs);
103 }
104
105 /**
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 @Override
111 public Object eGet(int featureID, boolean resolve, boolean coreType) {
112 switch (featureID) {
113 case FunctionalarchitecturePackage.FUNCTIONAL_OUTPUT__OUTGOING_LINKS:
114 return getOutgoingLinks();
115 }
116 return super.eGet(featureID, resolve, coreType);
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @SuppressWarnings("unchecked")
125 @Override
126 public void eSet(int featureID, Object newValue) {
127 switch (featureID) {
128 case FunctionalarchitecturePackage.FUNCTIONAL_OUTPUT__OUTGOING_LINKS:
129 getOutgoingLinks().clear();
130 getOutgoingLinks().addAll((Collection<? extends InformationLink>)newValue);
131 return;
132 }
133 super.eSet(featureID, newValue);
134 }
135
136 /**
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @generated
140 */
141 @Override
142 public void eUnset(int featureID) {
143 switch (featureID) {
144 case FunctionalarchitecturePackage.FUNCTIONAL_OUTPUT__OUTGOING_LINKS:
145 getOutgoingLinks().clear();
146 return;
147 }
148 super.eUnset(featureID);
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
157 public boolean eIsSet(int featureID) {
158 switch (featureID) {
159 case FunctionalarchitecturePackage.FUNCTIONAL_OUTPUT__OUTGOING_LINKS:
160 return outgoingLinks != null && !outgoingLinks.isEmpty();
161 }
162 return super.eIsSet(featureID);
163 }
164
165} //FunctionalOutputImpl
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalarchitectureFactoryImpl.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalarchitectureFactoryImpl.java
new file mode 100644
index 00000000..56ecfa25
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalarchitectureFactoryImpl.java
@@ -0,0 +1,213 @@
1/**
2 */
3package functionalarchitecture.impl;
4
5import functionalarchitecture.*;
6import functionalarchitecture.FunctionalInterface;
7
8import org.eclipse.emf.ecore.EClass;
9import org.eclipse.emf.ecore.EDataType;
10import org.eclipse.emf.ecore.EObject;
11import org.eclipse.emf.ecore.EPackage;
12
13import org.eclipse.emf.ecore.impl.EFactoryImpl;
14
15import org.eclipse.emf.ecore.plugin.EcorePlugin;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model <b>Factory</b>.
20 * <!-- end-user-doc -->
21 * @generated
22 */
23public class FunctionalarchitectureFactoryImpl extends EFactoryImpl implements FunctionalarchitectureFactory {
24 /**
25 * Creates the default factory implementation.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @generated
29 */
30 public static FunctionalarchitectureFactory init() {
31 try {
32 FunctionalarchitectureFactory theFunctionalarchitectureFactory = (FunctionalarchitectureFactory)EPackage.Registry.INSTANCE.getEFactory(FunctionalarchitecturePackage.eNS_URI);
33 if (theFunctionalarchitectureFactory != null) {
34 return theFunctionalarchitectureFactory;
35 }
36 }
37 catch (Exception exception) {
38 EcorePlugin.INSTANCE.log(exception);
39 }
40 return new FunctionalarchitectureFactoryImpl();
41 }
42
43 /**
44 * Creates an instance of the factory.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @generated
48 */
49 public FunctionalarchitectureFactoryImpl() {
50 super();
51 }
52
53 /**
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @generated
57 */
58 @Override
59 public EObject create(EClass eClass) {
60 switch (eClass.getClassifierID()) {
61 case FunctionalarchitecturePackage.FUNCTIONAL_ARCHITECTURE_MODEL: return createFunctionalArchitectureModel();
62 case FunctionalarchitecturePackage.FUNCTION: return createFunction();
63 case FunctionalarchitecturePackage.FAM_TERMINATOR: return createFAMTerminator();
64 case FunctionalarchitecturePackage.INFORMATION_LINK: return createInformationLink();
65 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE: return createFunctionalInterface();
66 case FunctionalarchitecturePackage.FUNCTIONAL_INPUT: return createFunctionalInput();
67 case FunctionalarchitecturePackage.FUNCTIONAL_OUTPUT: return createFunctionalOutput();
68 default:
69 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
70 }
71 }
72
73 /**
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @generated
77 */
78 @Override
79 public Object createFromString(EDataType eDataType, String initialValue) {
80 switch (eDataType.getClassifierID()) {
81 case FunctionalarchitecturePackage.FUNCTION_TYPE:
82 return createFunctionTypeFromString(eDataType, initialValue);
83 default:
84 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
85 }
86 }
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 @Override
94 public String convertToString(EDataType eDataType, Object instanceValue) {
95 switch (eDataType.getClassifierID()) {
96 case FunctionalarchitecturePackage.FUNCTION_TYPE:
97 return convertFunctionTypeToString(eDataType, instanceValue);
98 default:
99 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
100 }
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 public FunctionalArchitectureModel createFunctionalArchitectureModel() {
109 FunctionalArchitectureModelImpl functionalArchitectureModel = new FunctionalArchitectureModelImpl();
110 return functionalArchitectureModel;
111 }
112
113 /**
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @generated
117 */
118 public Function createFunction() {
119 FunctionImpl function = new FunctionImpl();
120 return function;
121 }
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 public FAMTerminator createFAMTerminator() {
129 FAMTerminatorImpl famTerminator = new FAMTerminatorImpl();
130 return famTerminator;
131 }
132
133 /**
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 */
138 public InformationLink createInformationLink() {
139 InformationLinkImpl informationLink = new InformationLinkImpl();
140 return informationLink;
141 }
142
143 /**
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 */
148 public FunctionalInterface createFunctionalInterface() {
149 FunctionalInterfaceImpl functionalInterface = new FunctionalInterfaceImpl();
150 return functionalInterface;
151 }
152
153 /**
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @generated
157 */
158 public FunctionalInput createFunctionalInput() {
159 FunctionalInputImpl functionalInput = new FunctionalInputImpl();
160 return functionalInput;
161 }
162
163 /**
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 */
168 public FunctionalOutput createFunctionalOutput() {
169 FunctionalOutputImpl functionalOutput = new FunctionalOutputImpl();
170 return functionalOutput;
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 public FunctionType createFunctionTypeFromString(EDataType eDataType, String initialValue) {
179 FunctionType result = FunctionType.get(initialValue);
180 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
181 return result;
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 public String convertFunctionTypeToString(EDataType eDataType, Object instanceValue) {
190 return instanceValue == null ? null : instanceValue.toString();
191 }
192
193 /**
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @generated
197 */
198 public FunctionalarchitecturePackage getFunctionalarchitecturePackage() {
199 return (FunctionalarchitecturePackage)getEPackage();
200 }
201
202 /**
203 * <!-- begin-user-doc -->
204 * <!-- end-user-doc -->
205 * @deprecated
206 * @generated
207 */
208 @Deprecated
209 public static FunctionalarchitecturePackage getPackage() {
210 return FunctionalarchitecturePackage.eINSTANCE;
211 }
212
213} //FunctionalarchitectureFactoryImpl
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalarchitecturePackageImpl.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalarchitecturePackageImpl.java
new file mode 100644
index 00000000..22c15533
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/FunctionalarchitecturePackageImpl.java
@@ -0,0 +1,574 @@
1/**
2 */
3package functionalarchitecture.impl;
4
5import functionalarchitecture.FAMTerminator;
6import functionalarchitecture.Function;
7import functionalarchitecture.FunctionType;
8import functionalarchitecture.FunctionalArchitectureModel;
9import functionalarchitecture.FunctionalData;
10import functionalarchitecture.FunctionalElement;
11import functionalarchitecture.FunctionalInput;
12import functionalarchitecture.FunctionalInterface;
13import functionalarchitecture.FunctionalOutput;
14import functionalarchitecture.FunctionalarchitectureFactory;
15import functionalarchitecture.FunctionalarchitecturePackage;
16import functionalarchitecture.InformationLink;
17
18import org.eclipse.emf.ecore.EAttribute;
19import org.eclipse.emf.ecore.EClass;
20import org.eclipse.emf.ecore.EEnum;
21import org.eclipse.emf.ecore.EPackage;
22import org.eclipse.emf.ecore.EReference;
23
24import org.eclipse.emf.ecore.impl.EPackageImpl;
25
26/**
27 * <!-- begin-user-doc -->
28 * An implementation of the model <b>Package</b>.
29 * <!-- end-user-doc -->
30 * @generated
31 */
32public class FunctionalarchitecturePackageImpl extends EPackageImpl implements FunctionalarchitecturePackage {
33 /**
34 * <!-- begin-user-doc -->
35 * <!-- end-user-doc -->
36 * @generated
37 */
38 private EClass functionalElementEClass = null;
39
40 /**
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @generated
44 */
45 private EClass functionalArchitectureModelEClass = null;
46
47 /**
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @generated
51 */
52 private EClass functionEClass = null;
53
54 /**
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @generated
58 */
59 private EClass famTerminatorEClass = null;
60
61 /**
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @generated
65 */
66 private EClass informationLinkEClass = null;
67
68 /**
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @generated
72 */
73 private EClass functionalInterfaceEClass = null;
74
75 /**
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @generated
79 */
80 private EClass functionalInputEClass = null;
81
82 /**
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @generated
86 */
87 private EClass functionalOutputEClass = null;
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 private EClass functionalDataEClass = null;
95
96 /**
97 * <!-- begin-user-doc -->
98 * <!-- end-user-doc -->
99 * @generated
100 */
101 private EEnum functionTypeEEnum = null;
102
103 /**
104 * Creates an instance of the model <b>Package</b>, registered with
105 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
106 * package URI value.
107 * <p>Note: the correct way to create the package is via the static
108 * factory method {@link #init init()}, which also performs
109 * initialization of the package, or returns the registered package,
110 * if one already exists.
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @see org.eclipse.emf.ecore.EPackage.Registry
114 * @see functionalarchitecture.FunctionalarchitecturePackage#eNS_URI
115 * @see #init()
116 * @generated
117 */
118 private FunctionalarchitecturePackageImpl() {
119 super(eNS_URI, FunctionalarchitectureFactory.eINSTANCE);
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 private static boolean isInited = false;
128
129 /**
130 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
131 *
132 * <p>This method is used to initialize {@link FunctionalarchitecturePackage#eINSTANCE} when that field is accessed.
133 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @see #eNS_URI
137 * @see #createPackageContents()
138 * @see #initializePackageContents()
139 * @generated
140 */
141 public static FunctionalarchitecturePackage init() {
142 if (isInited) return (FunctionalarchitecturePackage)EPackage.Registry.INSTANCE.getEPackage(FunctionalarchitecturePackage.eNS_URI);
143
144 // Obtain or create and register package
145 FunctionalarchitecturePackageImpl theFunctionalarchitecturePackage = (FunctionalarchitecturePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FunctionalarchitecturePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FunctionalarchitecturePackageImpl());
146
147 isInited = true;
148
149 // Create package meta-data objects
150 theFunctionalarchitecturePackage.createPackageContents();
151
152 // Initialize created meta-data
153 theFunctionalarchitecturePackage.initializePackageContents();
154
155 // Mark meta-data to indicate it can't be changed
156 theFunctionalarchitecturePackage.freeze();
157
158
159 // Update the registry and return the package
160 EPackage.Registry.INSTANCE.put(FunctionalarchitecturePackage.eNS_URI, theFunctionalarchitecturePackage);
161 return theFunctionalarchitecturePackage;
162 }
163
164 /**
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @generated
168 */
169 public EClass getFunctionalElement() {
170 return functionalElementEClass;
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 public EReference getFunctionalElement_Interface() {
179 return (EReference)functionalElementEClass.getEStructuralFeatures().get(0);
180 }
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 */
187 public EReference getFunctionalElement_Model() {
188 return (EReference)functionalElementEClass.getEStructuralFeatures().get(1);
189 }
190
191 /**
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 */
196 public EReference getFunctionalElement_Parent() {
197 return (EReference)functionalElementEClass.getEStructuralFeatures().get(2);
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 public EClass getFunctionalArchitectureModel() {
206 return functionalArchitectureModelEClass;
207 }
208
209 /**
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 */
214 public EReference getFunctionalArchitectureModel_RootElements() {
215 return (EReference)functionalArchitectureModelEClass.getEStructuralFeatures().get(0);
216 }
217
218 /**
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 */
223 public EClass getFunction() {
224 return functionEClass;
225 }
226
227 /**
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 */
232 public EReference getFunction_SubElements() {
233 return (EReference)functionEClass.getEStructuralFeatures().get(0);
234 }
235
236 /**
237 * <!-- begin-user-doc -->
238 * <!-- end-user-doc -->
239 * @generated
240 */
241 public EAttribute getFunction_Type() {
242 return (EAttribute)functionEClass.getEStructuralFeatures().get(1);
243 }
244
245 /**
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 */
250 public EClass getFAMTerminator() {
251 return famTerminatorEClass;
252 }
253
254 /**
255 * <!-- begin-user-doc -->
256 * <!-- end-user-doc -->
257 * @generated
258 */
259 public EReference getFAMTerminator_Data() {
260 return (EReference)famTerminatorEClass.getEStructuralFeatures().get(0);
261 }
262
263 /**
264 * <!-- begin-user-doc -->
265 * <!-- end-user-doc -->
266 * @generated
267 */
268 public EClass getInformationLink() {
269 return informationLinkEClass;
270 }
271
272 /**
273 * <!-- begin-user-doc -->
274 * <!-- end-user-doc -->
275 * @generated
276 */
277 public EReference getInformationLink_From() {
278 return (EReference)informationLinkEClass.getEStructuralFeatures().get(0);
279 }
280
281 /**
282 * <!-- begin-user-doc -->
283 * <!-- end-user-doc -->
284 * @generated
285 */
286 public EReference getInformationLink_To() {
287 return (EReference)informationLinkEClass.getEStructuralFeatures().get(1);
288 }
289
290 /**
291 * <!-- begin-user-doc -->
292 * <!-- end-user-doc -->
293 * @generated
294 */
295 public EClass getFunctionalInterface() {
296 return functionalInterfaceEClass;
297 }
298
299 /**
300 * <!-- begin-user-doc -->
301 * <!-- end-user-doc -->
302 * @generated
303 */
304 public EReference getFunctionalInterface_Data() {
305 return (EReference)functionalInterfaceEClass.getEStructuralFeatures().get(0);
306 }
307
308 /**
309 * <!-- begin-user-doc -->
310 * <!-- end-user-doc -->
311 * @generated
312 */
313 public EReference getFunctionalInterface_Element() {
314 return (EReference)functionalInterfaceEClass.getEStructuralFeatures().get(1);
315 }
316
317 /**
318 * <!-- begin-user-doc -->
319 * <!-- end-user-doc -->
320 * @generated
321 */
322 public EClass getFunctionalInput() {
323 return functionalInputEClass;
324 }
325
326 /**
327 * <!-- begin-user-doc -->
328 * <!-- end-user-doc -->
329 * @generated
330 */
331 public EReference getFunctionalInput_IncomingLinks() {
332 return (EReference)functionalInputEClass.getEStructuralFeatures().get(0);
333 }
334
335 /**
336 * <!-- begin-user-doc -->
337 * <!-- end-user-doc -->
338 * @generated
339 */
340 public EClass getFunctionalOutput() {
341 return functionalOutputEClass;
342 }
343
344 /**
345 * <!-- begin-user-doc -->
346 * <!-- end-user-doc -->
347 * @generated
348 */
349 public EReference getFunctionalOutput_OutgoingLinks() {
350 return (EReference)functionalOutputEClass.getEStructuralFeatures().get(0);
351 }
352
353 /**
354 * <!-- begin-user-doc -->
355 * <!-- end-user-doc -->
356 * @generated
357 */
358 public EClass getFunctionalData() {
359 return functionalDataEClass;
360 }
361
362 /**
363 * <!-- begin-user-doc -->
364 * <!-- end-user-doc -->
365 * @generated
366 */
367 public EReference getFunctionalData_Terminator() {
368 return (EReference)functionalDataEClass.getEStructuralFeatures().get(0);
369 }
370
371 /**
372 * <!-- begin-user-doc -->
373 * <!-- end-user-doc -->
374 * @generated
375 */
376 public EReference getFunctionalData_Interface() {
377 return (EReference)functionalDataEClass.getEStructuralFeatures().get(1);
378 }
379
380 /**
381 * <!-- begin-user-doc -->
382 * <!-- end-user-doc -->
383 * @generated
384 */
385 public EEnum getFunctionType() {
386 return functionTypeEEnum;
387 }
388
389 /**
390 * <!-- begin-user-doc -->
391 * <!-- end-user-doc -->
392 * @generated
393 */
394 public FunctionalarchitectureFactory getFunctionalarchitectureFactory() {
395 return (FunctionalarchitectureFactory)getEFactoryInstance();
396 }
397
398 /**
399 * <!-- begin-user-doc -->
400 * <!-- end-user-doc -->
401 * @generated
402 */
403 private boolean isCreated = false;
404
405 /**
406 * Creates the meta-model objects for the package. This method is
407 * guarded to have no affect on any invocation but its first.
408 * <!-- begin-user-doc -->
409 * <!-- end-user-doc -->
410 * @generated
411 */
412 public void createPackageContents() {
413 if (isCreated) return;
414 isCreated = true;
415
416 // Create classes and their features
417 functionalElementEClass = createEClass(FUNCTIONAL_ELEMENT);
418 createEReference(functionalElementEClass, FUNCTIONAL_ELEMENT__INTERFACE);
419 createEReference(functionalElementEClass, FUNCTIONAL_ELEMENT__MODEL);
420 createEReference(functionalElementEClass, FUNCTIONAL_ELEMENT__PARENT);
421
422 functionalArchitectureModelEClass = createEClass(FUNCTIONAL_ARCHITECTURE_MODEL);
423 createEReference(functionalArchitectureModelEClass, FUNCTIONAL_ARCHITECTURE_MODEL__ROOT_ELEMENTS);
424
425 functionEClass = createEClass(FUNCTION);
426 createEReference(functionEClass, FUNCTION__SUB_ELEMENTS);
427 createEAttribute(functionEClass, FUNCTION__TYPE);
428
429 famTerminatorEClass = createEClass(FAM_TERMINATOR);
430 createEReference(famTerminatorEClass, FAM_TERMINATOR__DATA);
431
432 informationLinkEClass = createEClass(INFORMATION_LINK);
433 createEReference(informationLinkEClass, INFORMATION_LINK__FROM);
434 createEReference(informationLinkEClass, INFORMATION_LINK__TO);
435
436 functionalInterfaceEClass = createEClass(FUNCTIONAL_INTERFACE);
437 createEReference(functionalInterfaceEClass, FUNCTIONAL_INTERFACE__DATA);
438 createEReference(functionalInterfaceEClass, FUNCTIONAL_INTERFACE__ELEMENT);
439
440 functionalInputEClass = createEClass(FUNCTIONAL_INPUT);
441 createEReference(functionalInputEClass, FUNCTIONAL_INPUT__INCOMING_LINKS);
442
443 functionalOutputEClass = createEClass(FUNCTIONAL_OUTPUT);
444 createEReference(functionalOutputEClass, FUNCTIONAL_OUTPUT__OUTGOING_LINKS);
445
446 functionalDataEClass = createEClass(FUNCTIONAL_DATA);
447 createEReference(functionalDataEClass, FUNCTIONAL_DATA__TERMINATOR);
448 createEReference(functionalDataEClass, FUNCTIONAL_DATA__INTERFACE);
449
450 // Create enums
451 functionTypeEEnum = createEEnum(FUNCTION_TYPE);
452 }
453
454 /**
455 * <!-- begin-user-doc -->
456 * <!-- end-user-doc -->
457 * @generated
458 */
459 private boolean isInitialized = false;
460
461 /**
462 * Complete the initialization of the package and its meta-model. This
463 * method is guarded to have no affect on any invocation but its first.
464 * <!-- begin-user-doc -->
465 * <!-- end-user-doc -->
466 * @generated
467 */
468 public void initializePackageContents() {
469 if (isInitialized) return;
470 isInitialized = true;
471
472 // Initialize package
473 setName(eNAME);
474 setNsPrefix(eNS_PREFIX);
475 setNsURI(eNS_URI);
476
477 // Create type parameters
478
479 // Set bounds for type parameters
480
481 // Add supertypes to classes
482 functionEClass.getESuperTypes().add(this.getFunctionalElement());
483 functionalInputEClass.getESuperTypes().add(this.getFunctionalData());
484 functionalOutputEClass.getESuperTypes().add(this.getFunctionalData());
485
486 // Initialize classes, features, and operations; add parameters
487 initEClass(functionalElementEClass, FunctionalElement.class, "FunctionalElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
488 initEReference(getFunctionalElement_Interface(), this.getFunctionalInterface(), this.getFunctionalInterface_Element(), "interface", null, 0, 1, FunctionalElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
489 initEReference(getFunctionalElement_Model(), this.getFunctionalArchitectureModel(), null, "model", null, 1, 1, FunctionalElement.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
490 initEReference(getFunctionalElement_Parent(), this.getFunction(), this.getFunction_SubElements(), "parent", null, 0, 1, FunctionalElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
491
492 initEClass(functionalArchitectureModelEClass, FunctionalArchitectureModel.class, "FunctionalArchitectureModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
493 initEReference(getFunctionalArchitectureModel_RootElements(), this.getFunctionalElement(), null, "rootElements", null, 0, -1, FunctionalArchitectureModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
494
495 initEClass(functionEClass, Function.class, "Function", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
496 initEReference(getFunction_SubElements(), this.getFunctionalElement(), this.getFunctionalElement_Parent(), "subElements", null, 0, -1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
497 initEAttribute(getFunction_Type(), this.getFunctionType(), "type", null, 1, 1, Function.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
498
499 initEClass(famTerminatorEClass, FAMTerminator.class, "FAMTerminator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
500 initEReference(getFAMTerminator_Data(), this.getFunctionalData(), this.getFunctionalData_Terminator(), "data", null, 0, 1, FAMTerminator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
501
502 initEClass(informationLinkEClass, InformationLink.class, "InformationLink", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
503 initEReference(getInformationLink_From(), this.getFunctionalOutput(), this.getFunctionalOutput_OutgoingLinks(), "from", null, 0, 1, InformationLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
504 initEReference(getInformationLink_To(), this.getFunctionalInput(), this.getFunctionalInput_IncomingLinks(), "to", null, 1, 1, InformationLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
505
506 initEClass(functionalInterfaceEClass, FunctionalInterface.class, "FunctionalInterface", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
507 initEReference(getFunctionalInterface_Data(), this.getFunctionalData(), this.getFunctionalData_Interface(), "data", null, 0, -1, FunctionalInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
508 initEReference(getFunctionalInterface_Element(), this.getFunctionalElement(), this.getFunctionalElement_Interface(), "element", null, 0, 1, FunctionalInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
509
510 initEClass(functionalInputEClass, FunctionalInput.class, "FunctionalInput", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
511 initEReference(getFunctionalInput_IncomingLinks(), this.getInformationLink(), this.getInformationLink_To(), "IncomingLinks", null, 0, -1, FunctionalInput.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
512
513 initEClass(functionalOutputEClass, FunctionalOutput.class, "FunctionalOutput", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
514 initEReference(getFunctionalOutput_OutgoingLinks(), this.getInformationLink(), this.getInformationLink_From(), "outgoingLinks", null, 0, -1, FunctionalOutput.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
515
516 initEClass(functionalDataEClass, FunctionalData.class, "FunctionalData", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
517 initEReference(getFunctionalData_Terminator(), this.getFAMTerminator(), this.getFAMTerminator_Data(), "terminator", null, 0, 1, FunctionalData.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
518 initEReference(getFunctionalData_Interface(), this.getFunctionalInterface(), this.getFunctionalInterface_Data(), "interface", null, 0, 1, FunctionalData.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
519
520 // Initialize enums and add enum literals
521 initEEnum(functionTypeEEnum, FunctionType.class, "FunctionType");
522 addEEnumLiteral(functionTypeEEnum, FunctionType.ROOT);
523 addEEnumLiteral(functionTypeEEnum, FunctionType.INTERMEDIATE);
524 addEEnumLiteral(functionTypeEEnum, FunctionType.LEAF);
525
526 // Create resource
527 createResource(eNS_URI);
528
529 // Create annotations
530 // http://www.eclipse.org/emf/2002/Ecore
531 createEcoreAnnotations();
532 // org.eclipse.viatra.query.querybasedfeature
533 createOrgAnnotations();
534 }
535
536 /**
537 * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore</b>.
538 * <!-- begin-user-doc -->
539 * <!-- end-user-doc -->
540 * @generated
541 */
542 protected void createEcoreAnnotations() {
543 String source = "http://www.eclipse.org/emf/2002/Ecore";
544 addAnnotation
545 (this,
546 source,
547 new String[] {
548 "settingDelegates", "org.eclipse.viatra.query.querybasedfeature"
549 });
550 }
551
552 /**
553 * Initializes the annotations for <b>org.eclipse.viatra.query.querybasedfeature</b>.
554 * <!-- begin-user-doc -->
555 * <!-- end-user-doc -->
556 * @generated
557 */
558 protected void createOrgAnnotations() {
559 String source = "org.eclipse.viatra.query.querybasedfeature";
560 addAnnotation
561 (getFunctionalElement_Model(),
562 source,
563 new String[] {
564 "patternFQN", "hu.bme.mit.inf.dslreasoner.domains.transima.fam.model"
565 });
566 addAnnotation
567 (getFunction_Type(),
568 source,
569 new String[] {
570 "patternFQN", "hu.bme.mit.inf.dslreasoner.domains.transima.fam.type"
571 });
572 }
573
574} //FunctionalarchitecturePackageImpl
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/InformationLinkImpl.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/InformationLinkImpl.java
new file mode 100644
index 00000000..4b46fef8
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/impl/InformationLinkImpl.java
@@ -0,0 +1,285 @@
1/**
2 */
3package functionalarchitecture.impl;
4
5import functionalarchitecture.FunctionalInput;
6import functionalarchitecture.FunctionalOutput;
7import functionalarchitecture.FunctionalarchitecturePackage;
8import functionalarchitecture.InformationLink;
9
10import org.eclipse.emf.common.notify.Notification;
11import org.eclipse.emf.common.notify.NotificationChain;
12
13import org.eclipse.emf.ecore.EClass;
14import org.eclipse.emf.ecore.InternalEObject;
15
16import org.eclipse.emf.ecore.impl.ENotificationImpl;
17import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
18
19import org.eclipse.emf.ecore.util.EcoreUtil;
20
21/**
22 * <!-- begin-user-doc -->
23 * An implementation of the model object '<em><b>Information Link</b></em>'.
24 * <!-- end-user-doc -->
25 * <p>
26 * The following features are implemented:
27 * </p>
28 * <ul>
29 * <li>{@link functionalarchitecture.impl.InformationLinkImpl#getFrom <em>From</em>}</li>
30 * <li>{@link functionalarchitecture.impl.InformationLinkImpl#getTo <em>To</em>}</li>
31 * </ul>
32 *
33 * @generated
34 */
35public class InformationLinkImpl extends MinimalEObjectImpl.Container implements InformationLink {
36 /**
37 * The cached value of the '{@link #getTo() <em>To</em>}' reference.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @see #getTo()
41 * @generated
42 * @ordered
43 */
44 protected FunctionalInput to;
45
46 /**
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @generated
50 */
51 protected InformationLinkImpl() {
52 super();
53 }
54
55 /**
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @generated
59 */
60 @Override
61 protected EClass eStaticClass() {
62 return FunctionalarchitecturePackage.Literals.INFORMATION_LINK;
63 }
64
65 /**
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @generated
69 */
70 public FunctionalOutput getFrom() {
71 if (eContainerFeatureID() != FunctionalarchitecturePackage.INFORMATION_LINK__FROM) return null;
72 return (FunctionalOutput)eInternalContainer();
73 }
74
75 /**
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @generated
79 */
80 public NotificationChain basicSetFrom(FunctionalOutput newFrom, NotificationChain msgs) {
81 msgs = eBasicSetContainer((InternalEObject)newFrom, FunctionalarchitecturePackage.INFORMATION_LINK__FROM, msgs);
82 return msgs;
83 }
84
85 /**
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @generated
89 */
90 public void setFrom(FunctionalOutput newFrom) {
91 if (newFrom != eInternalContainer() || (eContainerFeatureID() != FunctionalarchitecturePackage.INFORMATION_LINK__FROM && newFrom != null)) {
92 if (EcoreUtil.isAncestor(this, newFrom))
93 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
94 NotificationChain msgs = null;
95 if (eInternalContainer() != null)
96 msgs = eBasicRemoveFromContainer(msgs);
97 if (newFrom != null)
98 msgs = ((InternalEObject)newFrom).eInverseAdd(this, FunctionalarchitecturePackage.FUNCTIONAL_OUTPUT__OUTGOING_LINKS, FunctionalOutput.class, msgs);
99 msgs = basicSetFrom(newFrom, msgs);
100 if (msgs != null) msgs.dispatch();
101 }
102 else if (eNotificationRequired())
103 eNotify(new ENotificationImpl(this, Notification.SET, FunctionalarchitecturePackage.INFORMATION_LINK__FROM, newFrom, newFrom));
104 }
105
106 /**
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 */
111 public FunctionalInput getTo() {
112 if (to != null && to.eIsProxy()) {
113 InternalEObject oldTo = (InternalEObject)to;
114 to = (FunctionalInput)eResolveProxy(oldTo);
115 if (to != oldTo) {
116 if (eNotificationRequired())
117 eNotify(new ENotificationImpl(this, Notification.RESOLVE, FunctionalarchitecturePackage.INFORMATION_LINK__TO, oldTo, to));
118 }
119 }
120 return to;
121 }
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 public FunctionalInput basicGetTo() {
129 return to;
130 }
131
132 /**
133 * <!-- begin-user-doc -->
134 * <!-- end-user-doc -->
135 * @generated
136 */
137 public NotificationChain basicSetTo(FunctionalInput newTo, NotificationChain msgs) {
138 FunctionalInput oldTo = to;
139 to = newTo;
140 if (eNotificationRequired()) {
141 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FunctionalarchitecturePackage.INFORMATION_LINK__TO, oldTo, newTo);
142 if (msgs == null) msgs = notification; else msgs.add(notification);
143 }
144 return msgs;
145 }
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 public void setTo(FunctionalInput newTo) {
153 if (newTo != to) {
154 NotificationChain msgs = null;
155 if (to != null)
156 msgs = ((InternalEObject)to).eInverseRemove(this, FunctionalarchitecturePackage.FUNCTIONAL_INPUT__INCOMING_LINKS, FunctionalInput.class, msgs);
157 if (newTo != null)
158 msgs = ((InternalEObject)newTo).eInverseAdd(this, FunctionalarchitecturePackage.FUNCTIONAL_INPUT__INCOMING_LINKS, FunctionalInput.class, msgs);
159 msgs = basicSetTo(newTo, msgs);
160 if (msgs != null) msgs.dispatch();
161 }
162 else if (eNotificationRequired())
163 eNotify(new ENotificationImpl(this, Notification.SET, FunctionalarchitecturePackage.INFORMATION_LINK__TO, newTo, newTo));
164 }
165
166 /**
167 * <!-- begin-user-doc -->
168 * <!-- end-user-doc -->
169 * @generated
170 */
171 @Override
172 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
173 switch (featureID) {
174 case FunctionalarchitecturePackage.INFORMATION_LINK__FROM:
175 if (eInternalContainer() != null)
176 msgs = eBasicRemoveFromContainer(msgs);
177 return basicSetFrom((FunctionalOutput)otherEnd, msgs);
178 case FunctionalarchitecturePackage.INFORMATION_LINK__TO:
179 if (to != null)
180 msgs = ((InternalEObject)to).eInverseRemove(this, FunctionalarchitecturePackage.FUNCTIONAL_INPUT__INCOMING_LINKS, FunctionalInput.class, msgs);
181 return basicSetTo((FunctionalInput)otherEnd, msgs);
182 }
183 return super.eInverseAdd(otherEnd, featureID, msgs);
184 }
185
186 /**
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @generated
190 */
191 @Override
192 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
193 switch (featureID) {
194 case FunctionalarchitecturePackage.INFORMATION_LINK__FROM:
195 return basicSetFrom(null, msgs);
196 case FunctionalarchitecturePackage.INFORMATION_LINK__TO:
197 return basicSetTo(null, msgs);
198 }
199 return super.eInverseRemove(otherEnd, featureID, msgs);
200 }
201
202 /**
203 * <!-- begin-user-doc -->
204 * <!-- end-user-doc -->
205 * @generated
206 */
207 @Override
208 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
209 switch (eContainerFeatureID()) {
210 case FunctionalarchitecturePackage.INFORMATION_LINK__FROM:
211 return eInternalContainer().eInverseRemove(this, FunctionalarchitecturePackage.FUNCTIONAL_OUTPUT__OUTGOING_LINKS, FunctionalOutput.class, msgs);
212 }
213 return super.eBasicRemoveFromContainerFeature(msgs);
214 }
215
216 /**
217 * <!-- begin-user-doc -->
218 * <!-- end-user-doc -->
219 * @generated
220 */
221 @Override
222 public Object eGet(int featureID, boolean resolve, boolean coreType) {
223 switch (featureID) {
224 case FunctionalarchitecturePackage.INFORMATION_LINK__FROM:
225 return getFrom();
226 case FunctionalarchitecturePackage.INFORMATION_LINK__TO:
227 if (resolve) return getTo();
228 return basicGetTo();
229 }
230 return super.eGet(featureID, resolve, coreType);
231 }
232
233 /**
234 * <!-- begin-user-doc -->
235 * <!-- end-user-doc -->
236 * @generated
237 */
238 @Override
239 public void eSet(int featureID, Object newValue) {
240 switch (featureID) {
241 case FunctionalarchitecturePackage.INFORMATION_LINK__FROM:
242 setFrom((FunctionalOutput)newValue);
243 return;
244 case FunctionalarchitecturePackage.INFORMATION_LINK__TO:
245 setTo((FunctionalInput)newValue);
246 return;
247 }
248 super.eSet(featureID, newValue);
249 }
250
251 /**
252 * <!-- begin-user-doc -->
253 * <!-- end-user-doc -->
254 * @generated
255 */
256 @Override
257 public void eUnset(int featureID) {
258 switch (featureID) {
259 case FunctionalarchitecturePackage.INFORMATION_LINK__FROM:
260 setFrom((FunctionalOutput)null);
261 return;
262 case FunctionalarchitecturePackage.INFORMATION_LINK__TO:
263 setTo((FunctionalInput)null);
264 return;
265 }
266 super.eUnset(featureID);
267 }
268
269 /**
270 * <!-- begin-user-doc -->
271 * <!-- end-user-doc -->
272 * @generated
273 */
274 @Override
275 public boolean eIsSet(int featureID) {
276 switch (featureID) {
277 case FunctionalarchitecturePackage.INFORMATION_LINK__FROM:
278 return getFrom() != null;
279 case FunctionalarchitecturePackage.INFORMATION_LINK__TO:
280 return to != null;
281 }
282 return super.eIsSet(featureID);
283 }
284
285} //InformationLinkImpl
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/util/FunctionalarchitectureAdapterFactory.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/util/FunctionalarchitectureAdapterFactory.java
new file mode 100644
index 00000000..f990a7a4
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/util/FunctionalarchitectureAdapterFactory.java
@@ -0,0 +1,265 @@
1/**
2 */
3package functionalarchitecture.util;
4
5import functionalarchitecture.*;
6import functionalarchitecture.FunctionalInterface;
7
8import org.eclipse.emf.common.notify.Adapter;
9import org.eclipse.emf.common.notify.Notifier;
10
11import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
12
13import org.eclipse.emf.ecore.EObject;
14
15/**
16 * <!-- begin-user-doc -->
17 * The <b>Adapter Factory</b> for the model.
18 * It provides an adapter <code>createXXX</code> method for each class of the model.
19 * <!-- end-user-doc -->
20 * @see functionalarchitecture.FunctionalarchitecturePackage
21 * @generated
22 */
23public class FunctionalarchitectureAdapterFactory extends AdapterFactoryImpl {
24 /**
25 * The cached model package.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @generated
29 */
30 protected static FunctionalarchitecturePackage modelPackage;
31
32 /**
33 * Creates an instance of the adapter factory.
34 * <!-- begin-user-doc -->
35 * <!-- end-user-doc -->
36 * @generated
37 */
38 public FunctionalarchitectureAdapterFactory() {
39 if (modelPackage == null) {
40 modelPackage = FunctionalarchitecturePackage.eINSTANCE;
41 }
42 }
43
44 /**
45 * Returns whether this factory is applicable for the type of the object.
46 * <!-- begin-user-doc -->
47 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
48 * <!-- end-user-doc -->
49 * @return whether this factory is applicable for the type of the object.
50 * @generated
51 */
52 @Override
53 public boolean isFactoryForType(Object object) {
54 if (object == modelPackage) {
55 return true;
56 }
57 if (object instanceof EObject) {
58 return ((EObject)object).eClass().getEPackage() == modelPackage;
59 }
60 return false;
61 }
62
63 /**
64 * The switch that delegates to the <code>createXXX</code> methods.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @generated
68 */
69 protected FunctionalarchitectureSwitch<Adapter> modelSwitch =
70 new FunctionalarchitectureSwitch<Adapter>() {
71 @Override
72 public Adapter caseFunctionalElement(FunctionalElement object) {
73 return createFunctionalElementAdapter();
74 }
75 @Override
76 public Adapter caseFunctionalArchitectureModel(FunctionalArchitectureModel object) {
77 return createFunctionalArchitectureModelAdapter();
78 }
79 @Override
80 public Adapter caseFunction(Function object) {
81 return createFunctionAdapter();
82 }
83 @Override
84 public Adapter caseFAMTerminator(FAMTerminator object) {
85 return createFAMTerminatorAdapter();
86 }
87 @Override
88 public Adapter caseInformationLink(InformationLink object) {
89 return createInformationLinkAdapter();
90 }
91 @Override
92 public Adapter caseFunctionalInterface(FunctionalInterface object) {
93 return createFunctionalInterfaceAdapter();
94 }
95 @Override
96 public Adapter caseFunctionalInput(FunctionalInput object) {
97 return createFunctionalInputAdapter();
98 }
99 @Override
100 public Adapter caseFunctionalOutput(FunctionalOutput object) {
101 return createFunctionalOutputAdapter();
102 }
103 @Override
104 public Adapter caseFunctionalData(FunctionalData object) {
105 return createFunctionalDataAdapter();
106 }
107 @Override
108 public Adapter defaultCase(EObject object) {
109 return createEObjectAdapter();
110 }
111 };
112
113 /**
114 * Creates an adapter for the <code>target</code>.
115 * <!-- begin-user-doc -->
116 * <!-- end-user-doc -->
117 * @param target the object to adapt.
118 * @return the adapter for the <code>target</code>.
119 * @generated
120 */
121 @Override
122 public Adapter createAdapter(Notifier target) {
123 return modelSwitch.doSwitch((EObject)target);
124 }
125
126
127 /**
128 * Creates a new adapter for an object of class '{@link functionalarchitecture.FunctionalElement <em>Functional Element</em>}'.
129 * <!-- begin-user-doc -->
130 * This default implementation returns null so that we can easily ignore cases;
131 * it's useful to ignore a case when inheritance will catch all the cases anyway.
132 * <!-- end-user-doc -->
133 * @return the new adapter.
134 * @see functionalarchitecture.FunctionalElement
135 * @generated
136 */
137 public Adapter createFunctionalElementAdapter() {
138 return null;
139 }
140
141 /**
142 * Creates a new adapter for an object of class '{@link functionalarchitecture.FunctionalArchitectureModel <em>Functional Architecture Model</em>}'.
143 * <!-- begin-user-doc -->
144 * This default implementation returns null so that we can easily ignore cases;
145 * it's useful to ignore a case when inheritance will catch all the cases anyway.
146 * <!-- end-user-doc -->
147 * @return the new adapter.
148 * @see functionalarchitecture.FunctionalArchitectureModel
149 * @generated
150 */
151 public Adapter createFunctionalArchitectureModelAdapter() {
152 return null;
153 }
154
155 /**
156 * Creates a new adapter for an object of class '{@link functionalarchitecture.Function <em>Function</em>}'.
157 * <!-- begin-user-doc -->
158 * This default implementation returns null so that we can easily ignore cases;
159 * it's useful to ignore a case when inheritance will catch all the cases anyway.
160 * <!-- end-user-doc -->
161 * @return the new adapter.
162 * @see functionalarchitecture.Function
163 * @generated
164 */
165 public Adapter createFunctionAdapter() {
166 return null;
167 }
168
169 /**
170 * Creates a new adapter for an object of class '{@link functionalarchitecture.FAMTerminator <em>FAM Terminator</em>}'.
171 * <!-- begin-user-doc -->
172 * This default implementation returns null so that we can easily ignore cases;
173 * it's useful to ignore a case when inheritance will catch all the cases anyway.
174 * <!-- end-user-doc -->
175 * @return the new adapter.
176 * @see functionalarchitecture.FAMTerminator
177 * @generated
178 */
179 public Adapter createFAMTerminatorAdapter() {
180 return null;
181 }
182
183 /**
184 * Creates a new adapter for an object of class '{@link functionalarchitecture.InformationLink <em>Information Link</em>}'.
185 * <!-- begin-user-doc -->
186 * This default implementation returns null so that we can easily ignore cases;
187 * it's useful to ignore a case when inheritance will catch all the cases anyway.
188 * <!-- end-user-doc -->
189 * @return the new adapter.
190 * @see functionalarchitecture.InformationLink
191 * @generated
192 */
193 public Adapter createInformationLinkAdapter() {
194 return null;
195 }
196
197 /**
198 * Creates a new adapter for an object of class '{@link functionalarchitecture.FunctionalInterface <em>Functional Interface</em>}'.
199 * <!-- begin-user-doc -->
200 * This default implementation returns null so that we can easily ignore cases;
201 * it's useful to ignore a case when inheritance will catch all the cases anyway.
202 * <!-- end-user-doc -->
203 * @return the new adapter.
204 * @see functionalarchitecture.FunctionalInterface
205 * @generated
206 */
207 public Adapter createFunctionalInterfaceAdapter() {
208 return null;
209 }
210
211 /**
212 * Creates a new adapter for an object of class '{@link functionalarchitecture.FunctionalInput <em>Functional Input</em>}'.
213 * <!-- begin-user-doc -->
214 * This default implementation returns null so that we can easily ignore cases;
215 * it's useful to ignore a case when inheritance will catch all the cases anyway.
216 * <!-- end-user-doc -->
217 * @return the new adapter.
218 * @see functionalarchitecture.FunctionalInput
219 * @generated
220 */
221 public Adapter createFunctionalInputAdapter() {
222 return null;
223 }
224
225 /**
226 * Creates a new adapter for an object of class '{@link functionalarchitecture.FunctionalOutput <em>Functional Output</em>}'.
227 * <!-- begin-user-doc -->
228 * This default implementation returns null so that we can easily ignore cases;
229 * it's useful to ignore a case when inheritance will catch all the cases anyway.
230 * <!-- end-user-doc -->
231 * @return the new adapter.
232 * @see functionalarchitecture.FunctionalOutput
233 * @generated
234 */
235 public Adapter createFunctionalOutputAdapter() {
236 return null;
237 }
238
239 /**
240 * Creates a new adapter for an object of class '{@link functionalarchitecture.FunctionalData <em>Functional Data</em>}'.
241 * <!-- begin-user-doc -->
242 * This default implementation returns null so that we can easily ignore cases;
243 * it's useful to ignore a case when inheritance will catch all the cases anyway.
244 * <!-- end-user-doc -->
245 * @return the new adapter.
246 * @see functionalarchitecture.FunctionalData
247 * @generated
248 */
249 public Adapter createFunctionalDataAdapter() {
250 return null;
251 }
252
253 /**
254 * Creates a new adapter for the default case.
255 * <!-- begin-user-doc -->
256 * This default implementation returns null.
257 * <!-- end-user-doc -->
258 * @return the new adapter.
259 * @generated
260 */
261 public Adapter createEObjectAdapter() {
262 return null;
263 }
264
265} //FunctionalarchitectureAdapterFactory
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/util/FunctionalarchitectureSwitch.java b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/util/FunctionalarchitectureSwitch.java
new file mode 100644
index 00000000..b481a978
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/ecore-gen/functionalarchitecture/util/FunctionalarchitectureSwitch.java
@@ -0,0 +1,282 @@
1/**
2 */
3package functionalarchitecture.util;
4
5import functionalarchitecture.*;
6import functionalarchitecture.FunctionalInterface;
7
8import org.eclipse.emf.ecore.EObject;
9import org.eclipse.emf.ecore.EPackage;
10
11import org.eclipse.emf.ecore.util.Switch;
12
13/**
14 * <!-- begin-user-doc -->
15 * The <b>Switch</b> for the model's inheritance hierarchy.
16 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
17 * to invoke the <code>caseXXX</code> method for each class of the model,
18 * starting with the actual class of the object
19 * and proceeding up the inheritance hierarchy
20 * until a non-null result is returned,
21 * which is the result of the switch.
22 * <!-- end-user-doc -->
23 * @see functionalarchitecture.FunctionalarchitecturePackage
24 * @generated
25 */
26public class FunctionalarchitectureSwitch<T> extends Switch<T> {
27 /**
28 * The cached model package
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @generated
32 */
33 protected static FunctionalarchitecturePackage modelPackage;
34
35 /**
36 * Creates an instance of the switch.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @generated
40 */
41 public FunctionalarchitectureSwitch() {
42 if (modelPackage == null) {
43 modelPackage = FunctionalarchitecturePackage.eINSTANCE;
44 }
45 }
46
47 /**
48 * Checks whether this is a switch for the given package.
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @param ePackage the package in question.
52 * @return whether this is a switch for the given package.
53 * @generated
54 */
55 @Override
56 protected boolean isSwitchFor(EPackage ePackage) {
57 return ePackage == modelPackage;
58 }
59
60 /**
61 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @return the first non-null result returned by a <code>caseXXX</code> call.
65 * @generated
66 */
67 @Override
68 protected T doSwitch(int classifierID, EObject theEObject) {
69 switch (classifierID) {
70 case FunctionalarchitecturePackage.FUNCTIONAL_ELEMENT: {
71 FunctionalElement functionalElement = (FunctionalElement)theEObject;
72 T result = caseFunctionalElement(functionalElement);
73 if (result == null) result = defaultCase(theEObject);
74 return result;
75 }
76 case FunctionalarchitecturePackage.FUNCTIONAL_ARCHITECTURE_MODEL: {
77 FunctionalArchitectureModel functionalArchitectureModel = (FunctionalArchitectureModel)theEObject;
78 T result = caseFunctionalArchitectureModel(functionalArchitectureModel);
79 if (result == null) result = defaultCase(theEObject);
80 return result;
81 }
82 case FunctionalarchitecturePackage.FUNCTION: {
83 Function function = (Function)theEObject;
84 T result = caseFunction(function);
85 if (result == null) result = caseFunctionalElement(function);
86 if (result == null) result = defaultCase(theEObject);
87 return result;
88 }
89 case FunctionalarchitecturePackage.FAM_TERMINATOR: {
90 FAMTerminator famTerminator = (FAMTerminator)theEObject;
91 T result = caseFAMTerminator(famTerminator);
92 if (result == null) result = defaultCase(theEObject);
93 return result;
94 }
95 case FunctionalarchitecturePackage.INFORMATION_LINK: {
96 InformationLink informationLink = (InformationLink)theEObject;
97 T result = caseInformationLink(informationLink);
98 if (result == null) result = defaultCase(theEObject);
99 return result;
100 }
101 case FunctionalarchitecturePackage.FUNCTIONAL_INTERFACE: {
102 FunctionalInterface functionalInterface = (FunctionalInterface)theEObject;
103 T result = caseFunctionalInterface(functionalInterface);
104 if (result == null) result = defaultCase(theEObject);
105 return result;
106 }
107 case FunctionalarchitecturePackage.FUNCTIONAL_INPUT: {
108 FunctionalInput functionalInput = (FunctionalInput)theEObject;
109 T result = caseFunctionalInput(functionalInput);
110 if (result == null) result = caseFunctionalData(functionalInput);
111 if (result == null) result = defaultCase(theEObject);
112 return result;
113 }
114 case FunctionalarchitecturePackage.FUNCTIONAL_OUTPUT: {
115 FunctionalOutput functionalOutput = (FunctionalOutput)theEObject;
116 T result = caseFunctionalOutput(functionalOutput);
117 if (result == null) result = caseFunctionalData(functionalOutput);
118 if (result == null) result = defaultCase(theEObject);
119 return result;
120 }
121 case FunctionalarchitecturePackage.FUNCTIONAL_DATA: {
122 FunctionalData functionalData = (FunctionalData)theEObject;
123 T result = caseFunctionalData(functionalData);
124 if (result == null) result = defaultCase(theEObject);
125 return result;
126 }
127 default: return defaultCase(theEObject);
128 }
129 }
130
131 /**
132 * Returns the result of interpreting the object as an instance of '<em>Functional Element</em>'.
133 * <!-- begin-user-doc -->
134 * This implementation returns null;
135 * returning a non-null result will terminate the switch.
136 * <!-- end-user-doc -->
137 * @param object the target of the switch.
138 * @return the result of interpreting the object as an instance of '<em>Functional Element</em>'.
139 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
140 * @generated
141 */
142 public T caseFunctionalElement(FunctionalElement object) {
143 return null;
144 }
145
146 /**
147 * Returns the result of interpreting the object as an instance of '<em>Functional Architecture Model</em>'.
148 * <!-- begin-user-doc -->
149 * This implementation returns null;
150 * returning a non-null result will terminate the switch.
151 * <!-- end-user-doc -->
152 * @param object the target of the switch.
153 * @return the result of interpreting the object as an instance of '<em>Functional Architecture Model</em>'.
154 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
155 * @generated
156 */
157 public T caseFunctionalArchitectureModel(FunctionalArchitectureModel object) {
158 return null;
159 }
160
161 /**
162 * Returns the result of interpreting the object as an instance of '<em>Function</em>'.
163 * <!-- begin-user-doc -->
164 * This implementation returns null;
165 * returning a non-null result will terminate the switch.
166 * <!-- end-user-doc -->
167 * @param object the target of the switch.
168 * @return the result of interpreting the object as an instance of '<em>Function</em>'.
169 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
170 * @generated
171 */
172 public T caseFunction(Function object) {
173 return null;
174 }
175
176 /**
177 * Returns the result of interpreting the object as an instance of '<em>FAM Terminator</em>'.
178 * <!-- begin-user-doc -->
179 * This implementation returns null;
180 * returning a non-null result will terminate the switch.
181 * <!-- end-user-doc -->
182 * @param object the target of the switch.
183 * @return the result of interpreting the object as an instance of '<em>FAM Terminator</em>'.
184 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
185 * @generated
186 */
187 public T caseFAMTerminator(FAMTerminator object) {
188 return null;
189 }
190
191 /**
192 * Returns the result of interpreting the object as an instance of '<em>Information Link</em>'.
193 * <!-- begin-user-doc -->
194 * This implementation returns null;
195 * returning a non-null result will terminate the switch.
196 * <!-- end-user-doc -->
197 * @param object the target of the switch.
198 * @return the result of interpreting the object as an instance of '<em>Information Link</em>'.
199 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
200 * @generated
201 */
202 public T caseInformationLink(InformationLink object) {
203 return null;
204 }
205
206 /**
207 * Returns the result of interpreting the object as an instance of '<em>Functional Interface</em>'.
208 * <!-- begin-user-doc -->
209 * This implementation returns null;
210 * returning a non-null result will terminate the switch.
211 * <!-- end-user-doc -->
212 * @param object the target of the switch.
213 * @return the result of interpreting the object as an instance of '<em>Functional Interface</em>'.
214 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
215 * @generated
216 */
217 public T caseFunctionalInterface(FunctionalInterface object) {
218 return null;
219 }
220
221 /**
222 * Returns the result of interpreting the object as an instance of '<em>Functional Input</em>'.
223 * <!-- begin-user-doc -->
224 * This implementation returns null;
225 * returning a non-null result will terminate the switch.
226 * <!-- end-user-doc -->
227 * @param object the target of the switch.
228 * @return the result of interpreting the object as an instance of '<em>Functional Input</em>'.
229 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
230 * @generated
231 */
232 public T caseFunctionalInput(FunctionalInput object) {
233 return null;
234 }
235
236 /**
237 * Returns the result of interpreting the object as an instance of '<em>Functional Output</em>'.
238 * <!-- begin-user-doc -->
239 * This implementation returns null;
240 * returning a non-null result will terminate the switch.
241 * <!-- end-user-doc -->
242 * @param object the target of the switch.
243 * @return the result of interpreting the object as an instance of '<em>Functional Output</em>'.
244 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
245 * @generated
246 */
247 public T caseFunctionalOutput(FunctionalOutput object) {
248 return null;
249 }
250
251 /**
252 * Returns the result of interpreting the object as an instance of '<em>Functional Data</em>'.
253 * <!-- begin-user-doc -->
254 * This implementation returns null;
255 * returning a non-null result will terminate the switch.
256 * <!-- end-user-doc -->
257 * @param object the target of the switch.
258 * @return the result of interpreting the object as an instance of '<em>Functional Data</em>'.
259 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
260 * @generated
261 */
262 public T caseFunctionalData(FunctionalData object) {
263 return null;
264 }
265
266 /**
267 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
268 * <!-- begin-user-doc -->
269 * This implementation returns null;
270 * returning a non-null result will terminate the switch, but this is the last case anyway.
271 * <!-- end-user-doc -->
272 * @param object the target of the switch.
273 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
274 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
275 * @generated
276 */
277 @Override
278 public T defaultCase(EObject object) {
279 return null;
280 }
281
282} //FunctionalarchitectureSwitch
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/generator.vqgen b/Domains/Examples/ModelGenExampleFAM_plugin/generator.vqgen
new file mode 100644
index 00000000..9851c9de
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/generator.vqgen
@@ -0,0 +1,2 @@
1genmodel
2"platform:/resource/ModelGenExampleFAM_plugin/model/FamMetamodel.genmodel" \ No newline at end of file
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.aird b/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.aird
new file mode 100644
index 00000000..f6549d91
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.aird
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<viewpoint:DAnalysis xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xmi:id="_qP-bYBsfEeiCWsPLQhSDNA" version="11.1.0.201608251200"/>
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore b/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore
new file mode 100644
index 00000000..d8331ba8
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore
@@ -0,0 +1,69 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="functionalarchitecture" nsURI="http://www.inf.mit.bme.hu/viatrasolver/example/fam"
4 nsPrefix="functionalarchitecture">
5 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
6 <details key="settingDelegates" value="org.eclipse.viatra.query.querybasedfeature"/>
7 </eAnnotations>
8 <eClassifiers xsi:type="ecore:EClass" name="FunctionalElement" abstract="true">
9 <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface"
10 containment="true" eOpposite="#//FunctionalInterface/element"/>
11 <eStructuralFeatures xsi:type="ecore:EReference" name="model" lowerBound="1" eType="#//FunctionalArchitectureModel"
12 volatile="true" transient="true" derived="true">
13 <eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
14 <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.transima.fam.model"/>
15 </eAnnotations>
16 </eStructuralFeatures>
17 <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Function"
18 eOpposite="#//Function/subElements"/>
19 </eClassifiers>
20 <eClassifiers xsi:type="ecore:EClass" name="FunctionalArchitectureModel">
21 <eStructuralFeatures xsi:type="ecore:EReference" name="rootElements" upperBound="-1"
22 eType="#//FunctionalElement" containment="true"/>
23 </eClassifiers>
24 <eClassifiers xsi:type="ecore:EClass" name="Function" eSuperTypes="#//FunctionalElement">
25 <eStructuralFeatures xsi:type="ecore:EReference" name="subElements" upperBound="-1"
26 eType="#//FunctionalElement" containment="true" eOpposite="#//FunctionalElement/parent"/>
27 <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//FunctionType"
28 changeable="false" volatile="true" transient="true" derived="true">
29 <eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
30 <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.transima.fam.type"/>
31 </eAnnotations>
32 </eStructuralFeatures>
33 </eClassifiers>
34 <eClassifiers xsi:type="ecore:EClass" name="FAMTerminator">
35 <eStructuralFeatures xsi:type="ecore:EReference" name="data" eType="#//FunctionalData"
36 eOpposite="#//FunctionalData/terminator"/>
37 </eClassifiers>
38 <eClassifiers xsi:type="ecore:EClass" name="InformationLink">
39 <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//FunctionalOutput"
40 eOpposite="#//FunctionalOutput/outgoingLinks"/>
41 <eStructuralFeatures xsi:type="ecore:EReference" name="to" lowerBound="1" eType="#//FunctionalInput"
42 eOpposite="#//FunctionalInput/IncomingLinks"/>
43 </eClassifiers>
44 <eClassifiers xsi:type="ecore:EClass" name="FunctionalInterface">
45 <eStructuralFeatures xsi:type="ecore:EReference" name="data" upperBound="-1" eType="#//FunctionalData"
46 containment="true" eOpposite="#//FunctionalData/interface"/>
47 <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="#//FunctionalElement"
48 eOpposite="#//FunctionalElement/interface"/>
49 </eClassifiers>
50 <eClassifiers xsi:type="ecore:EClass" name="FunctionalInput" eSuperTypes="#//FunctionalData">
51 <eStructuralFeatures xsi:type="ecore:EReference" name="IncomingLinks" upperBound="-1"
52 eType="#//InformationLink" eOpposite="#//InformationLink/to"/>
53 </eClassifiers>
54 <eClassifiers xsi:type="ecore:EClass" name="FunctionalOutput" eSuperTypes="#//FunctionalData">
55 <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingLinks" upperBound="-1"
56 eType="#//InformationLink" containment="true" eOpposite="#//InformationLink/from"/>
57 </eClassifiers>
58 <eClassifiers xsi:type="ecore:EClass" name="FunctionalData" abstract="true">
59 <eStructuralFeatures xsi:type="ecore:EReference" name="terminator" eType="#//FAMTerminator"
60 containment="true" eOpposite="#//FAMTerminator/data"/>
61 <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface"
62 eOpposite="#//FunctionalInterface/data"/>
63 </eClassifiers>
64 <eClassifiers xsi:type="ecore:EEnum" name="FunctionType">
65 <eLiterals name="Root"/>
66 <eLiterals name="Intermediate" value="1"/>
67 <eLiterals name="Leaf" value="2"/>
68 </eClassifiers>
69</ecore:EPackage>
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.genmodel b/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.genmodel
new file mode 100644
index 00000000..9d89c145
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.genmodel
@@ -0,0 +1,48 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
3 xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/ModelGenExampleFAM_plugin/ecore-gen" modelPluginID="ModelGenExampleFAM_plugin"
4 modelName="FamMetamodel" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
5 importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
6 operationReflection="true" importOrganizing="true">
7 <foreignModel>FamMetamodel.ecore</foreignModel>
8 <genPackages prefix="Functionalarchitecture" disposableProviderFactory="true" ecorePackage="FamMetamodel.ecore#/">
9 <genEnums typeSafeEnumCompatible="false" ecoreEnum="FamMetamodel.ecore#//FunctionType">
10 <genEnumLiterals ecoreEnumLiteral="FamMetamodel.ecore#//FunctionType/Root"/>
11 <genEnumLiterals ecoreEnumLiteral="FamMetamodel.ecore#//FunctionType/Intermediate"/>
12 <genEnumLiterals ecoreEnumLiteral="FamMetamodel.ecore#//FunctionType/Leaf"/>
13 </genEnums>
14 <genClasses image="false" ecoreClass="FamMetamodel.ecore#//FunctionalElement">
15 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FamMetamodel.ecore#//FunctionalElement/interface"/>
16 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FamMetamodel.ecore#//FunctionalElement/model"/>
17 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference FamMetamodel.ecore#//FunctionalElement/parent"/>
18 </genClasses>
19 <genClasses ecoreClass="FamMetamodel.ecore#//FunctionalArchitectureModel">
20 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FamMetamodel.ecore#//FunctionalArchitectureModel/rootElements"/>
21 </genClasses>
22 <genClasses ecoreClass="FamMetamodel.ecore#//Function">
23 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FamMetamodel.ecore#//Function/subElements"/>
24 <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute FamMetamodel.ecore#//Function/type"/>
25 </genClasses>
26 <genClasses ecoreClass="FamMetamodel.ecore#//FAMTerminator">
27 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference FamMetamodel.ecore#//FAMTerminator/data"/>
28 </genClasses>
29 <genClasses ecoreClass="FamMetamodel.ecore#//InformationLink">
30 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference FamMetamodel.ecore#//InformationLink/from"/>
31 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FamMetamodel.ecore#//InformationLink/to"/>
32 </genClasses>
33 <genClasses ecoreClass="FamMetamodel.ecore#//FunctionalInterface">
34 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FamMetamodel.ecore#//FunctionalInterface/data"/>
35 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference FamMetamodel.ecore#//FunctionalInterface/element"/>
36 </genClasses>
37 <genClasses ecoreClass="FamMetamodel.ecore#//FunctionalInput">
38 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FamMetamodel.ecore#//FunctionalInput/IncomingLinks"/>
39 </genClasses>
40 <genClasses ecoreClass="FamMetamodel.ecore#//FunctionalOutput">
41 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FamMetamodel.ecore#//FunctionalOutput/outgoingLinks"/>
42 </genClasses>
43 <genClasses image="false" ecoreClass="FamMetamodel.ecore#//FunctionalData">
44 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FamMetamodel.ecore#//FunctionalData/terminator"/>
45 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference FamMetamodel.ecore#//FunctionalData/interface"/>
46 </genClasses>
47 </genPackages>
48</genmodel:GenModel>
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/model/FunctionalArchitectureModel.xmi b/Domains/Examples/ModelGenExampleFAM_plugin/model/FunctionalArchitectureModel.xmi
new file mode 100644
index 00000000..59935a2c
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/model/FunctionalArchitectureModel.xmi
@@ -0,0 +1,4 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<functionalarchitecture:FunctionalArchitectureModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functionalarchitecture="http://www.inf.mit.bme.hu/viatrasolver/example/fam"
4 xsi:schemaLocation="http://www.inf.mit.bme.hu/viatrasolver/example/fam FamMetamodel.ecore"/>
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/output/.gitignore b/Domains/Examples/ModelGenExampleFAM_plugin/output/.gitignore
new file mode 100644
index 00000000..a3a0c8b5
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/output/.gitignore
@@ -0,0 +1,2 @@
1*
2!.gitignore \ No newline at end of file
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/plugin.properties b/Domains/Examples/ModelGenExampleFAM_plugin/plugin.properties
new file mode 100644
index 00000000..2b140c6a
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/plugin.properties
@@ -0,0 +1,4 @@
1#
2
3pluginName = FamMetamodel Model
4providerName = www.example.org
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml b/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml
new file mode 100644
index 00000000..d68d0328
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml
@@ -0,0 +1,27 @@
1<?xml version="1.0" encoding="UTF-8"?><plugin>
2 <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.transima.fam.model" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features">
3 <wellbehaving-derived-feature classifier-name="FunctionalElement" feature-name="model" package-nsUri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/>
4 </extension>
5 <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.transima.fam.type" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features">
6 <wellbehaving-derived-feature classifier-name="Function" feature-name="type" package-nsUri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/>
7 </extension>
8 <extension id="hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification">
9 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns" id="hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns">
10 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.terminatorAndInformation"/>
11 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.type"/>
12 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.rootElements"/>
13 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.parent"/>
14 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.model"/>
15 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasRoot"/>
16 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasInt"/>
17 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasLeaf"/>
18 </group>
19 </extension>
20 <extension point="org.eclipse.emf.ecore.generated_package">
21 <!-- @generated FamMetamodel -->
22 <package
23 uri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"
24 class="functionalarchitecture.FunctionalarchitecturePackage"
25 genModel="model/FamMetamodel.genmodel"/>
26 </extension>
27</plugin>
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/src/hu/bme/mit/inf/dslreasoner/domains/transima/fam/FamPatterns.vql b/Domains/Examples/ModelGenExampleFAM_plugin/src/hu/bme/mit/inf/dslreasoner/domains/transima/fam/FamPatterns.vql
new file mode 100644
index 00000000..f0e48d42
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/src/hu/bme/mit/inf/dslreasoner/domains/transima/fam/FamPatterns.vql
@@ -0,0 +1,114 @@
1package hu.bme.mit.inf.dslreasoner.domains.transima.fam
2
3import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam"
4
5@Constraint(message="terminatorAndInformation", severity="error", key={T})
6pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = {
7 FunctionalOutput.outgoingLinks(Out,I);
8 FunctionalOutput.terminator(Out,T);
9} or {
10 InformationLink.to(I,In);
11 FunctionalInput.terminator(In,T);
12}
13
14@QueryBasedFeature
15pattern type(This : Function, Target : FunctionType) = {
16 find rootElements(_Model, This);
17 Target == FunctionType::Root;
18} or {
19 neg find parent(_Child, This);
20 neg find rootElements(_Model, This);
21 Target == FunctionType::Leaf;
22} or {
23 find parent(This, _Par);
24 find parent(_Child, This);
25 Target == FunctionType::Intermediate;
26}
27
28pattern rootElements(Model: FunctionalArchitectureModel, Root : Function) = {
29 FunctionalArchitectureModel.rootElements(Model, Root);
30}
31
32pattern parent(Func : Function, Par : Function) = {
33 Function.parent(Func, Par);
34}
35
36@QueryBasedFeature
37pattern model(This:FunctionalElement, Target: FunctionalArchitectureModel) {
38 FunctionalElement(This);
39 FunctionalArchitectureModel(Target);
40}
41
42pattern hasRoot(F : Function) {
43 find rootElements(_Model, F);
44}
45pattern hasInt(F : Function) {
46 neg find parent(_Child, F);
47 neg find rootElements(_Model, F);
48}
49pattern hasLeaf(F : Function) {
50 find parent(F, _Par);
51 find parent(_Child, F);
52}
53/*
54@Constraint(message="noRoot", severity="error", key={fam})
55pattern noRoot(fam: FunctionalArchitectureModel) {
56 FunctionalArchitectureModel(fam);
57 neg find hasRoot(_);
58}
59@Constraint(message="noIntermediate", severity="error", key={fam})
60pattern noInt(fam: FunctionalArchitectureModel) {
61 FunctionalArchitectureModel(fam);
62 neg find hasInt(_);
63}
64@Constraint(message="noLeaf", severity="error", key={fam})
65pattern noLeaf(fam: FunctionalArchitectureModel) {
66 FunctionalArchitectureModel(fam);
67 neg find hasLeaf(_);
68}*/
69
70
71/*
72@QueryBasedFeature
73pattern model(This : FunctionalElement, Target : FunctionalArchitectureModel) = {
74 find parent+(This, Parent);
75 find rootElements(Target, Parent);
76} or {
77 find rootElements(Target, This);
78}
79
80pattern interfaceData(FI : FunctionalInterface, FD : FunctionalData) = {
81 FunctionalInterface.data(FI, FD);
82}
83
84@QueryBasedFeature
85pattern inputs(This : FunctionalInterface, Target : FunctionalInput) = {
86 find interfaceData(This, Target);
87}
88
89@QueryBasedFeature
90pattern outputs(This : FunctionalInterface, Target : FunctionalOutput) = {
91 find interfaceData(This, Target);
92}
93
94@QueryBasedFeature
95pattern outgoingLinks(This : FunctionalElement, Target : InformationLink) = {
96 FunctionalElement.interface.outputs(This, Output);
97 InformationLink.from(Target, Output);
98}
99
100@QueryBasedFeature
101pattern incomingLinks(This : FunctionalElement, Target : InformationLink) = {
102 FunctionalElement.interface.inputs(This, Input);
103 InformationLink.to(Target, Input);
104}
105
106@QueryBasedFeature
107pattern connects(This : FunctionalElement, Target : FunctionalElement) = {
108 FunctionalElement.outgoingLinks(This,Link);
109 FunctionalElement.incomingLinks(Target,Link);
110}*/
111
112/*pattern frequency(a: Function, b : EInt) {
113 Function.minimumFrequency(a,b);
114}*/
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/vql-gen/hu/bme/mit/inf/dslreasoner/domains/transima/fam/.gitignore b/Domains/Examples/ModelGenExampleFAM_plugin/vql-gen/hu/bme/mit/inf/dslreasoner/domains/transima/fam/.gitignore
new file mode 100644
index 00000000..b35893db
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/vql-gen/hu/bme/mit/inf/dslreasoner/domains/transima/fam/.gitignore
@@ -0,0 +1,18 @@
1/.FamPatterns.java._trace
2/.HasInt.java._trace
3/.HasLeaf.java._trace
4/.HasRoot.java._trace
5/.Model.java._trace
6/.Parent.java._trace
7/.RootElements.java._trace
8/.TerminatorAndInformation.java._trace
9/.Type.java._trace
10/FamPatterns.java
11/HasInt.java
12/HasLeaf.java
13/HasRoot.java
14/Model.java
15/Parent.java
16/RootElements.java
17/TerminatorAndInformation.java
18/Type.java
diff --git a/Domains/Examples/ModelGenExampleFAM_standalone/.project b/Domains/Examples/ModelGenExampleFAM_standalone/.project
new file mode 100644
index 00000000..cac2abc4
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_standalone/.project
@@ -0,0 +1,23 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
3 <name>ModelGenExampleFAM_standalone</name>
4 <comment></comment>
5 <projects>
6 </projects>
7 <buildSpec>
8 <buildCommand>
9 <name>org.eclipse.viatra.query.tooling.ui.projectbuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 <buildCommand>
14 <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
15 <arguments>
16 </arguments>
17 </buildCommand>
18 </buildSpec>
19 <natures>
20 <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
21 <nature>org.eclipse.viatra.query.projectnature</nature>
22 </natures>
23</projectDescription>
diff --git a/Domains/Examples/ModelGenExampleFAM_standalone/FamGeneration.vsconfig b/Domains/Examples/ModelGenExampleFAM_standalone/FamGeneration.vsconfig
new file mode 100644
index 00000000..30e6adfa
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_standalone/FamGeneration.vsconfig
@@ -0,0 +1,25 @@
1import epackage "platform:/resource/ModelGenExampleFAM_standalone/inputs/FamMetamodel.ecore"
2import viatra "platform:/resource/ModelGenExampleFAM_standalone/inputs/FamPatterns.vql"
3
4file LogFile = "platform:/resource/ModelGenExampleFAM/outputs/log.txt"
5generate {
6 metamodel = { package functionalarchitecture }
7 patterns = { package hu.bme.mit.inf.dslreasoner.domains.fam excluding { model } }
8 solver = ViatraSolver
9 scope = {
10 #node = 10
11 }
12
13 config = {
14 runtime = 10000,
15 log-level = normal
16 }
17
18 number = 5
19 runs = 1
20
21 debug = "platform:/resource/ModelGenExampleFAM_standalone/outputs/debug"
22 log = "platform:/resource/ModelGenExampleFAM_standalone/outputs/log.txt"
23 output = "platform:/resource/ModelGenExampleFAM_standalone/outputs/models"
24 statistics = "platform:/resource/ModelGenExampleFAM_standalone/outputs/statistics.csv"
25} \ No newline at end of file
diff --git a/Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamInstance.xmi b/Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamInstance.xmi
new file mode 100644
index 00000000..9e3561d2
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamInstance.xmi
@@ -0,0 +1,12 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<functionalarchitecture:FunctionalArchitectureModel
3 xmi:version="2.0"
4 xmlns:xmi="http://www.omg.org/XMI"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xmlns:functionalarchitecture="http://www.inf.mit.bme.hu/viatrasolver/example/fam"
7 xsi:schemaLocation="http://www.inf.mit.bme.hu/viatrasolver/example/fam FamMetamodel.ecore">
8 <rootElements
9 xsi:type="functionalarchitecture:Function"/>
10 <rootElements
11 xsi:type="functionalarchitecture:Function"/>
12</functionalarchitecture:FunctionalArchitectureModel>
diff --git a/Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamMetamodel.ecore b/Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamMetamodel.ecore
new file mode 100644
index 00000000..00d16fc0
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamMetamodel.ecore
@@ -0,0 +1,52 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="functionalarchitecture" nsURI="http://www.inf.mit.bme.hu/viatrasolver/example/fam" nsPrefix="functionalarchitecture">
3 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
4 <details key="settingDelegates" value="org.eclipse.viatra.query.querybasedfeature"/>
5 </eAnnotations>
6 <eClassifiers xsi:type="ecore:EClass" name="FunctionalElement" abstract="true">
7 <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="//FunctionalInterface" containment="true" eOpposite="//FunctionalInterface/element"/>
8 <eStructuralFeatures xsi:type="ecore:EReference" name="model" lowerBound="1" eType="//FunctionalArchitectureModel" volatile="true" transient="true" derived="true">
9 <eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
10 <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.fam.model"/>
11 </eAnnotations>
12 </eStructuralFeatures>
13 <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="//Function" eOpposite="//Function/subElements"/>
14 </eClassifiers>
15 <eClassifiers xsi:type="ecore:EClass" name="FunctionalArchitectureModel">
16 <eStructuralFeatures xsi:type="ecore:EReference" name="rootElements" upperBound="-1" eType="//FunctionalElement" containment="true"/>
17 </eClassifiers>
18 <eClassifiers xsi:type="ecore:EClass" name="Function" eSuperTypes="//FunctionalElement">
19 <eStructuralFeatures xsi:type="ecore:EReference" name="subElements" upperBound="-1" eType="//FunctionalElement" containment="true" eOpposite="//FunctionalElement/parent"/>
20 <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="//FunctionType" changeable="false" volatile="true" transient="true" derived="true">
21 <eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
22 <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.fam.type"/>
23 </eAnnotations>
24 </eStructuralFeatures>
25 </eClassifiers>
26 <eClassifiers xsi:type="ecore:EClass" name="FAMTerminator">
27 <eStructuralFeatures xsi:type="ecore:EReference" name="data" eType="//FunctionalData" eOpposite="//FunctionalData/terminator"/>
28 </eClassifiers>
29 <eClassifiers xsi:type="ecore:EClass" name="InformationLink">
30 <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="//FunctionalOutput" eOpposite="//FunctionalOutput/outgoingLinks"/>
31 <eStructuralFeatures xsi:type="ecore:EReference" name="to" lowerBound="1" eType="//FunctionalInput" eOpposite="//FunctionalInput/IncomingLinks"/>
32 </eClassifiers>
33 <eClassifiers xsi:type="ecore:EClass" name="FunctionalInterface">
34 <eStructuralFeatures xsi:type="ecore:EReference" name="data" upperBound="-1" eType="//FunctionalData" containment="true" eOpposite="//FunctionalData/interface"/>
35 <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="//FunctionalElement" eOpposite="//FunctionalElement/interface"/>
36 </eClassifiers>
37 <eClassifiers xsi:type="ecore:EClass" name="FunctionalInput" eSuperTypes="//FunctionalData">
38 <eStructuralFeatures xsi:type="ecore:EReference" name="IncomingLinks" upperBound="-1" eType="//InformationLink" eOpposite="//InformationLink/to"/>
39 </eClassifiers>
40 <eClassifiers xsi:type="ecore:EClass" name="FunctionalOutput" eSuperTypes="//FunctionalData">
41 <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingLinks" upperBound="-1" eType="//InformationLink" containment="true" eOpposite="//InformationLink/from"/>
42 </eClassifiers>
43 <eClassifiers xsi:type="ecore:EClass" name="FunctionalData" abstract="true">
44 <eStructuralFeatures xsi:type="ecore:EReference" name="terminator" eType="//FAMTerminator" containment="true" eOpposite="//FAMTerminator/data"/>
45 <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="//FunctionalInterface" eOpposite="//FunctionalInterface/data"/>
46 </eClassifiers>
47 <eClassifiers xsi:type="ecore:EEnum" name="FunctionType">
48 <eLiterals name="Root"/>
49 <eLiterals name="Intermediate" value="1"/>
50 <eLiterals name="Leaf" value="2"/>
51 </eClassifiers>
52</ecore:EPackage>
diff --git a/Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamPatterns.vql b/Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamPatterns.vql
new file mode 100644
index 00000000..34394ef6
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamPatterns.vql
@@ -0,0 +1,104 @@
1package hu.bme.mit.inf.dslreasoner.domains.fam
2
3import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam"
4//import epackage "platform:/resource/ModelGenExampleFAM/inputs/FamMetamodel.ecore";
5
6@Constraint(message="terminatorAndInformation", severity="error", key={T})
7pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = {
8 FunctionalOutput.outgoingLinks(Out,I);
9 FunctionalOutput.terminator(Out,T);
10} or {
11 InformationLink.to(I,In);
12 FunctionalInput.terminator(In,T);
13}
14
15@QueryBasedFeature
16pattern type(This : Function, Target : FunctionType) = {
17 find rootElements(_Model, This);
18 Target == FunctionType::Root;
19} or {
20 neg find parent(_Child, This);
21 neg find rootElements(_Model, This);
22 Target == FunctionType::Leaf;
23} or {
24 find parent(This, _Par);
25 find parent(_Child, This);
26 Target == FunctionType::Intermediate;
27}
28
29pattern rootElements(Model: FunctionalArchitectureModel, Root : Function) = {
30 FunctionalArchitectureModel.rootElements(Model, Root);
31}
32
33pattern parent(Func : Function, Par : Function) = {
34 Function.parent(Func, Par);
35}
36
37@QueryBasedFeature
38pattern model(This:FunctionalElement, Target: FunctionalArchitectureModel) {
39 FunctionalElement(This);
40 FunctionalArchitectureModel(Target);
41}
42
43/*
44@Constraint(message="noRoot", severity="error", key={fam})
45pattern noRoot(fam: FunctionalArchitectureModel) {
46 FunctionalArchitectureModel(fam);
47 neg find hasRoot(_);
48}
49@Constraint(message="noIntermediate", severity="error", key={fam})
50pattern noInt(fam: FunctionalArchitectureModel) {
51 FunctionalArchitectureModel(fam);
52 neg find hasInt(_);
53}
54@Constraint(message="noLeaf", severity="error", key={fam})
55pattern noLeaf(fam: FunctionalArchitectureModel) {
56 FunctionalArchitectureModel(fam);
57 neg find hasLeaf(_);
58}
59*/
60
61/*
62@QueryBasedFeature
63pattern model(This : FunctionalElement, Target : FunctionalArchitectureModel) = {
64 find parent+(This, Parent);
65 find rootElements(Target, Parent);
66} or {
67 find rootElements(Target, This);
68}
69
70pattern interfaceData(FI : FunctionalInterface, FD : FunctionalData) = {
71 FunctionalInterface.data(FI, FD);
72}
73
74@QueryBasedFeature
75pattern inputs(This : FunctionalInterface, Target : FunctionalInput) = {
76 find interfaceData(This, Target);
77}
78
79@QueryBasedFeature
80pattern outputs(This : FunctionalInterface, Target : FunctionalOutput) = {
81 find interfaceData(This, Target);
82}
83
84@QueryBasedFeature
85pattern outgoingLinks(This : FunctionalElement, Target : InformationLink) = {
86 FunctionalElement.interface.outputs(This, Output);
87 InformationLink.from(Target, Output);
88}
89
90@QueryBasedFeature
91pattern incomingLinks(This : FunctionalElement, Target : InformationLink) = {
92 FunctionalElement.interface.inputs(This, Input);
93 InformationLink.to(Target, Input);
94}
95
96@QueryBasedFeature
97pattern connects(This : FunctionalElement, Target : FunctionalElement) = {
98 FunctionalElement.outgoingLinks(This,Link);
99 FunctionalElement.incomingLinks(Target,Link);
100}*/
101
102/*pattern frequency(a: Function, b : EInt) {
103 Function.minimumFrequency(a,b);
104}*/
diff --git a/Domains/Examples/ModelGenExampleFAM_standalone/outputs/.gitignore b/Domains/Examples/ModelGenExampleFAM_standalone/outputs/.gitignore
new file mode 100644
index 00000000..a3a0c8b5
--- /dev/null
+++ b/Domains/Examples/ModelGenExampleFAM_standalone/outputs/.gitignore
@@ -0,0 +1,2 @@
1*
2!.gitignore \ No newline at end of file