Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormgolubev2012-05-23 02:12:18 -0400
committermgolubev2012-05-23 02:12:18 -0400
commita835d75e5e5642020c4528f203442a1112856ee0 (patch)
treeca2c6d8ee189b611219e22c3ecb2d4ddcfc36d9d /plugins/org.eclipse.gmf.codegen
parent16559682fd39352125bf70231b97c67682d4abf9 (diff)
downloadorg.eclipse.gmf-tooling-a835d75e5e5642020c4528f203442a1112856ee0.tar.gz
org.eclipse.gmf-tooling-a835d75e5e5642020c4528f203442a1112856ee0.tar.xz
org.eclipse.gmf-tooling-a835d75e5e5642020c4528f203442a1112856ee0.zip
[380352] - generator extensions to produce code which can't be generated
with AROUND's
Diffstat (limited to 'plugins/org.eclipse.gmf.codegen')
-rw-r--r--plugins/org.eclipse.gmf.codegen/models/gmfgen.ecore79
-rw-r--r--plugins/org.eclipse.gmf.codegen/models/gmfgen.emf47
-rw-r--r--plugins/org.eclipse.gmf.codegen/models/gmfgen.genmodel30
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GMFGenFactory.java27
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GMFGenPackage.java511
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenCustomGeneratorExtension.java141
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenCustomTemplateInput.java49
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenEditorGenerator.java18
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenFixedInputsTemplateInvocation.java43
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenTemplateInvocation.java65
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenTemplateInvocationBase.java93
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenFactoryImpl.java33
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenPackageImpl.java212
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenCustomGeneratorExtensionImpl.java412
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenEditorGeneratorImpl.java28
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenFixedInputsTemplateInvocationImpl.java237
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenTemplateInvocationBaseImpl.java249
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenTemplateInvocationImpl.java204
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenAdapterFactory.java90
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenSwitch.java109
-rw-r--r--plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/internal/codegen/util/GMFGenConfig.java17
21 files changed, 2669 insertions, 25 deletions
diff --git a/plugins/org.eclipse.gmf.codegen/models/gmfgen.ecore b/plugins/org.eclipse.gmf.codegen/models/gmfgen.ecore
index fc98d5577..4a7426d07 100644
--- a/plugins/org.eclipse.gmf.codegen/models/gmfgen.ecore
+++ b/plugins/org.eclipse.gmf.codegen/models/gmfgen.ecore
@@ -1,8 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<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="gmfgen"
- nsURI="http://www.eclipse.org/gmf/2009/GenModel" nsPrefix="gmfgen">
+<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="gmfgen" nsURI="http://www.eclipse.org/gmf/2009/GenModel" nsPrefix="gmfgen">
<eAnnotations source="http://www.eclipse.org/emf/2004/EmfaticAnnotationMap">
<details key="constraints" value="http://www.eclipse.org/gmf/2005/constraints"/>
<details key="meta" value="http://www.eclipse.org/gmf/2005/constraints/meta"/>
@@ -97,6 +95,12 @@
<details key="documentation" value="The target directory for generated editor code. Similar to EMF's GenModel#editorDirectory"/>
</eAnnotations>
</eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extensions" upperBound="-1"
+ eType="#//GenCustomGeneratorExtension" containment="true" eOpposite="#//GenCustomGeneratorExtension/generator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Custom extensions for this generator"/>
+ </eAnnotations>
+ </eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GenDiagram" eSuperTypes="#//GenContainerBase #//PackageNames #//ProviderClassNames #//LinkConstraints #//EditPartCandies #//EditorCandies #//Shortcuts #//BatchValidation #//MeasurementUnit">
<eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
@@ -2367,4 +2371,71 @@
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operationType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="oclExpression" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCustomGeneratorExtension" eSuperTypes="#//GenCustomTemplateInput">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="generator" lowerBound="1"
+ eType="#//GenEditorGenerator" changeable="false" volatile="true" transient="true"
+ derived="true" eOpposite="#//GenEditorGenerator/extensions"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="User friendly name for this extension, used only in UI"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fromCustomBridge" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Reconciler should try to preserve the contents if set to true"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rootInput" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Root input element for custom template invocations. GenEditorGenerator single instance will be assumed if not set"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="invocations" upperBound="-1"
+ eType="#//GenTemplateInvocationBase" containment="true" eOpposite="#//GenTemplateInvocationBase/extension"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCustomTemplateInput" abstract="true"
+ interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="oclType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="OCL Type for this input, if not set generator will try to compute it"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTemplateInvocationBase" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extension" lowerBound="1"
+ eType="#//GenCustomGeneratorExtension" changeable="false" volatile="true"
+ transient="true" derived="true" eOpposite="#//GenCustomGeneratorExtension/invocations"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="User friendly description for this invocation, used only in UI"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="templateFqn" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="FQN of xPand template to invoke in the standard form of abc::def::TemplateName#rootExpand"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTemplateInvocation" eSuperTypes="#//GenTemplateInvocationBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputs" upperBound="-1"
+ eType="#//GenCustomTemplateInput">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of referenced inputs for this invocation, "/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="oclExpression" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="OCL expression to be executed against the set of other inputs to compute the inputs for template"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFixedInputsTemplateInvocation" eSuperTypes="#//GenTemplateInvocationBase #//GenCustomTemplateInput">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="fixedInputs" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Predefined set of input elements for template. &#xA;&#x9;&#x9;Due to reconciling it normally makes sense only for local links inside the same extension or &#xA;&#x9;&#x9;for extensions created by custom bridge extension (self.extension.fromCustomBridge = true)"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
</ecore:EPackage>
diff --git a/plugins/org.eclipse.gmf.codegen/models/gmfgen.emf b/plugins/org.eclipse.gmf.codegen/models/gmfgen.emf
index dcdcd6195..9b3353180 100644
--- a/plugins/org.eclipse.gmf.codegen/models/gmfgen.emf
+++ b/plugins/org.eclipse.gmf.codegen/models/gmfgen.emf
@@ -60,6 +60,10 @@ class GenEditorGenerator {
val GenContextMenu[*] contextMenus; // XXX perhaps, as GenPlugin attribute instead?
@genmodel(documentation="The target directory for generated editor code. Similar to EMF's GenModel#editorDirectory")
attr String pluginDirectory;
+
+ @genmodel(documentation="Custom extensions for this generator")
+ val GenCustomGeneratorExtension[*]#generator extensions;
+
}
@constraints(ocl="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Diagram')", description="'Diagram Runtime Class' must be a notation::Diagram or sub-class")
@@ -1646,3 +1650,46 @@ class GenVisualEffect extends CustomBehaviour {
op String getOclExpressionString();
op ecore.EClassifier getOperationRuntimeType();
}
+
+class GenCustomGeneratorExtension extends GenCustomTemplateInput {
+ readonly volatile transient derived ref GenEditorGenerator[1]#extensions generator;
+
+ @genmodel(documentation="User friendly name for this extension, used only in UI")
+ attr String name;
+ @genmodel(documentation="Reconciler should try to preserve the contents if set to true")
+ attr boolean fromCustomBridge = false;
+
+ @genmodel(documentation="Root input element for custom template invocations. GenEditorGenerator single instance will be assumed if not set")
+ ref ecore.EObject[?] rootInput;
+
+ val GenTemplateInvocationBase[*]#extension invocations;
+}
+
+abstract interface GenCustomTemplateInput {
+ @genmodel(documentation="OCL Type for this input, if not set generator will try to compute it")
+ attr String oclType;
+}
+
+abstract class GenTemplateInvocationBase {
+ readonly volatile transient derived ref GenCustomGeneratorExtension[1]#invocations extension;
+
+ @genmodel(documentation="User friendly description for this invocation, used only in UI")
+ attr String description;
+ @genmodel(documentation="FQN of xPand template to invoke in the standard form of abc::def::TemplateName#rootExpand")
+ attr String templateFqn;
+}
+
+class GenTemplateInvocation extends GenTemplateInvocationBase {
+ @genmodel(documentation="Set of referenced inputs for this invocation, ")
+ ref GenCustomTemplateInput[*] inputs;
+ @genmodel(documentation="OCL expression to be executed against the set of other inputs to compute the inputs for template")
+ attr String oclExpression;
+}
+
+class GenFixedInputsTemplateInvocation extends GenTemplateInvocationBase, GenCustomTemplateInput {
+ @genmodel(documentation="Predefined set of input elements for template.
+ Due to reconciling it normally makes sense only for local links inside the same extension or
+ for extensions created by custom bridge extension (self.extension.fromCustomBridge = true)")
+ ref ecore.EObject[*] fixedInputs;
+}
+
diff --git a/plugins/org.eclipse.gmf.codegen/models/gmfgen.genmodel b/plugins/org.eclipse.gmf.codegen/models/gmfgen.genmodel
index 36e62f646..92148e663 100644
--- a/plugins/org.eclipse.gmf.codegen/models/gmfgen.genmodel
+++ b/plugins/org.eclipse.gmf.codegen/models/gmfgen.genmodel
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0"
- xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
- xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.gmf.codegen/src"
- creationIcons="false" editorDirectory="/org.eclipse.gmf.codegen.edit/src" modelPluginID="org.eclipse.gmf.codegen"
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.gmf.codegen/src" creationIcons="false"
+ editorDirectory="/org.eclipse.gmf.codegen.edit/src" modelPluginID="org.eclipse.gmf.codegen"
modelName="GMFGen" editPluginClass="org.eclipse.gmf.codegen.gmfgen.presentation.EditorPlugin"
editorPluginClass="org.eclipse.gmf.codegen.gmfgen.presentation.EditorPlugin" rootImplementsInterface=""
featureMapWrapperInterface="" booleanFlagsField="" importerID="org.eclipse.emf.importer.ecore"
@@ -172,6 +171,7 @@
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gmfgen.ecore#//GenEditorGenerator/contextMenus"/>
<genFeatures createChild="false" propertyDescription="The target directory for generated editor code"
ecoreFeature="ecore:EAttribute gmfgen.ecore#//GenEditorGenerator/pluginDirectory"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gmfgen.ecore#//GenEditorGenerator/extensions"/>
<genOperations ecoreOperation="gmfgen.ecore#//GenEditorGenerator/getAllDomainGenPackages">
<genParameters ecoreParameter="gmfgen.ecore#//GenEditorGenerator/getAllDomainGenPackages/withUsed"/>
</genOperations>
@@ -1065,5 +1065,27 @@
<genOperations ecoreOperation="gmfgen.ecore#//GenVisualEffect/getOclExpressionString"/>
<genOperations ecoreOperation="gmfgen.ecore#//GenVisualEffect/getOperationRuntimeType"/>
</genClasses>
+ <genClasses ecoreClass="gmfgen.ecore#//GenCustomGeneratorExtension">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference gmfgen.ecore#//GenCustomGeneratorExtension/generator"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gmfgen.ecore#//GenCustomGeneratorExtension/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gmfgen.ecore#//GenCustomGeneratorExtension/fromCustomBridge"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference gmfgen.ecore#//GenCustomGeneratorExtension/rootInput"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gmfgen.ecore#//GenCustomGeneratorExtension/invocations"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="gmfgen.ecore#//GenCustomTemplateInput">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gmfgen.ecore#//GenCustomTemplateInput/oclType"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="gmfgen.ecore#//GenTemplateInvocationBase">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference gmfgen.ecore#//GenTemplateInvocationBase/extension"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gmfgen.ecore#//GenTemplateInvocationBase/description"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gmfgen.ecore#//GenTemplateInvocationBase/templateFqn"/>
+ </genClasses>
+ <genClasses ecoreClass="gmfgen.ecore#//GenTemplateInvocation">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference gmfgen.ecore#//GenTemplateInvocation/inputs"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gmfgen.ecore#//GenTemplateInvocation/oclExpression"/>
+ </genClasses>
+ <genClasses ecoreClass="gmfgen.ecore#//GenFixedInputsTemplateInvocation">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference gmfgen.ecore#//GenFixedInputsTemplateInvocation/fixedInputs"/>
+ </genClasses>
</genPackages>
</genmodel:GenModel>
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GMFGenFactory.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GMFGenFactory.java
index 248139131..b166ca051 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GMFGenFactory.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GMFGenFactory.java
@@ -926,6 +926,33 @@ public interface GMFGenFactory extends EFactory {
GenVisualEffect createGenVisualEffect();
/**
+ * Returns a new object of class '<em>Gen Custom Generator Extension</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Gen Custom Generator Extension</em>'.
+ * @generated
+ */
+ GenCustomGeneratorExtension createGenCustomGeneratorExtension();
+
+ /**
+ * Returns a new object of class '<em>Gen Template Invocation</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Gen Template Invocation</em>'.
+ * @generated
+ */
+ GenTemplateInvocation createGenTemplateInvocation();
+
+ /**
+ * Returns a new object of class '<em>Gen Fixed Inputs Template Invocation</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Gen Fixed Inputs Template Invocation</em>'.
+ * @generated
+ */
+ GenFixedInputsTemplateInvocation createGenFixedInputsTemplateInvocation();
+
+ /**
* Returns a new object of class '<em>Value Expression</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GMFGenPackage.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GMFGenPackage.java
index 778dbcf31..d2d03b0f5 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GMFGenPackage.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GMFGenPackage.java
@@ -280,13 +280,22 @@ public interface GMFGenPackage extends EPackage {
int GEN_EDITOR_GENERATOR__PLUGIN_DIRECTORY = 22;
/**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_EDITOR_GENERATOR__EXTENSIONS = 23;
+
+ /**
* The number of structural features of the '<em>Gen Editor Generator</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int GEN_EDITOR_GENERATOR_FEATURE_COUNT = 23;
+ int GEN_EDITOR_GENERATOR_FEATURE_COUNT = 24;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCommonBaseImpl <em>Gen Common Base</em>}' class.
@@ -11122,6 +11131,281 @@ public interface GMFGenPackage extends EPackage {
int GEN_VISUAL_EFFECT_FEATURE_COUNT = CUSTOM_BEHAVIOUR_FEATURE_COUNT + 5;
/**
+ * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomTemplateInput <em>Gen Custom Template Input</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.codegen.gmfgen.GenCustomTemplateInput
+ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenCustomTemplateInput()
+ * @generated
+ */
+ int GEN_CUSTOM_TEMPLATE_INPUT = 143;
+
+ /**
+ * The feature id for the '<em><b>Ocl Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CUSTOM_TEMPLATE_INPUT__OCL_TYPE = 0;
+
+ /**
+ * The number of structural features of the '<em>Gen Custom Template Input</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CUSTOM_TEMPLATE_INPUT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCustomGeneratorExtensionImpl <em>Gen Custom Generator Extension</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.codegen.gmfgen.impl.GenCustomGeneratorExtensionImpl
+ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenCustomGeneratorExtension()
+ * @generated
+ */
+ int GEN_CUSTOM_GENERATOR_EXTENSION = 142;
+
+ /**
+ * The feature id for the '<em><b>Ocl Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CUSTOM_GENERATOR_EXTENSION__OCL_TYPE = GEN_CUSTOM_TEMPLATE_INPUT__OCL_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Generator</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CUSTOM_GENERATOR_EXTENSION__GENERATOR = GEN_CUSTOM_TEMPLATE_INPUT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CUSTOM_GENERATOR_EXTENSION__NAME = GEN_CUSTOM_TEMPLATE_INPUT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>From Custom Bridge</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CUSTOM_GENERATOR_EXTENSION__FROM_CUSTOM_BRIDGE = GEN_CUSTOM_TEMPLATE_INPUT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Root Input</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CUSTOM_GENERATOR_EXTENSION__ROOT_INPUT = GEN_CUSTOM_TEMPLATE_INPUT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Invocations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CUSTOM_GENERATOR_EXTENSION__INVOCATIONS = GEN_CUSTOM_TEMPLATE_INPUT_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Gen Custom Generator Extension</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CUSTOM_GENERATOR_EXTENSION_FEATURE_COUNT = GEN_CUSTOM_TEMPLATE_INPUT_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.GenTemplateInvocationBaseImpl <em>Gen Template Invocation Base</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.codegen.gmfgen.impl.GenTemplateInvocationBaseImpl
+ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenTemplateInvocationBase()
+ * @generated
+ */
+ int GEN_TEMPLATE_INVOCATION_BASE = 144;
+
+ /**
+ * The feature id for the '<em><b>Extension</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_TEMPLATE_INVOCATION_BASE__EXTENSION = 0;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_TEMPLATE_INVOCATION_BASE__DESCRIPTION = 1;
+
+ /**
+ * The feature id for the '<em><b>Template Fqn</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_TEMPLATE_INVOCATION_BASE__TEMPLATE_FQN = 2;
+
+ /**
+ * The number of structural features of the '<em>Gen Template Invocation Base</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_TEMPLATE_INVOCATION_BASE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.GenTemplateInvocationImpl <em>Gen Template Invocation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.codegen.gmfgen.impl.GenTemplateInvocationImpl
+ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenTemplateInvocation()
+ * @generated
+ */
+ int GEN_TEMPLATE_INVOCATION = 145;
+
+ /**
+ * The feature id for the '<em><b>Extension</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_TEMPLATE_INVOCATION__EXTENSION = GEN_TEMPLATE_INVOCATION_BASE__EXTENSION;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_TEMPLATE_INVOCATION__DESCRIPTION = GEN_TEMPLATE_INVOCATION_BASE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Template Fqn</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_TEMPLATE_INVOCATION__TEMPLATE_FQN = GEN_TEMPLATE_INVOCATION_BASE__TEMPLATE_FQN;
+
+ /**
+ * The feature id for the '<em><b>Inputs</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_TEMPLATE_INVOCATION__INPUTS = GEN_TEMPLATE_INVOCATION_BASE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Ocl Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_TEMPLATE_INVOCATION__OCL_EXPRESSION = GEN_TEMPLATE_INVOCATION_BASE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Gen Template Invocation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_TEMPLATE_INVOCATION_FEATURE_COUNT = GEN_TEMPLATE_INVOCATION_BASE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.GenFixedInputsTemplateInvocationImpl <em>Gen Fixed Inputs Template Invocation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.codegen.gmfgen.impl.GenFixedInputsTemplateInvocationImpl
+ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenFixedInputsTemplateInvocation()
+ * @generated
+ */
+ int GEN_FIXED_INPUTS_TEMPLATE_INVOCATION = 146;
+
+ /**
+ * The feature id for the '<em><b>Extension</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__EXTENSION = GEN_TEMPLATE_INVOCATION_BASE__EXTENSION;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__DESCRIPTION = GEN_TEMPLATE_INVOCATION_BASE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Template Fqn</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__TEMPLATE_FQN = GEN_TEMPLATE_INVOCATION_BASE__TEMPLATE_FQN;
+
+ /**
+ * The feature id for the '<em><b>Ocl Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__OCL_TYPE = GEN_TEMPLATE_INVOCATION_BASE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Fixed Inputs</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__FIXED_INPUTS = GEN_TEMPLATE_INVOCATION_BASE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Gen Fixed Inputs Template Invocation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_FIXED_INPUTS_TEMPLATE_INVOCATION_FEATURE_COUNT = GEN_TEMPLATE_INVOCATION_BASE_FEATURE_COUNT + 2;
+
+ /**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.StandardPreferencePages <em>Standard Preference Pages</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -11129,7 +11413,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getStandardPreferencePages()
* @generated
*/
- int STANDARD_PREFERENCE_PAGES = 142;
+ int STANDARD_PREFERENCE_PAGES = 147;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.RulerUnits <em>Ruler Units</em>}' enum.
@@ -11139,7 +11423,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getRulerUnits()
* @generated
*/
- int RULER_UNITS = 143;
+ int RULER_UNITS = 148;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.Routing <em>Routing</em>}' enum.
@@ -11149,7 +11433,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getRouting()
* @generated
*/
- int ROUTING = 144;
+ int ROUTING = 149;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.LineStyle <em>Line Style</em>}' enum.
@@ -11159,7 +11443,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getLineStyle()
* @generated
*/
- int LINE_STYLE = 145;
+ int LINE_STYLE = 150;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.JFaceFont <em>JFace Font</em>}' enum.
@@ -11169,7 +11453,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getJFaceFont()
* @generated
*/
- int JFACE_FONT = 146;
+ int JFACE_FONT = 151;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.FontStyle <em>Font Style</em>}' enum.
@@ -11179,7 +11463,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getFontStyle()
* @generated
*/
- int FONT_STYLE = 147;
+ int FONT_STYLE = 152;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.DiagramColors <em>Diagram Colors</em>}' enum.
@@ -11189,7 +11473,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getDiagramColors()
* @generated
*/
- int DIAGRAM_COLORS = 148;
+ int DIAGRAM_COLORS = 153;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.ProviderPriority <em>Provider Priority</em>}' enum.
@@ -11199,7 +11483,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getProviderPriority()
* @generated
*/
- int PROVIDER_PRIORITY = 149;
+ int PROVIDER_PRIORITY = 154;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.LinkLabelAlignment <em>Link Label Alignment</em>}' enum.
@@ -11209,7 +11493,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getLinkLabelAlignment()
* @generated
*/
- int LINK_LABEL_ALIGNMENT = 150;
+ int LINK_LABEL_ALIGNMENT = 155;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.LabelTextAccessMethod <em>Label Text Access Method</em>}' enum.
@@ -11219,7 +11503,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getLabelTextAccessMethod()
* @generated
*/
- int LABEL_TEXT_ACCESS_METHOD = 151;
+ int LABEL_TEXT_ACCESS_METHOD = 156;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.ViewmapLayoutType <em>Viewmap Layout Type</em>}' enum.
@@ -11229,7 +11513,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getViewmapLayoutType()
* @generated
*/
- int VIEWMAP_LAYOUT_TYPE = 152;
+ int VIEWMAP_LAYOUT_TYPE = 157;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.StandardEntryKind <em>Standard Entry Kind</em>}' enum.
@@ -11239,7 +11523,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getStandardEntryKind()
* @generated
*/
- int STANDARD_ENTRY_KIND = 153;
+ int STANDARD_ENTRY_KIND = 158;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.GenSeverity <em>Gen Severity</em>}' enum.
@@ -11249,7 +11533,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenSeverity()
* @generated
*/
- int GEN_SEVERITY = 154;
+ int GEN_SEVERITY = 159;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.GenLanguage <em>Gen Language</em>}' enum.
@@ -11259,7 +11543,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenLanguage()
* @generated
*/
- int GEN_LANGUAGE = 155;
+ int GEN_LANGUAGE = 160;
/**
@@ -11270,7 +11554,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenNavigatorReferenceType()
* @generated
*/
- int GEN_NAVIGATOR_REFERENCE_TYPE = 156;
+ int GEN_NAVIGATOR_REFERENCE_TYPE = 161;
/**
@@ -11281,7 +11565,7 @@ public interface GMFGenPackage extends EPackage {
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGeneratedType()
* @generated
*/
- int GENERATED_TYPE = 157;
+ int GENERATED_TYPE = 162;
/**
@@ -11548,6 +11832,17 @@ public interface GMFGenPackage extends EPackage {
EAttribute getGenEditorGenerator_PluginDirectory();
/**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator#getExtensions <em>Extensions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Extensions</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator#getExtensions()
+ * @see #getGenEditorGenerator()
+ * @generated
+ */
+ EReference getGenEditorGenerator_Extensions();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram <em>Gen Diagram</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -17952,6 +18247,188 @@ public interface GMFGenPackage extends EPackage {
EAttribute getGenVisualEffect_OclExpression();
/**
+ * Returns the meta object for class '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension <em>Gen Custom Generator Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gen Custom Generator Extension</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension
+ * @generated
+ */
+ EClass getGenCustomGeneratorExtension();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getGenerator <em>Generator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Generator</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getGenerator()
+ * @see #getGenCustomGeneratorExtension()
+ * @generated
+ */
+ EReference getGenCustomGeneratorExtension_Generator();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getName()
+ * @see #getGenCustomGeneratorExtension()
+ * @generated
+ */
+ EAttribute getGenCustomGeneratorExtension_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#isFromCustomBridge <em>From Custom Bridge</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>From Custom Bridge</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#isFromCustomBridge()
+ * @see #getGenCustomGeneratorExtension()
+ * @generated
+ */
+ EAttribute getGenCustomGeneratorExtension_FromCustomBridge();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getRootInput <em>Root Input</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Root Input</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getRootInput()
+ * @see #getGenCustomGeneratorExtension()
+ * @generated
+ */
+ EReference getGenCustomGeneratorExtension_RootInput();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getInvocations <em>Invocations</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Invocations</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getInvocations()
+ * @see #getGenCustomGeneratorExtension()
+ * @generated
+ */
+ EReference getGenCustomGeneratorExtension_Invocations();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomTemplateInput <em>Gen Custom Template Input</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gen Custom Template Input</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenCustomTemplateInput
+ * @generated
+ */
+ EClass getGenCustomTemplateInput();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomTemplateInput#getOclType <em>Ocl Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Ocl Type</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenCustomTemplateInput#getOclType()
+ * @see #getGenCustomTemplateInput()
+ * @generated
+ */
+ EAttribute getGenCustomTemplateInput_OclType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase <em>Gen Template Invocation Base</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gen Template Invocation Base</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase
+ * @generated
+ */
+ EClass getGenTemplateInvocationBase();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase#getExtension <em>Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Extension</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase#getExtension()
+ * @see #getGenTemplateInvocationBase()
+ * @generated
+ */
+ EReference getGenTemplateInvocationBase_Extension();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase#getDescription <em>Description</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Description</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase#getDescription()
+ * @see #getGenTemplateInvocationBase()
+ * @generated
+ */
+ EAttribute getGenTemplateInvocationBase_Description();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase#getTemplateFqn <em>Template Fqn</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Template Fqn</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase#getTemplateFqn()
+ * @see #getGenTemplateInvocationBase()
+ * @generated
+ */
+ EAttribute getGenTemplateInvocationBase_TemplateFqn();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocation <em>Gen Template Invocation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gen Template Invocation</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocation
+ * @generated
+ */
+ EClass getGenTemplateInvocation();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocation#getInputs <em>Inputs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Inputs</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocation#getInputs()
+ * @see #getGenTemplateInvocation()
+ * @generated
+ */
+ EReference getGenTemplateInvocation_Inputs();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocation#getOclExpression <em>Ocl Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Ocl Expression</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocation#getOclExpression()
+ * @see #getGenTemplateInvocation()
+ * @generated
+ */
+ EAttribute getGenTemplateInvocation_OclExpression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.codegen.gmfgen.GenFixedInputsTemplateInvocation <em>Gen Fixed Inputs Template Invocation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gen Fixed Inputs Template Invocation</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenFixedInputsTemplateInvocation
+ * @generated
+ */
+ EClass getGenFixedInputsTemplateInvocation();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.gmf.codegen.gmfgen.GenFixedInputsTemplateInvocation#getFixedInputs <em>Fixed Inputs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Fixed Inputs</em>'.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenFixedInputsTemplateInvocation#getFixedInputs()
+ * @see #getGenFixedInputsTemplateInvocation()
+ * @generated
+ */
+ EReference getGenFixedInputsTemplateInvocation_FixedInputs();
+
+ /**
* Returns the meta object for enum '{@link org.eclipse.gmf.codegen.gmfgen.StandardPreferencePages <em>Standard Preference Pages</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenCustomGeneratorExtension.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenCustomGeneratorExtension.java
new file mode 100644
index 000000000..545efbfb5
--- /dev/null
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenCustomGeneratorExtension.java
@@ -0,0 +1,141 @@
+/**
+ */
+package org.eclipse.gmf.codegen.gmfgen;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Custom Generator Extension</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getGenerator <em>Generator</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#isFromCustomBridge <em>From Custom Bridge</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getRootInput <em>Root Input</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getInvocations <em>Invocations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenCustomGeneratorExtension()
+ * @model
+ * @generated
+ */
+public interface GenCustomGeneratorExtension extends GenCustomTemplateInput {
+ /**
+ * Returns the value of the '<em><b>Generator</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator#getExtensions <em>Extensions</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generator</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Generator</em>' container reference.
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenCustomGeneratorExtension_Generator()
+ * @see org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator#getExtensions
+ * @model opposite="extensions" required="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ GenEditorGenerator getGenerator();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * User friendly name for this extension, used only in UI
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenCustomGeneratorExtension_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>From Custom Bridge</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Reconciler should try to preserve the contents if set to true
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>From Custom Bridge</em>' attribute.
+ * @see #setFromCustomBridge(boolean)
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenCustomGeneratorExtension_FromCustomBridge()
+ * @model default="false"
+ * @generated
+ */
+ boolean isFromCustomBridge();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#isFromCustomBridge <em>From Custom Bridge</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>From Custom Bridge</em>' attribute.
+ * @see #isFromCustomBridge()
+ * @generated
+ */
+ void setFromCustomBridge(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Root Input</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Root input element for custom template invocations. GenEditorGenerator single instance will be assumed if not set
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Root Input</em>' reference.
+ * @see #setRootInput(EObject)
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenCustomGeneratorExtension_RootInput()
+ * @model
+ * @generated
+ */
+ EObject getRootInput();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getRootInput <em>Root Input</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Root Input</em>' reference.
+ * @see #getRootInput()
+ * @generated
+ */
+ void setRootInput(EObject value);
+
+ /**
+ * Returns the value of the '<em><b>Invocations</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase#getExtension <em>Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Invocations</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Invocations</em>' containment reference list.
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenCustomGeneratorExtension_Invocations()
+ * @see org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase#getExtension
+ * @model opposite="extension" containment="true"
+ * @generated
+ */
+ EList<GenTemplateInvocationBase> getInvocations();
+
+} // GenCustomGeneratorExtension
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenCustomTemplateInput.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenCustomTemplateInput.java
new file mode 100644
index 000000000..2dda1c808
--- /dev/null
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenCustomTemplateInput.java
@@ -0,0 +1,49 @@
+/**
+ */
+package org.eclipse.gmf.codegen.gmfgen;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Custom Template Input</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.GenCustomTemplateInput#getOclType <em>Ocl Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenCustomTemplateInput()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface GenCustomTemplateInput extends EObject {
+ /**
+ * Returns the value of the '<em><b>Ocl Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * OCL Type for this input, if not set generator will try to compute it
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Ocl Type</em>' attribute.
+ * @see #setOclType(String)
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenCustomTemplateInput_OclType()
+ * @model
+ * @generated
+ */
+ String getOclType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomTemplateInput#getOclType <em>Ocl Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ocl Type</em>' attribute.
+ * @see #getOclType()
+ * @generated
+ */
+ void setOclType(String value);
+
+} // GenCustomTemplateInput
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenEditorGenerator.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenEditorGenerator.java
index 27ca8a6bc..d641deb80 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenEditorGenerator.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenEditorGenerator.java
@@ -43,6 +43,7 @@ import org.eclipse.emf.ecore.EObject;
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator#getLabelParsers <em>Label Parsers</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator#getContextMenus <em>Context Menus</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator#getPluginDirectory <em>Plugin Directory</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator#getExtensions <em>Extensions</em>}</li>
* </ul>
* </p>
*
@@ -661,6 +662,23 @@ public interface GenEditorGenerator extends EObject {
void setPluginDirectory(String value);
/**
+ * Returns the value of the '<em><b>Extensions</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getGenerator <em>Generator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Custom extensions for this generator
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Extensions</em>' containment reference list.
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenEditorGenerator_Extensions()
+ * @see org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getGenerator
+ * @model opposite="generator" containment="true"
+ * @generated
+ */
+ EList<GenCustomGeneratorExtension> getExtensions();
+
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenFixedInputsTemplateInvocation.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenFixedInputsTemplateInvocation.java
new file mode 100644
index 000000000..db7d72538
--- /dev/null
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenFixedInputsTemplateInvocation.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.eclipse.gmf.codegen.gmfgen;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Fixed Inputs Template Invocation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.GenFixedInputsTemplateInvocation#getFixedInputs <em>Fixed Inputs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenFixedInputsTemplateInvocation()
+ * @model
+ * @generated
+ */
+public interface GenFixedInputsTemplateInvocation extends GenTemplateInvocationBase, GenCustomTemplateInput {
+ /**
+ * Returns the value of the '<em><b>Fixed Inputs</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.EObject}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Predefined set of input elements for template.
+ * Due to reconciling it normally makes sense only for local links inside the same extension or
+ * for extensions created by custom bridge extension (self.extension.fromCustomBridge = true)
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Fixed Inputs</em>' reference list.
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenFixedInputsTemplateInvocation_FixedInputs()
+ * @model
+ * @generated
+ */
+ EList<EObject> getFixedInputs();
+
+} // GenFixedInputsTemplateInvocation
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenTemplateInvocation.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenTemplateInvocation.java
new file mode 100644
index 000000000..bb6293c9d
--- /dev/null
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenTemplateInvocation.java
@@ -0,0 +1,65 @@
+/**
+ */
+package org.eclipse.gmf.codegen.gmfgen;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Template Invocation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocation#getInputs <em>Inputs</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocation#getOclExpression <em>Ocl Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenTemplateInvocation()
+ * @model
+ * @generated
+ */
+public interface GenTemplateInvocation extends GenTemplateInvocationBase {
+ /**
+ * Returns the value of the '<em><b>Inputs</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenCustomTemplateInput}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Set of referenced inputs for this invocation,
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Inputs</em>' reference list.
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenTemplateInvocation_Inputs()
+ * @model
+ * @generated
+ */
+ EList<GenCustomTemplateInput> getInputs();
+
+ /**
+ * Returns the value of the '<em><b>Ocl Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * OCL expression to be executed against the set of other inputs to compute the inputs for template
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Ocl Expression</em>' attribute.
+ * @see #setOclExpression(String)
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenTemplateInvocation_OclExpression()
+ * @model
+ * @generated
+ */
+ String getOclExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocation#getOclExpression <em>Ocl Expression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ocl Expression</em>' attribute.
+ * @see #getOclExpression()
+ * @generated
+ */
+ void setOclExpression(String value);
+
+} // GenTemplateInvocation
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenTemplateInvocationBase.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenTemplateInvocationBase.java
new file mode 100644
index 000000000..7808f8570
--- /dev/null
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GenTemplateInvocationBase.java
@@ -0,0 +1,93 @@
+/**
+ */
+package org.eclipse.gmf.codegen.gmfgen;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Template Invocation Base</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase#getExtension <em>Extension</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase#getTemplateFqn <em>Template Fqn</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenTemplateInvocationBase()
+ * @model abstract="true"
+ * @generated
+ */
+public interface GenTemplateInvocationBase extends EObject {
+ /**
+ * Returns the value of the '<em><b>Extension</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getInvocations <em>Invocations</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Extension</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Extension</em>' container reference.
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenTemplateInvocationBase_Extension()
+ * @see org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension#getInvocations
+ * @model opposite="invocations" required="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ GenCustomGeneratorExtension getExtension();
+
+ /**
+ * Returns the value of the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * User friendly description for this invocation, used only in UI
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenTemplateInvocationBase_Description()
+ * @model
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+ /**
+ * Returns the value of the '<em><b>Template Fqn</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * FQN of xPand template to invoke in the standard form of abc::def::TemplateName#rootExpand
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Template Fqn</em>' attribute.
+ * @see #setTemplateFqn(String)
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenTemplateInvocationBase_TemplateFqn()
+ * @model
+ * @generated
+ */
+ String getTemplateFqn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase#getTemplateFqn <em>Template Fqn</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Template Fqn</em>' attribute.
+ * @see #getTemplateFqn()
+ * @generated
+ */
+ void setTemplateFqn(String value);
+
+} // GenTemplateInvocationBase
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenFactoryImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenFactoryImpl.java
index eb5c44c2c..467ad9b6e 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenFactoryImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenFactoryImpl.java
@@ -162,6 +162,9 @@ public class GMFGenFactoryImpl extends EFactoryImpl implements GMFGenFactory {
case GMFGenPackage.CUSTOM_PARSER: return createCustomParser();
case GMFGenPackage.EXTERNAL_PARSER: return createExternalParser();
case GMFGenPackage.GEN_VISUAL_EFFECT: return createGenVisualEffect();
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION: return createGenCustomGeneratorExtension();
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION: return createGenTemplateInvocation();
+ case GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION: return createGenFixedInputsTemplateInvocation();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
@@ -1282,6 +1285,36 @@ public class GMFGenFactoryImpl extends EFactoryImpl implements GMFGenFactory {
* <!-- end-user-doc -->
* @generated
*/
+ public GenCustomGeneratorExtension createGenCustomGeneratorExtension() {
+ GenCustomGeneratorExtensionImpl genCustomGeneratorExtension = new GenCustomGeneratorExtensionImpl();
+ return genCustomGeneratorExtension;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenTemplateInvocation createGenTemplateInvocation() {
+ GenTemplateInvocationImpl genTemplateInvocation = new GenTemplateInvocationImpl();
+ return genTemplateInvocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenFixedInputsTemplateInvocation createGenFixedInputsTemplateInvocation() {
+ GenFixedInputsTemplateInvocationImpl genFixedInputsTemplateInvocation = new GenFixedInputsTemplateInvocationImpl();
+ return genFixedInputsTemplateInvocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public StandardPreferencePages createStandardPreferencePagesFromString(EDataType eDataType, String initialValue) {
StandardPreferencePages result = StandardPreferencePages.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenPackageImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenPackageImpl.java
index d5525e2f0..39fba249f 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenPackageImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenPackageImpl.java
@@ -1045,6 +1045,41 @@ public class GMFGenPackageImpl extends EPackageImpl implements GMFGenPackage {
* <!-- end-user-doc -->
* @generated
*/
+ private EClass genCustomGeneratorExtensionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genCustomTemplateInputEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genTemplateInvocationBaseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genTemplateInvocationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genFixedInputsTemplateInvocationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
private EEnum standardPreferencePagesEEnum = null;
/**
@@ -1486,6 +1521,15 @@ public class GMFGenPackageImpl extends EPackageImpl implements GMFGenPackage {
* <!-- end-user-doc -->
* @generated
*/
+ public EReference getGenEditorGenerator_Extensions() {
+ return (EReference)getGenEditorGenerator().getEStructuralFeatures().get(23);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EClass getGenDiagram() {
if (genDiagramEClass == null) {
genDiagramEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(GMFGenPackage.eNS_URI).getEClassifiers().get(1);
@@ -7264,6 +7308,174 @@ public class GMFGenPackageImpl extends EPackageImpl implements GMFGenPackage {
* <!-- end-user-doc -->
* @generated
*/
+ public EClass getGenCustomGeneratorExtension() {
+ if (genCustomGeneratorExtensionEClass == null) {
+ genCustomGeneratorExtensionEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(GMFGenPackage.eNS_URI).getEClassifiers().get(158);
+ }
+ return genCustomGeneratorExtensionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGenCustomGeneratorExtension_Generator() {
+ return (EReference)getGenCustomGeneratorExtension().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getGenCustomGeneratorExtension_Name() {
+ return (EAttribute)getGenCustomGeneratorExtension().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getGenCustomGeneratorExtension_FromCustomBridge() {
+ return (EAttribute)getGenCustomGeneratorExtension().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGenCustomGeneratorExtension_RootInput() {
+ return (EReference)getGenCustomGeneratorExtension().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGenCustomGeneratorExtension_Invocations() {
+ return (EReference)getGenCustomGeneratorExtension().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenCustomTemplateInput() {
+ if (genCustomTemplateInputEClass == null) {
+ genCustomTemplateInputEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(GMFGenPackage.eNS_URI).getEClassifiers().get(159);
+ }
+ return genCustomTemplateInputEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getGenCustomTemplateInput_OclType() {
+ return (EAttribute)getGenCustomTemplateInput().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenTemplateInvocationBase() {
+ if (genTemplateInvocationBaseEClass == null) {
+ genTemplateInvocationBaseEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(GMFGenPackage.eNS_URI).getEClassifiers().get(160);
+ }
+ return genTemplateInvocationBaseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGenTemplateInvocationBase_Extension() {
+ return (EReference)getGenTemplateInvocationBase().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getGenTemplateInvocationBase_Description() {
+ return (EAttribute)getGenTemplateInvocationBase().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getGenTemplateInvocationBase_TemplateFqn() {
+ return (EAttribute)getGenTemplateInvocationBase().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenTemplateInvocation() {
+ if (genTemplateInvocationEClass == null) {
+ genTemplateInvocationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(GMFGenPackage.eNS_URI).getEClassifiers().get(161);
+ }
+ return genTemplateInvocationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGenTemplateInvocation_Inputs() {
+ return (EReference)getGenTemplateInvocation().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getGenTemplateInvocation_OclExpression() {
+ return (EAttribute)getGenTemplateInvocation().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenFixedInputsTemplateInvocation() {
+ if (genFixedInputsTemplateInvocationEClass == null) {
+ genFixedInputsTemplateInvocationEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(GMFGenPackage.eNS_URI).getEClassifiers().get(162);
+ }
+ return genFixedInputsTemplateInvocationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGenFixedInputsTemplateInvocation_FixedInputs() {
+ return (EReference)getGenFixedInputsTemplateInvocation().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EEnum getStandardPreferencePages() {
if (standardPreferencePagesEEnum == null) {
standardPreferencePagesEEnum = (EEnum)EPackage.Registry.INSTANCE.getEPackage(GMFGenPackage.eNS_URI).getEClassifiers().get(6);
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenCustomGeneratorExtensionImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenCustomGeneratorExtensionImpl.java
new file mode 100644
index 000000000..b6cc3cd8c
--- /dev/null
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenCustomGeneratorExtensionImpl.java
@@ -0,0 +1,412 @@
+/**
+ */
+package org.eclipse.gmf.codegen.gmfgen.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+import org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Custom Generator Extension</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCustomGeneratorExtensionImpl#getOclType <em>Ocl Type</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCustomGeneratorExtensionImpl#getGenerator <em>Generator</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCustomGeneratorExtensionImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCustomGeneratorExtensionImpl#isFromCustomBridge <em>From Custom Bridge</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCustomGeneratorExtensionImpl#getRootInput <em>Root Input</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCustomGeneratorExtensionImpl#getInvocations <em>Invocations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GenCustomGeneratorExtensionImpl extends EObjectImpl implements GenCustomGeneratorExtension {
+ /**
+ * The default value of the '{@link #getOclType() <em>Ocl Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOclType()
+ * @generated
+ * @ordered
+ */
+ protected static final String OCL_TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOclType() <em>Ocl Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOclType()
+ * @generated
+ * @ordered
+ */
+ protected String oclType = OCL_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isFromCustomBridge() <em>From Custom Bridge</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFromCustomBridge()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FROM_CUSTOM_BRIDGE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFromCustomBridge() <em>From Custom Bridge</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFromCustomBridge()
+ * @generated
+ * @ordered
+ */
+ protected boolean fromCustomBridge = FROM_CUSTOM_BRIDGE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getRootInput() <em>Root Input</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRootInput()
+ * @generated
+ * @ordered
+ */
+ protected EObject rootInput;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenCustomGeneratorExtensionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GMFGenPackage.eINSTANCE.getGenCustomGeneratorExtension();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOclType() {
+ return oclType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOclType(String newOclType) {
+ String oldOclType = oclType;
+ oclType = newOclType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__OCL_TYPE, oldOclType, oclType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenEditorGenerator getGenerator() {
+ // TODO: implement this method to return the 'Generator' container reference
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFromCustomBridge() {
+ return fromCustomBridge;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFromCustomBridge(boolean newFromCustomBridge) {
+ boolean oldFromCustomBridge = fromCustomBridge;
+ fromCustomBridge = newFromCustomBridge;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__FROM_CUSTOM_BRIDGE, oldFromCustomBridge, fromCustomBridge));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject getRootInput() {
+ if (rootInput != null && rootInput.eIsProxy()) {
+ InternalEObject oldRootInput = (InternalEObject)rootInput;
+ rootInput = eResolveProxy(oldRootInput);
+ if (rootInput != oldRootInput) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__ROOT_INPUT, oldRootInput, rootInput));
+ }
+ }
+ return rootInput;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject basicGetRootInput() {
+ return rootInput;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRootInput(EObject newRootInput) {
+ EObject oldRootInput = rootInput;
+ rootInput = newRootInput;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__ROOT_INPUT, oldRootInput, rootInput));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenTemplateInvocationBase> getInvocations() {
+ // TODO: implement this method to return the 'Invocations' containment reference list
+ // Ensure that you remove @generated or mark it @generated NOT
+ // The list is expected to implement org.eclipse.emf.ecore.util.InternalEList and org.eclipse.emf.ecore.EStructuralFeature.Setting
+ // so it's likely that an appropriate subclass of org.eclipse.emf.ecore.util.EcoreEList should be used.
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__INVOCATIONS:
+ return ((InternalEList<?>)getInvocations()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__GENERATOR:
+ return eInternalContainer().eInverseRemove(this, GMFGenPackage.GEN_EDITOR_GENERATOR__EXTENSIONS, GenEditorGenerator.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__OCL_TYPE:
+ return getOclType();
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__GENERATOR:
+ return getGenerator();
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__NAME:
+ return getName();
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__FROM_CUSTOM_BRIDGE:
+ return isFromCustomBridge();
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__ROOT_INPUT:
+ if (resolve) return getRootInput();
+ return basicGetRootInput();
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__INVOCATIONS:
+ return getInvocations();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__OCL_TYPE:
+ setOclType((String)newValue);
+ return;
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__NAME:
+ setName((String)newValue);
+ return;
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__FROM_CUSTOM_BRIDGE:
+ setFromCustomBridge((Boolean)newValue);
+ return;
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__ROOT_INPUT:
+ setRootInput((EObject)newValue);
+ return;
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__INVOCATIONS:
+ getInvocations().clear();
+ getInvocations().addAll((Collection<? extends GenTemplateInvocationBase>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__OCL_TYPE:
+ setOclType(OCL_TYPE_EDEFAULT);
+ return;
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__FROM_CUSTOM_BRIDGE:
+ setFromCustomBridge(FROM_CUSTOM_BRIDGE_EDEFAULT);
+ return;
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__ROOT_INPUT:
+ setRootInput((EObject)null);
+ return;
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__INVOCATIONS:
+ getInvocations().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__OCL_TYPE:
+ return OCL_TYPE_EDEFAULT == null ? oclType != null : !OCL_TYPE_EDEFAULT.equals(oclType);
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__GENERATOR:
+ return getGenerator() != null;
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__FROM_CUSTOM_BRIDGE:
+ return fromCustomBridge != FROM_CUSTOM_BRIDGE_EDEFAULT;
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__ROOT_INPUT:
+ return rootInput != null;
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__INVOCATIONS:
+ return !getInvocations().isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (oclType: ");
+ result.append(oclType);
+ result.append(", name: ");
+ result.append(name);
+ result.append(", fromCustomBridge: ");
+ result.append(fromCustomBridge);
+ result.append(')');
+ return result.toString();
+ }
+
+} //GenCustomGeneratorExtensionImpl
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenEditorGeneratorImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenEditorGeneratorImpl.java
index 5982120fd..3d62e1d2e 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenEditorGeneratorImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenEditorGeneratorImpl.java
@@ -29,6 +29,7 @@ import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
import org.eclipse.gmf.codegen.gmfgen.GenApplication;
import org.eclipse.gmf.codegen.gmfgen.GenAuditRoot;
import org.eclipse.gmf.codegen.gmfgen.GenContextMenu;
+import org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension;
import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
import org.eclipse.gmf.codegen.gmfgen.GenDiagramUpdater;
import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
@@ -70,6 +71,7 @@ import org.eclipse.gmf.codegen.gmfgen.GenPropertySheet;
* <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenEditorGeneratorImpl#getLabelParsers <em>Label Parsers</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenEditorGeneratorImpl#getContextMenus <em>Context Menus</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenEditorGeneratorImpl#getPluginDirectory <em>Plugin Directory</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenEditorGeneratorImpl#getExtensions <em>Extensions</em>}</li>
* </ul>
* </p>
*
@@ -1226,6 +1228,19 @@ public class GenEditorGeneratorImpl extends EObjectImpl implements GenEditorGene
eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_EDITOR_GENERATOR__PLUGIN_DIRECTORY, oldPluginDirectory, pluginDirectory));
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenCustomGeneratorExtension> getExtensions() {
+ // TODO: implement this method to return the 'Extensions' containment reference list
+ // Ensure that you remove @generated or mark it @generated NOT
+ // The list is expected to implement org.eclipse.emf.ecore.util.InternalEList and org.eclipse.emf.ecore.EStructuralFeature.Setting
+ // so it's likely that an appropriate subclass of org.eclipse.emf.ecore.util.EcoreEList should be used.
+ throw new UnsupportedOperationException();
+ }
+
public String getPluginDirectory() {
String value = getPluginDirectoryGen();
if (GenCommonBaseImpl.isEmpty(value)) {
@@ -1369,6 +1384,8 @@ public class GenEditorGeneratorImpl extends EObjectImpl implements GenEditorGene
return basicSetLabelParsers(null, msgs);
case GMFGenPackage.GEN_EDITOR_GENERATOR__CONTEXT_MENUS:
return ((InternalEList<?>)getContextMenus()).basicRemove(otherEnd, msgs);
+ case GMFGenPackage.GEN_EDITOR_GENERATOR__EXTENSIONS:
+ return ((InternalEList<?>)getExtensions()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -1428,6 +1445,8 @@ public class GenEditorGeneratorImpl extends EObjectImpl implements GenEditorGene
return getContextMenus();
case GMFGenPackage.GEN_EDITOR_GENERATOR__PLUGIN_DIRECTORY:
return getPluginDirectory();
+ case GMFGenPackage.GEN_EDITOR_GENERATOR__EXTENSIONS:
+ return getExtensions();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -1511,6 +1530,10 @@ public class GenEditorGeneratorImpl extends EObjectImpl implements GenEditorGene
case GMFGenPackage.GEN_EDITOR_GENERATOR__PLUGIN_DIRECTORY:
setPluginDirectory((String)newValue);
return;
+ case GMFGenPackage.GEN_EDITOR_GENERATOR__EXTENSIONS:
+ getExtensions().clear();
+ getExtensions().addAll((Collection<? extends GenCustomGeneratorExtension>)newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -1592,6 +1615,9 @@ public class GenEditorGeneratorImpl extends EObjectImpl implements GenEditorGene
case GMFGenPackage.GEN_EDITOR_GENERATOR__PLUGIN_DIRECTORY:
setPluginDirectory(PLUGIN_DIRECTORY_EDEFAULT);
return;
+ case GMFGenPackage.GEN_EDITOR_GENERATOR__EXTENSIONS:
+ getExtensions().clear();
+ return;
}
super.eUnset(featureID);
}
@@ -1650,6 +1676,8 @@ public class GenEditorGeneratorImpl extends EObjectImpl implements GenEditorGene
return contextMenus != null && !contextMenus.isEmpty();
case GMFGenPackage.GEN_EDITOR_GENERATOR__PLUGIN_DIRECTORY:
return PLUGIN_DIRECTORY_EDEFAULT == null ? pluginDirectory != null : !PLUGIN_DIRECTORY_EDEFAULT.equals(pluginDirectory);
+ case GMFGenPackage.GEN_EDITOR_GENERATOR__EXTENSIONS:
+ return !getExtensions().isEmpty();
}
return super.eIsSet(featureID);
}
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenFixedInputsTemplateInvocationImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenFixedInputsTemplateInvocationImpl.java
new file mode 100644
index 000000000..48d7d33bc
--- /dev/null
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenFixedInputsTemplateInvocationImpl.java
@@ -0,0 +1,237 @@
+/**
+ */
+package org.eclipse.gmf.codegen.gmfgen.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+import org.eclipse.gmf.codegen.gmfgen.GenCustomTemplateInput;
+import org.eclipse.gmf.codegen.gmfgen.GenFixedInputsTemplateInvocation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Fixed Inputs Template Invocation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenFixedInputsTemplateInvocationImpl#getOclType <em>Ocl Type</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenFixedInputsTemplateInvocationImpl#getFixedInputs <em>Fixed Inputs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GenFixedInputsTemplateInvocationImpl extends GenTemplateInvocationBaseImpl implements GenFixedInputsTemplateInvocation {
+ /**
+ * The default value of the '{@link #getOclType() <em>Ocl Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOclType()
+ * @generated
+ * @ordered
+ */
+ protected static final String OCL_TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOclType() <em>Ocl Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOclType()
+ * @generated
+ * @ordered
+ */
+ protected String oclType = OCL_TYPE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getFixedInputs() <em>Fixed Inputs</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFixedInputs()
+ * @generated
+ * @ordered
+ */
+ protected EList<EObject> fixedInputs;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenFixedInputsTemplateInvocationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GMFGenPackage.eINSTANCE.getGenFixedInputsTemplateInvocation();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOclType() {
+ return oclType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOclType(String newOclType) {
+ String oldOclType = oclType;
+ oclType = newOclType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__OCL_TYPE, oldOclType, oclType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<EObject> getFixedInputs() {
+ if (fixedInputs == null) {
+ fixedInputs = new EObjectResolvingEList<EObject>(EObject.class, this, GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__FIXED_INPUTS);
+ }
+ return fixedInputs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__OCL_TYPE:
+ return getOclType();
+ case GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__FIXED_INPUTS:
+ return getFixedInputs();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__OCL_TYPE:
+ setOclType((String)newValue);
+ return;
+ case GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__FIXED_INPUTS:
+ getFixedInputs().clear();
+ getFixedInputs().addAll((Collection<? extends EObject>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__OCL_TYPE:
+ setOclType(OCL_TYPE_EDEFAULT);
+ return;
+ case GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__FIXED_INPUTS:
+ getFixedInputs().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__OCL_TYPE:
+ return OCL_TYPE_EDEFAULT == null ? oclType != null : !OCL_TYPE_EDEFAULT.equals(oclType);
+ case GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__FIXED_INPUTS:
+ return fixedInputs != null && !fixedInputs.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == GenCustomTemplateInput.class) {
+ switch (derivedFeatureID) {
+ case GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__OCL_TYPE: return GMFGenPackage.GEN_CUSTOM_TEMPLATE_INPUT__OCL_TYPE;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == GenCustomTemplateInput.class) {
+ switch (baseFeatureID) {
+ case GMFGenPackage.GEN_CUSTOM_TEMPLATE_INPUT__OCL_TYPE: return GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION__OCL_TYPE;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (oclType: ");
+ result.append(oclType);
+ result.append(')');
+ return result.toString();
+ }
+
+} //GenFixedInputsTemplateInvocationImpl
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenTemplateInvocationBaseImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenTemplateInvocationBaseImpl.java
new file mode 100644
index 000000000..8f2c38c57
--- /dev/null
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenTemplateInvocationBaseImpl.java
@@ -0,0 +1,249 @@
+/**
+ */
+package org.eclipse.gmf.codegen.gmfgen.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+import org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension;
+import org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Template Invocation Base</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenTemplateInvocationBaseImpl#getExtension <em>Extension</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenTemplateInvocationBaseImpl#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenTemplateInvocationBaseImpl#getTemplateFqn <em>Template Fqn</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class GenTemplateInvocationBaseImpl extends EObjectImpl implements GenTemplateInvocationBase {
+ /**
+ * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTemplateFqn() <em>Template Fqn</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemplateFqn()
+ * @generated
+ * @ordered
+ */
+ protected static final String TEMPLATE_FQN_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTemplateFqn() <em>Template Fqn</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemplateFqn()
+ * @generated
+ * @ordered
+ */
+ protected String templateFqn = TEMPLATE_FQN_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenTemplateInvocationBaseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GMFGenPackage.eINSTANCE.getGenTemplateInvocationBase();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenCustomGeneratorExtension getExtension() {
+ // TODO: implement this method to return the 'Extension' container reference
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDescription(String newDescription) {
+ String oldDescription = description;
+ description = newDescription;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE__DESCRIPTION, oldDescription, description));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTemplateFqn() {
+ return templateFqn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTemplateFqn(String newTemplateFqn) {
+ String oldTemplateFqn = templateFqn;
+ templateFqn = newTemplateFqn;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE__TEMPLATE_FQN, oldTemplateFqn, templateFqn));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE__EXTENSION:
+ return eInternalContainer().eInverseRemove(this, GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION__INVOCATIONS, GenCustomGeneratorExtension.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE__EXTENSION:
+ return getExtension();
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE__DESCRIPTION:
+ return getDescription();
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE__TEMPLATE_FQN:
+ return getTemplateFqn();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE__DESCRIPTION:
+ setDescription((String)newValue);
+ return;
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE__TEMPLATE_FQN:
+ setTemplateFqn((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE__TEMPLATE_FQN:
+ setTemplateFqn(TEMPLATE_FQN_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE__EXTENSION:
+ return getExtension() != null;
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE__TEMPLATE_FQN:
+ return TEMPLATE_FQN_EDEFAULT == null ? templateFqn != null : !TEMPLATE_FQN_EDEFAULT.equals(templateFqn);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (description: ");
+ result.append(description);
+ result.append(", templateFqn: ");
+ result.append(templateFqn);
+ result.append(')');
+ return result.toString();
+ }
+
+} //GenTemplateInvocationBaseImpl
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenTemplateInvocationImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenTemplateInvocationImpl.java
new file mode 100644
index 000000000..b6e954c4d
--- /dev/null
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenTemplateInvocationImpl.java
@@ -0,0 +1,204 @@
+/**
+ */
+package org.eclipse.gmf.codegen.gmfgen.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+import org.eclipse.gmf.codegen.gmfgen.GenCustomTemplateInput;
+import org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Template Invocation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenTemplateInvocationImpl#getInputs <em>Inputs</em>}</li>
+ * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenTemplateInvocationImpl#getOclExpression <em>Ocl Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GenTemplateInvocationImpl extends GenTemplateInvocationBaseImpl implements GenTemplateInvocation {
+ /**
+ * The cached value of the '{@link #getInputs() <em>Inputs</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputs()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenCustomTemplateInput> inputs;
+
+ /**
+ * The default value of the '{@link #getOclExpression() <em>Ocl Expression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOclExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String OCL_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOclExpression() <em>Ocl Expression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOclExpression()
+ * @generated
+ * @ordered
+ */
+ protected String oclExpression = OCL_EXPRESSION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenTemplateInvocationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GMFGenPackage.eINSTANCE.getGenTemplateInvocation();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenCustomTemplateInput> getInputs() {
+ if (inputs == null) {
+ inputs = new EObjectResolvingEList<GenCustomTemplateInput>(GenCustomTemplateInput.class, this, GMFGenPackage.GEN_TEMPLATE_INVOCATION__INPUTS);
+ }
+ return inputs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOclExpression() {
+ return oclExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOclExpression(String newOclExpression) {
+ String oldOclExpression = oclExpression;
+ oclExpression = newOclExpression;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_TEMPLATE_INVOCATION__OCL_EXPRESSION, oldOclExpression, oclExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION__INPUTS:
+ return getInputs();
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION__OCL_EXPRESSION:
+ return getOclExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION__INPUTS:
+ getInputs().clear();
+ getInputs().addAll((Collection<? extends GenCustomTemplateInput>)newValue);
+ return;
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION__OCL_EXPRESSION:
+ setOclExpression((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION__INPUTS:
+ getInputs().clear();
+ return;
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION__OCL_EXPRESSION:
+ setOclExpression(OCL_EXPRESSION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION__INPUTS:
+ return inputs != null && !inputs.isEmpty();
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION__OCL_EXPRESSION:
+ return OCL_EXPRESSION_EDEFAULT == null ? oclExpression != null : !OCL_EXPRESSION_EDEFAULT.equals(oclExpression);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (oclExpression: ");
+ result.append(oclExpression);
+ result.append(')');
+ return result.toString();
+ }
+
+} //GenTemplateInvocationImpl
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenAdapterFactory.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenAdapterFactory.java
index 441834c95..4b10eeac2 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenAdapterFactory.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenAdapterFactory.java
@@ -637,6 +637,26 @@ public class GMFGenAdapterFactory extends AdapterFactoryImpl {
return createGenVisualEffectAdapter();
}
@Override
+ public Adapter caseGenCustomGeneratorExtension(GenCustomGeneratorExtension object) {
+ return createGenCustomGeneratorExtensionAdapter();
+ }
+ @Override
+ public Adapter caseGenCustomTemplateInput(GenCustomTemplateInput object) {
+ return createGenCustomTemplateInputAdapter();
+ }
+ @Override
+ public Adapter caseGenTemplateInvocationBase(GenTemplateInvocationBase object) {
+ return createGenTemplateInvocationBaseAdapter();
+ }
+ @Override
+ public Adapter caseGenTemplateInvocation(GenTemplateInvocation object) {
+ return createGenTemplateInvocationAdapter();
+ }
+ @Override
+ public Adapter caseGenFixedInputsTemplateInvocation(GenFixedInputsTemplateInvocation object) {
+ return createGenFixedInputsTemplateInvocationAdapter();
+ }
+ @Override
public Adapter defaultCase(EObject object) {
return createEObjectAdapter();
}
@@ -2603,6 +2623,76 @@ public class GMFGenAdapterFactory extends AdapterFactoryImpl {
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension <em>Gen Custom Generator Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension
+ * @generated
+ */
+ public Adapter createGenCustomGeneratorExtensionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.codegen.gmfgen.GenCustomTemplateInput <em>Gen Custom Template Input</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenCustomTemplateInput
+ * @generated
+ */
+ public Adapter createGenCustomTemplateInputAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase <em>Gen Template Invocation Base</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocationBase
+ * @generated
+ */
+ public Adapter createGenTemplateInvocationBaseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocation <em>Gen Template Invocation</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenTemplateInvocation
+ * @generated
+ */
+ public Adapter createGenTemplateInvocationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.codegen.gmfgen.GenFixedInputsTemplateInvocation <em>Gen Fixed Inputs Template Invocation</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.gmf.codegen.gmfgen.GenFixedInputsTemplateInvocation
+ * @generated
+ */
+ public Adapter createGenFixedInputsTemplateInvocationAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link org.eclipse.gmf.codegen.gmfgen.GenRuleBase <em>Gen Rule Base</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenSwitch.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenSwitch.java
index b489d7588..1faa98372 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenSwitch.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenSwitch.java
@@ -1078,6 +1078,40 @@ public class GMFGenSwitch<T> extends Switch<T> {
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case GMFGenPackage.GEN_CUSTOM_GENERATOR_EXTENSION: {
+ GenCustomGeneratorExtension genCustomGeneratorExtension = (GenCustomGeneratorExtension)theEObject;
+ T result = caseGenCustomGeneratorExtension(genCustomGeneratorExtension);
+ if (result == null) result = caseGenCustomTemplateInput(genCustomGeneratorExtension);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GMFGenPackage.GEN_CUSTOM_TEMPLATE_INPUT: {
+ GenCustomTemplateInput genCustomTemplateInput = (GenCustomTemplateInput)theEObject;
+ T result = caseGenCustomTemplateInput(genCustomTemplateInput);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION_BASE: {
+ GenTemplateInvocationBase genTemplateInvocationBase = (GenTemplateInvocationBase)theEObject;
+ T result = caseGenTemplateInvocationBase(genTemplateInvocationBase);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GMFGenPackage.GEN_TEMPLATE_INVOCATION: {
+ GenTemplateInvocation genTemplateInvocation = (GenTemplateInvocation)theEObject;
+ T result = caseGenTemplateInvocation(genTemplateInvocation);
+ if (result == null) result = caseGenTemplateInvocationBase(genTemplateInvocation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GMFGenPackage.GEN_FIXED_INPUTS_TEMPLATE_INVOCATION: {
+ GenFixedInputsTemplateInvocation genFixedInputsTemplateInvocation = (GenFixedInputsTemplateInvocation)theEObject;
+ T result = caseGenFixedInputsTemplateInvocation(genFixedInputsTemplateInvocation);
+ if (result == null) result = caseGenTemplateInvocationBase(genFixedInputsTemplateInvocation);
+ if (result == null) result = caseGenCustomTemplateInput(genFixedInputsTemplateInvocation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
default: return defaultCase(theEObject);
}
}
@@ -3168,6 +3202,81 @@ public class GMFGenSwitch<T> extends Switch<T> {
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Gen Custom Generator Extension</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Gen Custom Generator Extension</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGenCustomGeneratorExtension(GenCustomGeneratorExtension object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Gen Custom Template Input</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Gen Custom Template Input</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGenCustomTemplateInput(GenCustomTemplateInput object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Gen Template Invocation Base</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Gen Template Invocation Base</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGenTemplateInvocationBase(GenTemplateInvocationBase object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Gen Template Invocation</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Gen Template Invocation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGenTemplateInvocation(GenTemplateInvocation object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Gen Fixed Inputs Template Invocation</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Gen Fixed Inputs Template Invocation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGenFixedInputsTemplateInvocation(GenFixedInputsTemplateInvocation object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Gen Rule Base</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/internal/codegen/util/GMFGenConfig.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/internal/codegen/util/GMFGenConfig.java
index 82baf248e..34cf1d715 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/internal/codegen/util/GMFGenConfig.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/internal/codegen/util/GMFGenConfig.java
@@ -17,6 +17,7 @@ import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+import org.eclipse.gmf.codegen.gmfgen.GenCustomGeneratorExtension;
import org.eclipse.gmf.codegen.gmfgen.GenStandardPreferencePage;
import org.eclipse.gmf.internal.common.reconcile.Cleaner;
import org.eclipse.gmf.internal.common.reconcile.Copier;
@@ -24,6 +25,7 @@ import org.eclipse.gmf.internal.common.reconcile.Decision;
import org.eclipse.gmf.internal.common.reconcile.DefaultDecision;
import org.eclipse.gmf.internal.common.reconcile.Matcher;
import org.eclipse.gmf.internal.common.reconcile.MergeListsDecision;
+import org.eclipse.gmf.internal.common.reconcile.Reconciler;
import org.eclipse.gmf.internal.common.reconcile.ReconcilerConfigBase;
import org.eclipse.gmf.internal.common.reconcile.ReflectiveMatcher;
import org.eclipse.gmf.internal.common.reconcile.StringPatternDecision;
@@ -315,6 +317,21 @@ public class GMFGenConfig extends ReconcilerConfigBase {
preserveIfSet(GMFGEN.getInitDiagramAction(), GMFGEN.getGenAction_QualifiedClassName());
preserveIfSet(GMFGEN.getLoadResourceAction(), GMFGEN.getGenAction_Name());
preserveIfSet(GMFGEN.getLoadResourceAction(), GMFGEN.getGenAction_QualifiedClassName());
+
+ setMatcher(GMFGEN.getGenCustomGeneratorExtension(), GMFGEN.getGenCustomGeneratorExtension_Name());
+ setCopier(GMFGEN.getGenCustomGeneratorExtension(), new Copier.WithCrossRefsCopier(){
+ @Override
+ public EObject copyToCurrent(EObject currentParent, EObject old, Reconciler reconciler) {
+ EObject result = null;
+ if (old instanceof GenCustomGeneratorExtension){
+ GenCustomGeneratorExtension oldExtension = (GenCustomGeneratorExtension)old;
+ if (!oldExtension.isFromCustomBridge()) {
+ result = super.copyToCurrent(currentParent, old, reconciler);
+ }
+ }
+ return result;
+ }
+ });
}
private void restoreOld(EClass eClass, EAttribute feature) {

Back to the top