Merge "Bug 442038 Strange reflection madness removed in attempt to fix linux focus issues. "
diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/META-INF/MANIFEST.MF b/ecl/plugins/org.eclipse.rcptt.ecl.core/META-INF/MANIFEST.MF
index 5240309..6852161 100644
--- a/ecl/plugins/org.eclipse.rcptt.ecl.core/META-INF/MANIFEST.MF
+++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/META-INF/MANIFEST.MF
@@ -1,10 +1,11 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: ECL Core
+Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.rcptt.ecl.core;singleton:=true
 Bundle-Version: 1.5.2.qualifier
 Bundle-ClassPath: .
-Bundle-Vendor: Eclipse RCP Testing Tool Project
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.rcptt.ecl.core,
  org.eclipse.rcptt.ecl.core.impl,
diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/model/ecl.ecore b/ecl/plugins/org.eclipse.rcptt.ecl.core/model/ecl.ecore
index 2e78493..eea77bb 100644
--- a/ecl/plugins/org.eclipse.rcptt.ecl.core/model/ecl.ecore
+++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/model/ecl.ecore
@@ -318,13 +318,6 @@
       <details key="returns" value="An internal object describing the case."/>
       <details key="example" value="list 1 2 3 | get 0 | switch [case 1 {&#xD;&#xA;&#x9;log -message &quot;First item is 1&quot;&#xD;&#xA;}] [case 2 {&#xA;&#x9;log -message &quot;First item is 2&quot;&#xA;}]"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="input" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"
-        containment="true">
-      <eAnnotations source="http://www.eclipse.org/ecl/input"/>
-      <eAnnotations source="http://www.eclipse.org/ecl/docs">
-        <details key="description" value="The input value to compare."/>
-      </eAnnotations>
-    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
         eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
       <eAnnotations source="http://www.eclipse.org/ecl/docs">
diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/plugin.properties b/ecl/plugins/org.eclipse.rcptt.ecl.core/plugin.properties
index 69c8776..2538b5e 100644
--- a/ecl/plugins/org.eclipse.rcptt.ecl.core/plugin.properties
+++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/plugin.properties
@@ -8,3 +8,5 @@
 # Contributors:
 #     Xored Software Inc - initial API and implementation and/or initial documentation
 ###############################################################################
+pluginName = Ecl Model
+providerName = www.example.org
diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/Case.java b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/Case.java
index 52b9a06..ba0f7ec 100644
--- a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/Case.java
+++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/Case.java
@@ -12,7 +12,6 @@
  * <p>
  * The following features are supported:
  * <ul>
