Bug 579796: [UnitTest] add setters to TestSuiteDefinition

Change-Id: I17c0918cbe0067f0e54fdadbc43425629a5d8d09
diff --git a/plugins/org.eclipse.ease.lang.unittest/src-gen/org/eclipse/ease/lang/unittest/definition/ITestSuiteDefinition.java b/plugins/org.eclipse.ease.lang.unittest/src-gen/org/eclipse/ease/lang/unittest/definition/ITestSuiteDefinition.java
index 3af0be1..bb6a35d 100644
--- a/plugins/org.eclipse.ease.lang.unittest/src-gen/org/eclipse/ease/lang/unittest/definition/ITestSuiteDefinition.java
+++ b/plugins/org.eclipse.ease.lang.unittest/src-gen/org/eclipse/ease/lang/unittest/definition/ITestSuiteDefinition.java
@@ -55,7 +55,7 @@
 	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the value of the '<em>Name</em>' attribute.
 	 * @see #setName(String)
 	 * @see org.eclipse.ease.lang.unittest.definition.IDefinitionPackage#getTestSuiteDefinition_Name()
@@ -67,7 +67,7 @@
 	/**
 	 * Sets the value of the '{@link org.eclipse.ease.lang.unittest.definition.ITestSuiteDefinition#getName <em>Name</em>}' attribute. <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @param value
 	 *            the new value of the '<em>Name</em>' attribute.
 	 * @see #getName()
@@ -81,7 +81,7 @@
 	 * If the meaning of the '<em>Description</em>' attribute isn't clear, there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the value of the '<em>Description</em>' attribute.
 	 * @see #setDescription(String)
 	 * @see org.eclipse.ease.lang.unittest.definition.IDefinitionPackage#getTestSuiteDefinition_Description()
@@ -107,7 +107,7 @@
 	 * If the meaning of the '<em>Include Filter</em>' attribute isn't clear, there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the value of the '<em>Include Filter</em>' attribute.
 	 * @see #setIncludeFilter(String)
 	 * @see org.eclipse.ease.lang.unittest.definition.IDefinitionPackage#getTestSuiteDefinition_IncludeFilter()
@@ -133,7 +133,7 @@
 	 * If the meaning of the '<em>Exclude Filter</em>' attribute isn't clear, there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the value of the '<em>Exclude Filter</em>' attribute.
 	 * @see #setExcludeFilter(String)
 	 * @see org.eclipse.ease.lang.unittest.definition.IDefinitionPackage#getTestSuiteDefinition_ExcludeFilter()
@@ -160,7 +160,7 @@
 	 * If the meaning of the '<em>Disabled Resources</em>' attribute list isn't clear, there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the value of the '<em>Disabled Resources</em>' attribute list.
 	 * @see org.eclipse.ease.lang.unittest.definition.IDefinitionPackage#getTestSuiteDefinition_DisabledResources()
 	 * @model dataType="org.eclipse.ease.lang.unittest.definition.Path" extendedMetaData="kind='element' name='disabledResource'"
@@ -175,7 +175,7 @@
 	 * If the meaning of the '<em>Variables</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>Variables</em>' containment reference list.
 	 * @see org.eclipse.ease.lang.unittest.definition.IDefinitionPackage#getTestSuiteDefinition_Variables()
 	 * @model containment="true" extendedMetaData="kind='element' name='variable' namespace='##targetNamespace'"
@@ -190,7 +190,7 @@
 	 * If the meaning of the '<em>Custom Code</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>Custom Code</em>' containment reference list.
 	 * @see org.eclipse.ease.lang.unittest.definition.IDefinitionPackage#getTestSuiteDefinition_CustomCode()
 	 * @model containment="true"
@@ -205,7 +205,7 @@
 	 * If the meaning of the '<em>Flags</em>' map isn't clear, there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the value of the '<em>Flags</em>' map.
 	 * @see org.eclipse.ease.lang.unittest.definition.IDefinitionPackage#getTestSuiteDefinition_Flags()
 	 * @model mapType="org.eclipse.ease.lang.unittest.definition.FlagToStringMap&lt;org.eclipse.ease.lang.unittest.definition.Flag,
@@ -220,7 +220,7 @@
 	 * If the meaning of the '<em>Version</em>' attribute isn't clear, there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the value of the '<em>Version</em>' attribute.
 	 * @see #setVersion(String)
 	 * @see org.eclipse.ease.lang.unittest.definition.IDefinitionPackage#getTestSuiteDefinition_Version()
@@ -232,7 +232,7 @@
 	/**
 	 * Sets the value of the '{@link org.eclipse.ease.lang.unittest.definition.ITestSuiteDefinition#getVersion <em>Version</em>}' attribute. <!-- begin-user-doc
 	 * --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @param value
 	 *            the new value of the '<em>Version</em>' attribute.
 	 * @see #getVersion()
@@ -246,7 +246,7 @@
 	 * If the meaning of the '<em>Resource</em>' attribute isn't clear, there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @return the value of the '<em>Resource</em>' attribute.
 	 * @see #setResource(Object)
 	 * @see org.eclipse.ease.lang.unittest.definition.IDefinitionPackage#getTestSuiteDefinition_Resource()
@@ -268,7 +268,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @model
 	 * @generated
 	 */