- *   <li>{@link org.eclipse.rcptt.ecl.core.Case#getInput <em>Input</em>}</li>
  *   <li>{@link org.eclipse.rcptt.ecl.core.Case#getCondition <em>Condition</em>}</li>
  *   <li>{@link org.eclipse.rcptt.ecl.core.Case#getThen <em>Then</em>}</li>
  * </ul>
@@ -77,31 +76,4 @@
 	 */
 	void setThen(Command value);
 
-	/**
-	 * Returns the value of the '<em><b>Input</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Input</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Input</em>' containment reference.
-	 * @see #setInput(EObject)
-	 * @see org.eclipse.rcptt.ecl.core.CorePackage#getCase_Input()
-	 * @model containment="true" required="true"
-	 *        annotation="http://www.eclipse.org/ecl/docs description='The input value to compare.'"
-	 * @generated
-	 */
-	EObject getInput();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.rcptt.ecl.core.Case#getInput <em>Input</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Input</em>' containment reference.
-	 * @see #getInput()
-	 * @generated
-	 */
-	void setInput(EObject value);
-
 } // Case
diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/CorePackage.java b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/CorePackage.java
index 09505e4..52edeae 100644
--- a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/CorePackage.java
+++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/CorePackage.java
@@ -2019,22 +2019,13 @@
 	int CASE__BINDINGS = COMMAND__BINDINGS;
 
 	/**
-	 * The feature id for the '<em><b>Input</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CASE__INPUT = COMMAND_FEATURE_COUNT + 0;
-
-	/**
 	 * The feature id for the '<em><b>Condition</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CASE__CONDITION = COMMAND_FEATURE_COUNT + 1;
+	int CASE__CONDITION = COMMAND_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Then</b></em>' containment reference.
@@ -2043,7 +2034,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CASE__THEN = COMMAND_FEATURE_COUNT + 2;
+	int CASE__THEN = COMMAND_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of structural features of the '<em>Case</em>' class.
@@ -2052,7 +2043,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CASE_FEATURE_COUNT = COMMAND_FEATURE_COUNT + 3;
+	int CASE_FEATURE_COUNT = COMMAND_FEATURE_COUNT + 2;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.rcptt.ecl.core.impl.SwitchImpl <em>Switch</em>}' class.
@@ -3226,17 +3217,6 @@
 	EReference getCase_Then();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.rcptt.ecl.core.Case#getInput <em>Input</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Input</em>'.
-	 * @see org.eclipse.rcptt.ecl.core.Case#getInput()
-	 * @see #getCase()
-	 * @generated
-	 */
-	EReference getCase_Input();
-
-	/**
 	 * Returns the meta object for class '{@link org.eclipse.rcptt.ecl.core.Switch <em>Switch</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -4408,14 +4388,6 @@
 		EReference CASE__THEN = eINSTANCE.getCase_Then();
 
 		/**
-		 * The meta object literal for the '<em><b>Input</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference CASE__INPUT = eINSTANCE.getCase_Input();
-
-		/**
 		 * The meta object literal for the '{@link org.eclipse.rcptt.ecl.core.impl.SwitchImpl <em>Switch</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/Nullable.java b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/Nullable.java
index 5c945ab..6255844 100644
--- a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/Nullable.java
+++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/Nullable.java
@@ -8,78 +8,78 @@
  * Contributors:
  *     Xored Software Inc - initial API and implementation and/or initial documentation
  *******************************************************************************/
-package org.eclipse.rcptt.ecl.core;

-

-import org.eclipse.emf.ecore.EObject;

-

-/**

- * <!-- begin-user-doc -->

- * A representation of the model object '<em><b>Nullable</b></em>'.

- * <!-- end-user-doc -->

- *

- * <p>

- * The following features are supported:

- * <ul>

- *   <li>{@link org.eclipse.rcptt.ecl.core.Nullable#getValue <em>Value</em>}</li>

- *   <li>{@link org.eclipse.rcptt.ecl.core.Nullable#getType <em>Type</em>}</li>

- * </ul>

- * </p>

- *

- * @see org.eclipse.rcptt.ecl.core.CorePackage#getNullable()

- * @model

- * @generated

- */

-public interface Nullable extends EObject {

-	/**

-	 * Returns the value of the '<em><b>Value</b></em>' containment reference.

-	 * <!-- begin-user-doc -->

-	 * <p>

-	 * If the meaning of the '<em>Value</em>' containment reference isn't clear,

-	 * there really should be more of a description here...

-	 * </p>

-	 * <!-- end-user-doc -->

-	 * @return the value of the '<em>Value</em>' containment reference.

-	 * @see #setValue(EObject)

-	 * @see org.eclipse.rcptt.ecl.core.CorePackage#getNullable_Value()

-	 * @model containment="true"

-	 * @generated

-	 */

-	EObject getValue();

-

-	/**

-	 * Sets the value of the '{@link org.eclipse.rcptt.ecl.core.Nullable#getValue <em>Value</em>}' containment reference.

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @param value the new value of the '<em>Value</em>' containment reference.

-	 * @see #getValue()

-	 * @generated

-	 */

-	void setValue(EObject value);

-

-	/**

-	 * Returns the value of the '<em><b>Type</b></em>' attribute.

-	 * <!-- begin-user-doc -->

-	 * <p>

-	 * If the meaning of the '<em>Type</em>' attribute isn't clear,

-	 * there really should be more of a description here...

-	 * </p>

-	 * <!-- end-user-doc -->

-	 * @return the value of the '<em>Type</em>' attribute.

-	 * @see #setType(String)

-	 * @see org.eclipse.rcptt.ecl.core.CorePackage#getNullable_Type()

-	 * @model

-	 * @generated

-	 */

-	String getType();

-

-	/**

-	 * Sets the value of the '{@link org.eclipse.rcptt.ecl.core.Nullable#getType <em>Type</em>}' attribute.

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @param value the new value of the '<em>Type</em>' attribute.

-	 * @see #getType()

-	 * @generated

-	 */

-	void setType(String value);

-

-} // Nullable

+package org.eclipse.rcptt.ecl.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Nullable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.rcptt.ecl.core.Nullable#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.rcptt.ecl.core.Nullable#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.rcptt.ecl.core.CorePackage#getNullable()
+ * @model
+ * @generated
+ */
+public interface Nullable extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' containment reference.
+	 * @see #setValue(EObject)
+	 * @see org.eclipse.rcptt.ecl.core.CorePackage#getNullable_Value()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EObject getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.rcptt.ecl.core.Nullable#getValue <em>Value</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' containment reference.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(EObject value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(String)
+	 * @see org.eclipse.rcptt.ecl.core.CorePackage#getNullable_Type()
+	 * @model
+	 * @generated
+	 */
+	String getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.rcptt.ecl.core.Nullable#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(String value);
+
+} // Nullable
diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/Serialized.java b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/Serialized.java
index 8ba3fa9..9301c85 100644
--- a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/Serialized.java
+++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/Serialized.java
@@ -8,51 +8,51 @@
  * Contributors:
  *     Xored Software Inc - initial API and implementation and/or initial documentation
  *******************************************************************************/
-package org.eclipse.rcptt.ecl.core;

-

-import org.eclipse.emf.ecore.EObject;

-

-/**

- * <!-- begin-user-doc -->

- * A representation of the model object '<em><b>Serialized</b></em>'.

- * <!-- end-user-doc -->

- *

- * <p>

- * The following features are supported:

- * <ul>

- *   <li>{@link org.eclipse.rcptt.ecl.core.Serialized#getBytes <em>Bytes</em>}</li>

- * </ul>

- * </p>

- *

- * @see org.eclipse.rcptt.ecl.core.CorePackage#getSerialized()

- * @model

- * @generated

- */

-public interface Serialized extends EObject {

-	/**

-	 * Returns the value of the '<em><b>Bytes</b></em>' attribute.

-	 * <!-- begin-user-doc -->

-	 * <p>

-	 * If the meaning of the '<em>Bytes</em>' attribute isn't clear,

-	 * there really should be more of a description here...

-	 * </p>

-	 * <!-- end-user-doc -->

-	 * @return the value of the '<em>Bytes</em>' attribute.

-	 * @see #setBytes(byte[])

-	 * @see org.eclipse.rcptt.ecl.core.CorePackage#getSerialized_Bytes()

-	 * @model

-	 * @generated

-	 */

-	byte[] getBytes();

-

-	/**

-	 * Sets the value of the '{@link org.eclipse.rcptt.ecl.core.Serialized#getBytes <em>Bytes</em>}' attribute.

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @param value the new value of the '<em>Bytes</em>' attribute.

-	 * @see #getBytes()

-	 * @generated

-	 */

-	void setBytes(byte[] value);

-

-} // Serialized

+package org.eclipse.rcptt.ecl.core;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Serialized</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.rcptt.ecl.core.Serialized#getBytes <em>Bytes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.rcptt.ecl.core.CorePackage#getSerialized()
+ * @model
+ * @generated
+ */
+public interface Serialized extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Bytes</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bytes</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bytes</em>' attribute.
+	 * @see #setBytes(byte[])
+	 * @see org.eclipse.rcptt.ecl.core.CorePackage#getSerialized_Bytes()
+	 * @model
+	 * @generated
+	 */
+	byte[] getBytes();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.rcptt.ecl.core.Serialized#getBytes <em>Bytes</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bytes</em>' attribute.
+	 * @see #getBytes()
+	 * @generated
+	 */
+	void setBytes(byte[] value);
+
+} // Serialized
diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/CaseImpl.java b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/CaseImpl.java
index 5df016b..c33f152 100644
--- a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/CaseImpl.java
+++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/CaseImpl.java
@@ -22,7 +22,6 @@
  * <p>
  * The following features are implemented:
  * <ul>