@@ -276,7 +276,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @model
 	 * @generated
 	 */
@@ -287,4 +287,13 @@
 	 */
 	<T> T getFlag(Flag identifier, T defaultValue);
 
+	/**
+	 * @generated NOT
+	 */
+	void setVariable(String identifier, String content);
+
+	/**
+	 * @generated NOT
+	 */
+	void setFlag(String identifier, String value);
 } // ITestSuiteDefinition
diff --git a/plugins/org.eclipse.ease.lang.unittest/src-gen/org/eclipse/ease/lang/unittest/definition/impl/TestSuiteDefinition.java b/plugins/org.eclipse.ease.lang.unittest/src-gen/org/eclipse/ease/lang/unittest/definition/impl/TestSuiteDefinition.java
index 7c41e40..9d4529d 100644
--- a/plugins/org.eclipse.ease.lang.unittest/src-gen/org/eclipse/ease/lang/unittest/definition/impl/TestSuiteDefinition.java
+++ b/plugins/org.eclipse.ease.lang.unittest/src-gen/org/eclipse/ease/lang/unittest/definition/impl/TestSuiteDefinition.java
@@ -8,8 +8,10 @@
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.ease.lang.unittest.definition.Flag;
 import org.eclipse.ease.lang.unittest.definition.ICode;
+import org.eclipse.ease.lang.unittest.definition.IDefinitionFactory;
 import org.eclipse.ease.lang.unittest.definition.IDefinitionPackage;
 import org.eclipse.ease.lang.unittest.definition.ITestSuiteDefinition;
 import org.eclipse.ease.lang.unittest.definition.IVariable;