- *   <li>{@link org.eclipse.rcptt.ecl.core.impl.CaseImpl#getInput <em>Input</em>}</li>
  *   <li>{@link org.eclipse.rcptt.ecl.core.impl.CaseImpl#getCondition <em>Condition</em>}</li>
  *   <li>{@link org.eclipse.rcptt.ecl.core.impl.CaseImpl#getThen <em>Then</em>}</li>
  * </ul>
@@ -32,16 +31,6 @@
  */
 public class CaseImpl extends CommandImpl implements Case {
 	/**
-	 * The cached value of the '{@link #getInput() <em>Input</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInput()
-	 * @generated
-	 * @ordered
-	 */
-	protected EObject input;
-
-	/**
 	 * The cached value of the '{@link #getCondition() <em>Condition</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -166,54 +155,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EObject getInput() {
-		return input;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetInput(EObject newInput, NotificationChain msgs) {
-		EObject oldInput = input;
-		input = newInput;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CorePackage.CASE__INPUT, oldInput, newInput);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setInput(EObject newInput) {
-		if (newInput != input) {
-			NotificationChain msgs = null;
-			if (input != null)
-				msgs = ((InternalEObject)input).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CorePackage.CASE__INPUT, null, msgs);
-			if (newInput != null)
-				msgs = ((InternalEObject)newInput).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CorePackage.CASE__INPUT, null, msgs);
-			msgs = basicSetInput(newInput, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.CASE__INPUT, newInput, newInput));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case CorePackage.CASE__INPUT:
-				return basicSetInput(null, msgs);
 			case CorePackage.CASE__THEN:
 				return basicSetThen(null, msgs);
 		}
@@ -228,8 +172,6 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case CorePackage.CASE__INPUT:
-				return getInput();
 			case CorePackage.CASE__CONDITION:
 				if (resolve) return getCondition();
 				return basicGetCondition();
@@ -247,9 +189,6 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case CorePackage.CASE__INPUT:
-				setInput((EObject)newValue);
-				return;
 			case CorePackage.CASE__CONDITION:
 				setCondition((EObject)newValue);
 				return;
@@ -268,9 +207,6 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case CorePackage.CASE__INPUT:
-				setInput((EObject)null);
-				return;
 			case CorePackage.CASE__CONDITION:
 				setCondition((EObject)null);
 				return;
@@ -289,8 +225,6 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case CorePackage.CASE__INPUT:
-				return input != null;
 			case CorePackage.CASE__CONDITION:
 				return condition != null;
 			case CorePackage.CASE__THEN:
diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/CorePackageImpl.java b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/CorePackageImpl.java
index a2141c6..4d3733f 100644
--- a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/CorePackageImpl.java
+++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/CorePackageImpl.java
@@ -1296,7 +1296,7 @@
 	 * @generated
 	 */
 	public EReference getCase_Condition() {
-		return (EReference)caseEClass.getEStructuralFeatures().get(1);
+		return (EReference)caseEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -1305,16 +1305,7 @@
 	 * @generated
 	 */
 	public EReference getCase_Then() {
-		return (EReference)caseEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getCase_Input() {
-		return (EReference)caseEClass.getEStructuralFeatures().get(0);
+		return (EReference)caseEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -1704,7 +1695,6 @@
 		createEReference(eclMapEntryEClass, ECL_MAP_ENTRY__VALUE);
 
 		caseEClass = createEClass(CASE);
-		createEReference(caseEClass, CASE__INPUT);
 		createEReference(caseEClass, CASE__CONDITION);
 		createEReference(caseEClass, CASE__THEN);
 
@@ -1947,7 +1937,6 @@
 		initEReference(getEclMapEntry_Value(), theEcorePackage.getEObject(), null, "value", null, 0, 1, EclMapEntry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(caseEClass, Case.class, "Case", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getCase_Input(), theEcorePackage.getEObject(), null, "input", null, 1, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getCase_Condition(), theEcorePackage.getEObject(), null, "condition", null, 1, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getCase_Then(), this.getCommand(), null, "then", null, 0, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
@@ -2018,7 +2007,7 @@
 		  (restoreStateEClass, 
 		   source, 
 		   new String[] {
-		   });															
+		   });													
 	}
 
 	/**
@@ -2037,12 +2026,7 @@
 		  (getGet_Input(), 
 		   source, 
 		   new String[] {
-		   });						
-		addAnnotation
-		  (getCase_Input(), 
-		   source, 
-		   new String[] {
-		   });						
+		   });									
 		addAnnotation
 		  (getSwitch_Input(), 
 		   source, 
@@ -2223,12 +2207,6 @@
 			 "description", "Corresponds command from <code>then</code> branch if an object from the <code>input</code> matches the <code>condition</code> object.",
 			 "returns", "An internal object describing the case.",
 			 "example", "list 1 2 3 | get 0 | switch [case 1 {\r\n\tlog -message \"First item is 1\"\r\n}] [case 2 {\n\tlog -message \"First item is 2\"\n}]"
-		   });			
-		addAnnotation
-		  (getCase_Input(), 
-		   source, 
-		   new String[] {
-			 "description", "The input value to compare."
 		   });		
 		addAnnotation
 		  (getCase_Condition(), 
diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/NullableImpl.java b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/NullableImpl.java
index e2d2ae5..00ecb1c 100644
--- a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/NullableImpl.java
+++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/NullableImpl.java
@@ -8,245 +8,245 @@
  * Contributors:
  *     Xored Software Inc - initial API and implementation and/or initial documentation
  *******************************************************************************/
-package org.eclipse.rcptt.ecl.core.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.EObject;

-import org.eclipse.emf.ecore.InternalEObject;

-

-import org.eclipse.emf.ecore.impl.ENotificationImpl;

-import org.eclipse.emf.ecore.impl.EObjectImpl;

+package org.eclipse.rcptt.ecl.core.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.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
 import org.eclipse.rcptt.ecl.core.CorePackage;
 import org.eclipse.rcptt.ecl.core.Nullable;
-

-/**

- * <!-- begin-user-doc -->

- * An implementation of the model object '<em><b>Nullable</b></em>'.

- * <!-- end-user-doc -->

- * <p>

- * The following features are implemented:

- * <ul>

- *   <li>{@link org.eclipse.rcptt.ecl.core.impl.NullableImpl#getValue <em>Value</em>}</li>

- *   <li>{@link org.eclipse.rcptt.ecl.core.impl.NullableImpl#getType <em>Type</em>}</li>

- * </ul>

- * </p>

- *

- * @generated

- */

-public class NullableImpl extends EObjectImpl implements Nullable {

-	/**

-	 * The cached value of the '{@link #getValue() <em>Value</em>}' containment reference.

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @see #getValue()

-	 * @generated

-	 * @ordered

-	 */

-	protected EObject value;

-

-	/**

-	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @see #getType()

-	 * @generated

-	 * @ordered

-	 */

-	protected static final String TYPE_EDEFAULT = null;

-

-	/**

-	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @see #getType()

-	 * @generated

-	 * @ordered

-	 */

-	protected String type = TYPE_EDEFAULT;

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	protected NullableImpl() {

-		super();

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	@Override

-	protected EClass eStaticClass() {

-		return CorePackage.Literals.NULLABLE;

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	public EObject getValue() {

-		return value;

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	public NotificationChain basicSetValue(EObject newValue, NotificationChain msgs) {

-		EObject oldValue = value;

-		value = newValue;

-		if (eNotificationRequired()) {

-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CorePackage.NULLABLE__VALUE, oldValue, newValue);

-			if (msgs == null) msgs = notification; else msgs.add(notification);

-		}

-		return msgs;

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	public void setValue(EObject newValue) {

-		if (newValue != value) {

-			NotificationChain msgs = null;

-			if (value != null)

-				msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CorePackage.NULLABLE__VALUE, null, msgs);

-			if (newValue != null)

-				msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CorePackage.NULLABLE__VALUE, null, msgs);

-			msgs = basicSetValue(newValue, msgs);

-			if (msgs != null) msgs.dispatch();

-		}

-		else if (eNotificationRequired())

-			eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.NULLABLE__VALUE, newValue, newValue));

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	public String getType() {

-		return type;

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	public void setType(String newType) {

-		String oldType = type;

-		type = newType;

-		if (eNotificationRequired())

-			eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.NULLABLE__TYPE, oldType, type));

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	@Override

-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {

-		switch (featureID) {

-			case CorePackage.NULLABLE__VALUE:

-				return basicSetValue(null, msgs);

-		}

-		return super.eInverseRemove(otherEnd, featureID, msgs);

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	@Override

-	public Object eGet(int featureID, boolean resolve, boolean coreType) {

-		switch (featureID) {

-			case CorePackage.NULLABLE__VALUE:

-				return getValue();

-			case CorePackage.NULLABLE__TYPE:

-				return getType();

-		}

-		return super.eGet(featureID, resolve, coreType);

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	@Override

-	public void eSet(int featureID, Object newValue) {

-		switch (featureID) {

-			case CorePackage.NULLABLE__VALUE:

-				setValue((EObject)newValue);

-				return;

-			case CorePackage.NULLABLE__TYPE:

-				setType((String)newValue);

-				return;

-		}

-		super.eSet(featureID, newValue);

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	@Override

-	public void eUnset(int featureID) {

-		switch (featureID) {

-			case CorePackage.NULLABLE__VALUE:

-				setValue((EObject)null);

-				return;

-			case CorePackage.NULLABLE__TYPE:

-				setType(TYPE_EDEFAULT);

-				return;

-		}

-		super.eUnset(featureID);

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	@Override

-	public boolean eIsSet(int featureID) {

-		switch (featureID) {

-			case CorePackage.NULLABLE__VALUE:

-				return value != null;

-			case CorePackage.NULLABLE__TYPE:

-				return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);

-		}

-		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(" (type: ");

-		result.append(type);

-		result.append(')');

-		return result.toString();

-	}

-

-} //NullableImpl

+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Nullable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.rcptt.ecl.core.impl.NullableImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.rcptt.ecl.core.impl.NullableImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NullableImpl extends EObjectImpl implements Nullable {
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected EObject value;
+
+	/**
+	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String type = TYPE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected NullableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CorePackage.Literals.NULLABLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetValue(EObject newValue, NotificationChain msgs) {
+		EObject oldValue = value;
+		value = newValue;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CorePackage.NULLABLE__VALUE, oldValue, newValue);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValue(EObject newValue) {
+		if (newValue != value) {
+			NotificationChain msgs = null;
+			if (value != null)
+				msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CorePackage.NULLABLE__VALUE, null, msgs);
+			if (newValue != null)
+				msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CorePackage.NULLABLE__VALUE, null, msgs);
+			msgs = basicSetValue(newValue, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.NULLABLE__VALUE, newValue, newValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setType(String newType) {
+		String oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.NULLABLE__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case CorePackage.NULLABLE__VALUE:
+				return basicSetValue(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CorePackage.NULLABLE__VALUE:
+				return getValue();
+			case CorePackage.NULLABLE__TYPE:
+				return getType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CorePackage.NULLABLE__VALUE:
+				setValue((EObject)newValue);
+				return;
+			case CorePackage.NULLABLE__TYPE:
+				setType((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CorePackage.NULLABLE__VALUE:
+				setValue((EObject)null);
+				return;
+			case CorePackage.NULLABLE__TYPE:
+				setType(TYPE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CorePackage.NULLABLE__VALUE:
+				return value != null;
+			case CorePackage.NULLABLE__TYPE:
+				return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+		}
+		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(" (type: ");
+		result.append(type);
+		result.append(')');
+		return result.toString();
+	}
+
+} //NullableImpl
diff --git a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/SerializedImpl.java b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/SerializedImpl.java
index 6a4d3a6..4f776ca 100644
--- a/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/SerializedImpl.java
+++ b/ecl/plugins/org.eclipse.rcptt.ecl.core/src/org/eclipse/rcptt/ecl/core/impl/SerializedImpl.java
@@ -8,164 +8,164 @@
  * Contributors:
  *     Xored Software Inc - initial API and implementation and/or initial documentation
  *******************************************************************************/
-package org.eclipse.rcptt.ecl.core.impl;

-

-

-import org.eclipse.emf.common.notify.Notification;

-

-import org.eclipse.emf.ecore.EClass;

-

-import org.eclipse.emf.ecore.impl.ENotificationImpl;

-import org.eclipse.emf.ecore.impl.EObjectImpl;

+package org.eclipse.rcptt.ecl.core.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
 import org.eclipse.rcptt.ecl.core.CorePackage;
 import org.eclipse.rcptt.ecl.core.Serialized;
-

-/**

- * <!-- begin-user-doc -->

- * An implementation of the model object '<em><b>Serialized</b></em>'.

- * <!-- end-user-doc -->

- * <p>

- * The following features are implemented:

- * <ul>

- *   <li>{@link org.eclipse.rcptt.ecl.core.impl.SerializedImpl#getBytes <em>Bytes</em>}</li>

- * </ul>

- * </p>

- *

- * @generated

- */

-public class SerializedImpl extends EObjectImpl implements Serialized {

-	/**

-	 * The default value of the '{@link #getBytes() <em>Bytes</em>}' attribute.

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @see #getBytes()

-	 * @generated

-	 * @ordered

-	 */

-	protected static final byte[] BYTES_EDEFAULT = null;

-

-	/**

-	 * The cached value of the '{@link #getBytes() <em>Bytes</em>}' attribute.

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @see #getBytes()

-	 * @generated

-	 * @ordered

-	 */

-	protected byte[] bytes = BYTES_EDEFAULT;

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	protected SerializedImpl() {

-		super();

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	@Override

-	protected EClass eStaticClass() {

-		return CorePackage.Literals.SERIALIZED;

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	public byte[] getBytes() {

-		return bytes;

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	public void setBytes(byte[] newBytes) {

-		byte[] oldBytes = bytes;

-		bytes = newBytes;

-		if (eNotificationRequired())

-			eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.SERIALIZED__BYTES, oldBytes, bytes));

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	@Override

-	public Object eGet(int featureID, boolean resolve, boolean coreType) {

-		switch (featureID) {

-			case CorePackage.SERIALIZED__BYTES:

-				return getBytes();

-		}

-		return super.eGet(featureID, resolve, coreType);

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	@Override

-	public void eSet(int featureID, Object newValue) {

-		switch (featureID) {

-			case CorePackage.SERIALIZED__BYTES:

-				setBytes((byte[])newValue);

-				return;

-		}

-		super.eSet(featureID, newValue);

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	@Override

-	public void eUnset(int featureID) {

-		switch (featureID) {

-			case CorePackage.SERIALIZED__BYTES:

-				setBytes(BYTES_EDEFAULT);

-				return;

-		}

-		super.eUnset(featureID);

-	}

-

-	/**

-	 * <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * @generated

-	 */

-	@Override

-	public boolean eIsSet(int featureID) {

-		switch (featureID) {

-			case CorePackage.SERIALIZED__BYTES:

-				return BYTES_EDEFAULT == null ? bytes != null : !BYTES_EDEFAULT.equals(bytes);

-		}

-		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(" (bytes: ");

-		result.append(bytes);

-		result.append(')');

-		return result.toString();

-	}

-

-} //SerializedImpl

+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Serialized</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.rcptt.ecl.core.impl.SerializedImpl#getBytes <em>Bytes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SerializedImpl extends EObjectImpl implements Serialized {
+	/**
+	 * The default value of the '{@link #getBytes() <em>Bytes</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBytes()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final byte[] BYTES_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getBytes() <em>Bytes</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBytes()
+	 * @generated
+	 * @ordered
+	 */
+	protected byte[] bytes = BYTES_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SerializedImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return CorePackage.Literals.SERIALIZED;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public byte[] getBytes() {
+		return bytes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBytes(byte[] newBytes) {
+		byte[] oldBytes = bytes;
+		bytes = newBytes;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.SERIALIZED__BYTES, oldBytes, bytes));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case CorePackage.SERIALIZED__BYTES:
+				return getBytes();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case CorePackage.SERIALIZED__BYTES:
+				setBytes((byte[])newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case CorePackage.SERIALIZED__BYTES:
+				setBytes(BYTES_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case CorePackage.SERIALIZED__BYTES:
+				return BYTES_EDEFAULT == null ? bytes != null : !BYTES_EDEFAULT.equals(bytes);
+		}
+		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(" (bytes: ");
+		result.append(bytes);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SerializedImpl
diff --git a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/editors/EditorContent.java b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/editors/EditorContent.java
index 165933c..9cebcbd 100644
--- a/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/editors/EditorContent.java
+++ b/rcp/org.eclipse.rcptt.ui/src/org/eclipse/rcptt/ui/editors/EditorContent.java
@@ -26,21 +26,6 @@
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.program.Program;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.views.properties.IPropertySource;
-
 import org.eclipse.rcptt.core.model.IQ7NamedElement;
 import org.eclipse.rcptt.core.model.ITestCase;
 import org.eclipse.rcptt.core.model.ModelException;
@@ -55,6 +40,20 @@
 import org.eclipse.rcptt.ui.controls.VerificationsTable;
 import org.eclipse.rcptt.ui.editors.NamedElementEditorActions.INamedElementActions;
 import org.eclipse.rcptt.ui.editors.ecl.EclSourceViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.program.Program;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.forms.events.HyperlinkEvent;
+import org.eclipse.ui.forms.events.IHyperlinkListener;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Hyperlink;
+import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.views.properties.IPropertySource;
 
 public class EditorContent implements INamedElementActions {
 
@@ -71,7 +70,7 @@
 
 	private StyledText externalRefControl;
 	private boolean scenarioEditor;
-	private boolean supportRefs;
+	private final boolean supportRefs;
 
 	private VerificationsTable verificationsTable;
 	private Section verificationsSection;
@@ -465,7 +464,7 @@
 	public void doTextCommand(int fAction) {
 		if (descriptionComposite.getDescriptionControl().isFocusControl()) {
 			descriptionComposite.getDescriptionControl().invokeAction(fAction);
-		} else if (externalRefControl.isFocusControl()) {
+		} else if (externalRefControl != null && externalRefControl.isFocusControl()) {
 			externalRefControl.invokeAction(fAction);
 		}
 	}
diff --git a/rcpttTests/ECL_IDE_module/Contexts/Ecl Script Context/Bug 442685 NullPointerException.test b/rcpttTests/ECL_IDE_module/Contexts/Ecl Script Context/Bug 442685 NullPointerException.test
new file mode 100644
index 0000000..bffa412
--- /dev/null
+++ b/rcpttTests/ECL_IDE_module/Contexts/Ecl Script Context/Bug 442685 NullPointerException.test
@@ -0,0 +1,55 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Contexts: _ymiyse5IEeCU6db9MgIBkA,_IeEQkPSUEeCE1L2j6bYoFw
+Element-Name: Bug 442685 NullPointerException
+Element-Type: testcase
+Element-Version: 3.0
+External-Reference: https://bugs.eclipse.org/bugs/show_bug.cgi?id=442685
+Id: _NjJO0C3YEeSo8tQHjhwDDw
+Runtime-Version: 1.5.2.qualifier
+Save-Time: 8/27/14 6:23 PM
+Testcase-Type: ecl
+
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa
+Content-Type: text/plain
+Entry-Name: .description
+
+Copyright (c) 2009, 2014 Xored Software Inc and others.
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Eclipse Public License v1.0
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/epl-v10.html
+
+Contributors:
+    Xored Software Inc - initial creation and/or initial documentation
+--------------------------------------------------------------------------------
+
+TEST STEPS
+
+1. Open Ecl Script context editor;
+2. Type Home/End in Name field;
+3. Make sure there are no error. 
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa--
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
+Content-Type: text/ecl
+Entry-Name: .content
+
+get-view "Test Explorer" | get-tree | select "Q7Project/EclContext" | double-click
+
+exec-with-options {
+   	get-editor EclContext | get-editbox -after [get-label "Name:"] | key-type Home
+    verify-error { get-window "Problem Occurred" }
+} -allowStatusDialog
+
+
+exec-with-options {
+    get-editor EclContext | get-editbox -after [get-label "Name:"] | key-type End
+    verify-error { get-window "Problem Occurred" }
+} -allowStatusDialog
+
+exec-with-options {
+    get-editor EclContext | get-editbox -after [get-label "Name:"] | key-type "M1+ARROW_RIGHT"
+    verify-error { get-window "Problem Occurred" }
+} -allowStatusDialog
+
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/rcpttTests/platform_tests/ecl/Switch.test b/rcpttTests/platform_tests/ecl/Switch.test
index d00dbbd..7cf06da 100644
--- a/rcpttTests/platform_tests/ecl/Switch.test
+++ b/rcpttTests/platform_tests/ecl/Switch.test
@@ -1,19 +1,24 @@
 --- RCPTT testcase ---
 Format-Version: 1.0
-Q7-vendor: www.xored.com/q7
 Element-Name: Switch
 Element-Type: testcase
 Element-Version: 3.0
 External-Reference: 
 Id: _gKwkEPd7EeOUrIHOddLXDg
-Q7-Runtime-Version: 1.5.0.qualifier
-Save-Time: 6/19/14 1:45 PM
+Runtime-Version: 1.5.2.201408180747
+Save-Time: 8/28/14 2:24 PM
 Testcase-Type: ecl
 
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
 Content-Type: text/ecl
 Entry-Name: .content
 
+
+//https://bugs.eclipse.org/bugs/show_bug.cgi?id=442016
+switch foo
+	[case foo { bool true }]
+	-default { bool false } | assert-true
+
 // Without default
 echo "right" 
 	| switch 
@@ -51,4 +56,6 @@
 	| equals "Correct" | verify-true
 
 
+
+
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--