@@ -50,7 +52,7 @@
 public class TestSuiteDefinition extends MinimalEObjectImpl.Container implements ITestSuiteDefinition {
 	/**
 	 * The default value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getName()
 	 * @generated
 	 * @ordered
@@ -59,7 +61,7 @@
 
 	/**
 	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getName()
 	 * @generated
 	 * @ordered
@@ -68,7 +70,7 @@
 
 	/**
 	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getDescription()
 	 * @generated
 	 * @ordered
@@ -77,7 +79,7 @@
 
 	/**
 	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getDescription()
 	 * @generated
 	 * @ordered
@@ -86,7 +88,7 @@
 
 	/**
 	 * The default value of the '{@link #getIncludeFilter() <em>Include Filter</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getIncludeFilter()
 	 * @generated
 	 * @ordered
@@ -95,7 +97,7 @@
 
 	/**
 	 * The cached value of the '{@link #getIncludeFilter() <em>Include Filter</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getIncludeFilter()
 	 * @generated
 	 * @ordered
@@ -104,7 +106,7 @@
 
 	/**
 	 * The default value of the '{@link #getExcludeFilter() <em>Exclude Filter</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getExcludeFilter()
 	 * @generated
 	 * @ordered
@@ -113,7 +115,7 @@
 
 	/**
 	 * The cached value of the '{@link #getExcludeFilter() <em>Exclude Filter</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getExcludeFilter()
 	 * @generated
 	 * @ordered
@@ -122,7 +124,7 @@
 
 	/**
 	 * The cached value of the '{@link #getDisabledResources() <em>Disabled Resources</em>}' attribute list. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getDisabledResources()
 	 * @generated
 	 * @ordered
@@ -131,7 +133,7 @@
 
 	/**
 	 * The cached value of the '{@link #getVariables() <em>Variables</em>}' containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getVariables()
 	 * @generated
 	 * @ordered
@@ -140,7 +142,7 @@
 
 	/**
 	 * The cached value of the '{@link #getCustomCode() <em>Custom Code</em>}' containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getCustomCode()
 	 * @generated
 	 * @ordered
@@ -149,7 +151,7 @@
 
 	/**
 	 * The cached value of the '{@link #getFlags() <em>Flags</em>}' map. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getFlags()
 	 * @generated
 	 * @ordered
@@ -158,7 +160,7 @@
 
 	/**
 	 * The default value of the '{@link #getVersion() <em>Version</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getVersion()
 	 * @generated
 	 * @ordered
@@ -167,7 +169,7 @@
 
 	/**
 	 * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getVersion()
 	 * @generated
 	 * @ordered
@@ -176,7 +178,7 @@
 
 	/**
 	 * The default value of the '{@link #getResource() <em>Resource</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getResource()
 	 * @generated
 	 * @ordered
@@ -185,7 +187,7 @@
 
 	/**
 	 * The cached value of the '{@link #getResource() <em>Resource</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @see #getResource()
 	 * @generated
 	 * @ordered
@@ -194,7 +196,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	protected TestSuiteDefinition() {
@@ -203,7 +205,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -213,7 +215,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	public String getNameGen() {
@@ -241,12 +243,12 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
 	public void setName(String newName) {
-		String oldName = name;
+		final String oldName = name;
 		name = newName;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, IDefinitionPackage.TEST_SUITE_DEFINITION__NAME, oldName, name));
@@ -254,7 +256,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -264,12 +266,12 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
 	public void setDescription(String newDescription) {
-		String oldDescription = description;
+		final String oldDescription = description;
 		description = newDescription;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, IDefinitionPackage.TEST_SUITE_DEFINITION__DESCRIPTION, oldDescription, description));
@@ -277,7 +279,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -287,12 +289,12 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
 	public void setIncludeFilter(String newIncludeFilter) {
-		String oldIncludeFilter = includeFilter;
+		final String oldIncludeFilter = includeFilter;
 		includeFilter = newIncludeFilter;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, IDefinitionPackage.TEST_SUITE_DEFINITION__INCLUDE_FILTER, oldIncludeFilter, includeFilter));
@@ -300,7 +302,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -310,12 +312,12 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
 	public void setExcludeFilter(String newExcludeFilter) {
-		String oldExcludeFilter = excludeFilter;
+		final String oldExcludeFilter = excludeFilter;
 		excludeFilter = newExcludeFilter;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, IDefinitionPackage.TEST_SUITE_DEFINITION__EXCLUDE_FILTER, oldExcludeFilter, excludeFilter));
@@ -323,52 +325,52 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
 	public EList<IPath> getDisabledResources() {
 		if (disabledResources == null) {
-			disabledResources = new EDataTypeUniqueEList<IPath>(IPath.class, this, IDefinitionPackage.TEST_SUITE_DEFINITION__DISABLED_RESOURCES);
+			disabledResources = new EDataTypeUniqueEList<>(IPath.class, this, IDefinitionPackage.TEST_SUITE_DEFINITION__DISABLED_RESOURCES);
 		}
 		return disabledResources;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
 	public EList<IVariable> getVariables() {
 		if (variables == null) {
-			variables = new EObjectContainmentEList<IVariable>(IVariable.class, this, IDefinitionPackage.TEST_SUITE_DEFINITION__VARIABLES);
+			variables = new EObjectContainmentEList<>(IVariable.class, this, IDefinitionPackage.TEST_SUITE_DEFINITION__VARIABLES);
 		}
 		return variables;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
 	public EList<ICode> getCustomCode() {
 		if (customCode == null) {
-			customCode = new EObjectContainmentEList<ICode>(ICode.class, this, IDefinitionPackage.TEST_SUITE_DEFINITION__CUSTOM_CODE);
+			customCode = new EObjectContainmentEList<>(ICode.class, this, IDefinitionPackage.TEST_SUITE_DEFINITION__CUSTOM_CODE);
 		}
 		return customCode;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
 	public EMap<Flag, String> getFlags() {
 		if (flags == null) {
-			flags = new EcoreEMap<Flag, String>(IDefinitionPackage.Literals.FLAG_TO_STRING_MAP, FlagToStringMap.class, this,
+			flags = new EcoreEMap<>(IDefinitionPackage.Literals.FLAG_TO_STRING_MAP, FlagToStringMap.class, this,
 					IDefinitionPackage.TEST_SUITE_DEFINITION__FLAGS);
 		}
 		return flags;
@@ -376,7 +378,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -386,12 +388,12 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
 	public void setVersion(String newVersion) {
-		String oldVersion = version;
+		final String oldVersion = version;
 		version = newVersion;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, IDefinitionPackage.TEST_SUITE_DEFINITION__VERSION, oldVersion, version));
@@ -399,7 +401,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -409,12 +411,12 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
 	public void setResource(Object newResource) {
-		Object oldResource = resource;
+		final Object oldResource = resource;
 		resource = newResource;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, IDefinitionPackage.TEST_SUITE_DEFINITION__RESOURCE, oldResource, resource));
@@ -452,7 +454,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -470,7 +472,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -505,7 +507,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@SuppressWarnings("unchecked")
@@ -551,7 +553,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -593,7 +595,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -608,13 +610,13 @@
 		case IDefinitionPackage.TEST_SUITE_DEFINITION__EXCLUDE_FILTER:
 			return EXCLUDE_FILTER_EDEFAULT == null ? excludeFilter != null : !EXCLUDE_FILTER_EDEFAULT.equals(excludeFilter);
 		case IDefinitionPackage.TEST_SUITE_DEFINITION__DISABLED_RESOURCES:
-			return disabledResources != null && !disabledResources.isEmpty();
+			return (disabledResources != null) && !disabledResources.isEmpty();
 		case IDefinitionPackage.TEST_SUITE_DEFINITION__VARIABLES:
-			return variables != null && !variables.isEmpty();
+			return (variables != null) && !variables.isEmpty();
 		case IDefinitionPackage.TEST_SUITE_DEFINITION__CUSTOM_CODE:
-			return customCode != null && !customCode.isEmpty();
+			return (customCode != null) && !customCode.isEmpty();
 		case IDefinitionPackage.TEST_SUITE_DEFINITION__FLAGS:
-			return flags != null && !flags.isEmpty();
+			return (flags != null) && !flags.isEmpty();
 		case IDefinitionPackage.TEST_SUITE_DEFINITION__VERSION:
 			return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
 		case IDefinitionPackage.TEST_SUITE_DEFINITION__RESOURCE:
@@ -625,7 +627,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -641,7 +643,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -649,7 +651,7 @@
 		if (eIsProxy())
 			return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		final StringBuffer result = new StringBuffer(super.toString());
 		result.append(" (name: ");
 		result.append(name);
 		result.append(", description: ");
@@ -694,4 +696,40 @@
 		return null;
 	}
 
+	/**
+	 * @generated NOT
+	 */
+	@Override
+	public void setVariable(String identifier, String content) {
+		getOrCreateVariable(identifier).setContent(content);
+	}
+
+	/**
+	 * @generated NOT
+	 */
+	private IVariable getOrCreateVariable(String identifier) {
+		IVariable variable = getVariable(identifier);
+
+		if (variable == null) {
+			variable = IDefinitionFactory.eINSTANCE.createVariable();
+			variable.setFullName(new Path(identifier));
+
+			getVariables().add(variable);
+		}
+
+		return variable;
+	}
+
+	/**
+	 * @generated NOT
+	 */
+	@Override
+	public void setFlag(String identifier, String value) {
+		final Flag flag = Flag.getByName(identifier);
+		if (flag == null)
+			throw new IllegalArgumentException(String.format("Flag %s is unknown", identifier));
+
+		getFlags().put(flag, value);
+	}
+
 } // TestSuiteDefinition
diff --git a/tests/org.eclipse.ease.lang.unittest.test/src/org/eclipse/ease/lang/unittest/definition/impl/TestSuiteDefinitionTest.java b/tests/org.eclipse.ease.lang.unittest.test/src/org/eclipse/ease/lang/unittest/definition/impl/TestSuiteDefinitionTest.java
new file mode 100644
index 0000000..c5f51ff
--- /dev/null
+++ b/tests/org.eclipse.ease.lang.unittest.test/src/org/eclipse/ease/lang/unittest/definition/impl/TestSuiteDefinitionTest.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2022 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License_Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Christian Pontesegger - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ease.lang.unittest.definition.impl;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.ease.lang.unittest.definition.Flag;
+import org.eclipse.ease.lang.unittest.definition.IDefinitionFactory;
+import org.eclipse.ease.lang.unittest.definition.ITestSuiteDefinition;
+import org.eclipse.ease.lang.unittest.definition.IVariable;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+
+public class TestSuiteDefinitionTest {
+	@Test
+	@DisplayName("setVariable() sets new variable")
+	public void setVariable_sets_new_variable() {
+		final ITestSuiteDefinition definition = IDefinitionFactory.eINSTANCE.createTestSuiteDefinition();
+
+		assertTrue(definition.getVariables().isEmpty());
+
+		definition.setVariable("test", "content");
+
+		assertEquals(1, definition.getVariables().size());
+		assertNotNull(definition.getVariable("test"));
+		assertEquals("content", definition.getVariable("test").getContent());
+	}
+
+	@Test
+	@DisplayName("setVariable() updates existing variable")
+	public void setVariable_updates_existing_variable() {
+		final ITestSuiteDefinition definition = IDefinitionFactory.eINSTANCE.createTestSuiteDefinition();
+
+		final IVariable variable = IDefinitionFactory.eINSTANCE.createVariable();
+		variable.setFullName(new Path("test"));
+		variable.setContent("old");
+		definition.getVariables().add(variable);
+
+		assertEquals(1, definition.getVariables().size());
+
+		definition.setVariable("test", "content");
+
+		assertEquals(1, definition.getVariables().size());
+		assertEquals("content", definition.getVariable("test").getContent());
+	}
+
+	@Test
+	@DisplayName("setFlag(<known flag>) sets flag")
+	public void setFlag_sets_flag() {
+		final ITestSuiteDefinition definition = IDefinitionFactory.eINSTANCE.createTestSuiteDefinition();
+
+		definition.setFlag("STOP_SUITE_ON_ERROR", "true");
+
+		assertTrue(definition.getFlag(Flag.STOP_SUITE_ON_ERROR, false));
+	}
+
+	@Test
+	@DisplayName("setFlag(<unknown flag>) throws")
+	public void setFlag_throws_on_unknown_flag() {
+		final ITestSuiteDefinition definition = IDefinitionFactory.eINSTANCE.createTestSuiteDefinition();
+
+		assertThrows(IllegalArgumentException.class, () -> definition.setFlag("unknown", "true"));
+	}
+}