diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/.ratings b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/.ratings
new file mode 100644
index 0000000000000000000000000000000000000000..c47be16a4db3088c4b0b9b77ac5561593b3aa735
--- /dev/null
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/.ratings
@@ -0,0 +1,7 @@
+CanBusTransformation.java 96e04106bea67e1158a48b9a2e57e3513f3f1d43 YELLOW
+CanBusTransmissionCatalogTransformation.java 1d1f72d107a59ddaefac42e38cdfa236f688eebc YELLOW
+CanConnectorTransformation.java 9a573216bc5f3fa3c30e9a161d6f06bbc17ac09b YELLOW
+CanConnectorTransmissionCatalogTransformation.java fa822114b375a2efdfa72c9c461099947519418d YELLOW
+PWMActuatorTransformation.java 59001569f6c0b4596114ce9a63258ddb20b344d1 YELLOW
+RasPiGeneratorTransformationBase.java dc2bd2ae0d0759234dc4ce7621034c888285b0df YELLOW
+RaspberryPITransformation.java 8a3ae3ce9acf9b2a7bbf898b02668f3ac94fd435 YELLOW
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanBusTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanBusTransformation.java
index e486ff8a22439e51c5fe37fcc78c403cd5d119cf..96e04106bea67e1158a48b9a2e57e3513f3f1d43 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanBusTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanBusTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -19,42 +17,11 @@ package org.fortiss.af3.platform.raspberry.generator.transform;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.CanBusExecutable;
 import org.fortiss.af3.platform.raspberry.model.CanBus;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link CanBus}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class CanBusTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return CanBusExecutable.class;
+/** Transformation for {@link CanBus}. */
+public class CanBusTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected CanBusTransformation() {
+		super(CanBus.class, CanBusExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return CanBus.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof CanBus;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new CanBusExecutable((CanBus)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanBusTransmissionCatalogTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanBusTransmissionCatalogTransformation.java
index 92f178f31679ecb638e8c01f953b79970e2ad581..1d1f72d107a59ddaefac42e38cdfa236f688eebc 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanBusTransmissionCatalogTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanBusTransmissionCatalogTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: GenericTransmisstionUnitTransmissionCatalogTransformation.java 5274 2012-08-02 07:54:11Z mou $
-|                                                                          |
-| Copyright 2011 ForTISS GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -25,16 +23,8 @@ import org.fortiss.af3.platform.raspberry.model.CanBus;
 import org.fortiss.tooling.kernel.extension.ITransformationProvider;
 import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
 
-/**
- * {@link TransmissionCatalog} generator for {@link GenericTransmissionUnit}.
- * 
- * @author hoelzl
- * @author $Author: mou $
- * @version $Rev: 5274 $
- * @ConQAT.Rating GREEN Hash: C4318B1D240DC4CACC2BB0311CB2B23A
- */
+/** {@link TransmissionCatalog} generator for {@link GenericTransmissionUnit}. */
 public class CanBusTransmissionCatalogTransformation implements ITransformationProvider {
-
 	/** {@inheritDoc} */
 	@Override
 	public Class<?> getTargetClass() {
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanConnectorTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanConnectorTransformation.java
index c13843496c2884f2bdde186b05a8a072f70e8ae5..9a573216bc5f3fa3c30e9a161d6f06bbc17ac09b 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanConnectorTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanConnectorTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -19,42 +17,11 @@ package org.fortiss.af3.platform.raspberry.generator.transform;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.CanConnectorExecutable;
 import org.fortiss.af3.platform.raspberry.model.CanConnector;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link CanConnector}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class CanConnectorTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return CanConnectorExecutable.class;
+/** Transformation for {@link CanConnector}. */
+public class CanConnectorTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected CanConnectorTransformation() {
+		super(CanConnector.class, CanConnectorExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return CanConnector.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof CanConnector;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new CanConnectorExecutable((CanConnector)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanConnectorTransmissionCatalogTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanConnectorTransmissionCatalogTransformation.java
index a0280b740a22499ba0bbb4717fd1749653e68740..fa822114b375a2efdfa72c9c461099947519418d 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanConnectorTransmissionCatalogTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/CanConnectorTransmissionCatalogTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: GenericTransceiverTransmissionCatalogTransformation.java 5274 2012-08-02 07:54:11Z mou $
-|                                                                          |
-| Copyright 2011 ForTISS GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -24,16 +22,8 @@ import org.fortiss.af3.platform.raspberry.model.CanConnector;
 import org.fortiss.tooling.kernel.extension.ITransformationProvider;
 import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
 
-/**
- * {@link TransmissionCatalog} generator for {@link GenericTransceiver}.
- * 
- * @author hoelzl
- * @author $Author: mou $
- * @version $Rev: 5274 $
- * @ConQAT.Rating GREEN Hash: 99AE1800CB3BA900FDB2FD75FC254AD4
- */
+/** {@link TransmissionCatalog} generator for {@link GenericTransceiver}. */
 public class CanConnectorTransmissionCatalogTransformation implements ITransformationProvider {
-
 	/** {@inheritDoc} */
 	@Override
 	public Class<?> getTargetClass() {
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/PWMActuatorTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/PWMActuatorTransformation.java
index ada9a6c216338ce35cc293f5cbcb079d288cb2c8..59001569f6c0b4596114ce9a63258ddb20b344d1 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/PWMActuatorTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/PWMActuatorTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -19,40 +17,11 @@ package org.fortiss.af3.platform.raspberry.generator.transform;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.PWMActuatorExecutable;
 import org.fortiss.af3.platform.raspberry.model.ActuatorPWM;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ActuatorPWM}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class PWMActuatorTransformation implements ITransformationProvider {
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return PWMActuatorExecutable.class;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ActuatorPWM.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ActuatorPWM;
-	}
 
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new PWMActuatorExecutable((ActuatorPWM)source);
+/** Transformation for {@link ActuatorPWM}. */
+public class PWMActuatorTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected PWMActuatorTransformation() {
+		super(ActuatorPWM.class, PWMActuatorExecutable.class);
 	}
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/RasPiGeneratorTransformationBase.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/RasPiGeneratorTransformationBase.java
new file mode 100644
index 0000000000000000000000000000000000000000..dc2bd2ae0d0759234dc4ce7621034c888285b0df
--- /dev/null
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/RasPiGeneratorTransformationBase.java
@@ -0,0 +1,77 @@
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.af3.platform.raspberry.generator.transform;
+
+import java.lang.reflect.Constructor;
+
+import org.eclipse.emf.ecore.EObject;
+import org.fortiss.af3.platform.language.executable.ExecutableBase;
+import org.fortiss.af3.platform.raspberry.model.RaspberryPi;
+import org.fortiss.tooling.kernel.extension.ITransformationProvider;
+import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
+import org.fortiss.tooling.kernel.extension.exception.TransformationFailedException;
+
+/**
+ * Base class for transformations from {@link RaspberryPi} model elements to executables.
+ * 
+ * @author hoelzl
+ */
+public class RasPiGeneratorTransformationBase implements ITransformationProvider {
+	/** The model element class. */
+	private final Class<? extends EObject> modelElementClass;
+	/** The executable class. */
+	private final Class<? extends ExecutableBase<? extends EObject>> executableClass;
+
+	/** Constructor. */
+	protected RasPiGeneratorTransformationBase(Class<? extends EObject> modelElementClass,
+			Class<? extends ExecutableBase<? extends EObject>> executableClass) {
+		this.modelElementClass = modelElementClass;
+		this.executableClass = executableClass;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public Class<?> getTargetClass() {
+		return executableClass;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public boolean
+			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
+		return modelElementClass.isAssignableFrom(sourceClass);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public boolean canTransform(Object source, ITransformationContext context) {
+		return source != null && modelElementClass.isInstance(source);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public Object transform(Object source, ITransformationContext context)
+			throws TransformationFailedException {
+		try {
+			Constructor<? extends ExecutableBase<? extends EObject>> c =
+					executableClass.getConstructor(modelElementClass);
+			return c.newInstance(source);
+		} catch(Exception e) {
+			e.printStackTrace(System.err);
+			throw new TransformationFailedException(this, null, null);
+		}
+	}
+}
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/RaspberryPITransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/RaspberryPITransformation.java
index dabce8392532fc04a899859b34ba514d26a04673..8a3ae3ce9acf9b2a7bbf898b02668f3ac94fd435 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/RaspberryPITransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/RaspberryPITransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -19,42 +17,11 @@ package org.fortiss.af3.platform.raspberry.generator.transform;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.RaspberryPIExecutable;
 import org.fortiss.af3.platform.raspberry.model.RaspberryPi;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation from {@link RaspberryPi} to {@link RaspberryPIExecutable}.
- * 
- * @author eder
- * @author $Author: eder $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class RaspberryPITransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return RaspberryPIExecutable.class;
+/** Transformation from {@link RaspberryPi} to {@link RaspberryPIExecutable}. */
+public class RaspberryPITransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected RaspberryPITransformation() {
+		super(RaspberryPi.class, RaspberryPIExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return RaspberryPi.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof RaspberryPi;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new RaspberryPIExecutable((RaspberryPi)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/.ratings b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/.ratings
new file mode 100644
index 0000000000000000000000000000000000000000..7940ce8881efaba1ea672178ad8218bf8abb6ca0
--- /dev/null
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/.ratings
@@ -0,0 +1,12 @@
+Button1Transformation.java cf29ff3057bf1fb254309777b41dcb758241d44c YELLOW
+Button2Transformation.java 52ce45a440a11617acf62ac39af48341876d179e YELLOW
+Button3Transformation.java 55bdc4524c22f5f355e41a1be747fd14b471e762 YELLOW
+Button4Transformation.java e02b53924f3e3132e2b9e795374643397a0f3832 YELLOW
+ButtonL1Transformation.java 7f66bdfa131c62d777a0e9c26a3376532b46aa63 YELLOW
+ButtonL2Transformation.java c7389248313c93796d68efa840b14f8379ca6af3 YELLOW
+ButtonR1Transformation.java e387505188a77366419ac425df83dcf0dbc6a8a0 YELLOW
+ButtonR2Transformation.java e209a1ca0aeb1e934ee739d44270b8d6f9856fdf YELLOW
+Left_StickXTransformation.java b9572b80ff948dbd8357a6e5d3b8006f50ad327d YELLOW
+Left_StickYTransformation.java e2a9262b8ccd4bff9bb273dec5867cf453fd0738 YELLOW
+Right_StickXTransformation.java 514306b89d16bfa69852511ec42931ec5ff1b02c YELLOW
+Right_StickYTransformation.java 42e7d9170087e4a766362c6aa36ade91d81056d2 YELLOW
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button1Transformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button1Transformation.java
index e45b89e2a36d8539eb404a28f493fa3ef54b9142..cf29ff3057bf1fb254309777b41dcb758241d44c 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button1Transformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button1Transformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.gamepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.Button1Executable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.gamepad.Button1;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link Button1}
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class Button1Transformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return Button1Executable.class;
+/** Transformation for {@link Button1}. */
+public class Button1Transformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected Button1Transformation() {
+		super(Button1.class, Button1Executable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return Button1.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof Button1;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new Button1Executable((Button1)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button2Transformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button2Transformation.java
index 8e3e58cf51dea515e251be05ebf4abba150fe24f..52ce45a440a11617acf62ac39af48341876d179e 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button2Transformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button2Transformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.gamepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.Button2Executable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.gamepad.Button2;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link Button2}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class Button2Transformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return Button2Executable.class;
+/** Transformation for {@link Button2}. */
+public class Button2Transformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected Button2Transformation() {
+		super(Button2.class, Button2Executable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return Button2.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof Button2;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new Button2Executable((Button2)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button3Transformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button3Transformation.java
index c599e6c4c60233bf246657f4cf703b71a624ecda..55bdc4524c22f5f355e41a1be747fd14b471e762 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button3Transformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button3Transformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.gamepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.Button3Executable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.gamepad.Button3;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link Button3}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class Button3Transformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return Button3Executable.class;
+/** Transformation for {@link Button3}. */
+public class Button3Transformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected Button3Transformation() {
+		super(Button3.class, Button3Executable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return Button3.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof Button3;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new Button3Executable((Button3)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button4Transformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button4Transformation.java
index a5e9affb7fc50a61df77f5edfe587dab681f14ec..e02b53924f3e3132e2b9e795374643397a0f3832 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button4Transformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Button4Transformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.gamepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.Button4Executable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.gamepad.Button4;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link Button4}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class Button4Transformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return Button4Executable.class;
+/** Transformation for {@link Button4}. */
+public class Button4Transformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected Button4Transformation() {
+		super(Button4.class, Button4Executable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return Button4.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof Button4;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new Button4Executable((Button4)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonL1Transformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonL1Transformation.java
index 55a3f76ae507cfda329c46bf143298c3b1eead8f..7f66bdfa131c62d777a0e9c26a3376532b46aa63 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonL1Transformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonL1Transformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.gamepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.ButtonL1Executable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.gamepad.ButtonL1;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonL1}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonL1Transformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonL1Executable.class;
+/** Transformation for {@link ButtonL1}. */
+public class ButtonL1Transformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonL1Transformation() {
+		super(ButtonL1.class, ButtonL1Executable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonL1.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonL1;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonL1Executable((ButtonL1)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonL2Transformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonL2Transformation.java
index 2b358b7319fe22bd676139053bf3be7ff3f98197..c7389248313c93796d68efa840b14f8379ca6af3 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonL2Transformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonL2Transformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.gamepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.ButtonL2Executable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.gamepad.ButtonL2;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonL2}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonL2Transformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonL2Executable.class;
+/** Transformation for {@link ButtonL2}. */
+public class ButtonL2Transformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonL2Transformation() {
+		super(ButtonL2.class, ButtonL2Executable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonL2.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonL2;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonL2Executable((ButtonL2)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonR1Transformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonR1Transformation.java
index ccfbbef4c422202ecaf94c12945c626a00b14be9..e387505188a77366419ac425df83dcf0dbc6a8a0 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonR1Transformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonR1Transformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.gamepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.ButtonR1Executable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.gamepad.ButtonR1;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonR1}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonR1Transformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonR1Executable.class;
+/** Transformation for {@link ButtonR1}. */
+public class ButtonR1Transformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonR1Transformation() {
+		super(ButtonR1.class, ButtonR1Executable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonR1.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonR1;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonR1Executable((ButtonR1)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonR2Transformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonR2Transformation.java
index 3e66560cbf087ba6a15db2e3bcc6488b8e750cdf..e209a1ca0aeb1e934ee739d44270b8d6f9856fdf 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonR2Transformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/ButtonR2Transformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.gamepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.ButtonR2Executable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.gamepad.ButtonR2;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonR2}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonR2Transformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonR2Executable.class;
+/** Transformation for {@link ButtonR2}. */
+public class ButtonR2Transformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonR2Transformation() {
+		super(ButtonR2.class, ButtonR2Executable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonR2.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonR2;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonR2Executable((ButtonR2)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Left_StickXTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Left_StickXTransformation.java
index 90c1713f73468f07637ca8e742fb29d9a2468e93..b9572b80ff948dbd8357a6e5d3b8006f50ad327d 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Left_StickXTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Left_StickXTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -17,45 +15,14 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.platform.raspberry.generator.transform.gamepad;
 
-import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.ButtonR2Executable;
 import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.Left_StickXExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.gamepad.Left_StickX_Position;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link Left_StickX_Position}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class Left_StickXTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonR2Executable.class;
+/** Transformation for {@link Left_StickX_Position}. */
+public class Left_StickXTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected Left_StickXTransformation() {
+		super(Left_StickX_Position.class, Left_StickXExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return Left_StickX_Position.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof Left_StickX_Position;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new Left_StickXExecutable((Left_StickX_Position)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Left_StickYTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Left_StickYTransformation.java
index 2d322eaf39590999928edae896d6560436d1990c..e2a9262b8ccd4bff9bb273dec5867cf453fd0738 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Left_StickYTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Left_StickYTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -17,45 +15,14 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.platform.raspberry.generator.transform.gamepad;
 
-import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.ButtonR2Executable;
 import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.Left_StickYExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.gamepad.Left_StickY_Position;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link Left_StickY_Position}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class Left_StickYTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonR2Executable.class;
+/** Transformation for {@link Left_StickY_Position}. */
+public class Left_StickYTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected Left_StickYTransformation() {
+		super(Left_StickY_Position.class, Left_StickYExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return Left_StickY_Position.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof Left_StickY_Position;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new Left_StickYExecutable((Left_StickY_Position)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Right_StickXTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Right_StickXTransformation.java
index 984b3312688f312b98ac90ebfbe9af91cc1b0421..514306b89d16bfa69852511ec42931ec5ff1b02c 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Right_StickXTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Right_StickXTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -17,45 +15,14 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.platform.raspberry.generator.transform.gamepad;
 
-import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.ButtonR2Executable;
 import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.Right_StickXExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.gamepad.Right_StickX_Position;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link Right_StickX_Position}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class Right_StickXTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonR2Executable.class;
+/** Transformation for {@link Right_StickX_Position}. */
+public class Right_StickXTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected Right_StickXTransformation() {
+		super(Right_StickX_Position.class, Right_StickXExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return Right_StickX_Position.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof Right_StickX_Position;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new Right_StickXExecutable((Right_StickX_Position)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Right_StickYTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Right_StickYTransformation.java
index ba6b02daab292ca479d166f3a59247e60a2ba678..42e7d9170087e4a766362c6aa36ade91d81056d2 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Right_StickYTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/gamepad/Right_StickYTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -17,45 +15,14 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.platform.raspberry.generator.transform.gamepad;
 
-import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.ButtonR2Executable;
 import org.fortiss.af3.platform.raspberry.generator.executable.gamepad.Right_StickYExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.gamepad.Right_StickY_Position;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link Right_StickY_Position}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 18709 $
- * @ConQAT.Rating RED Hash:
- */
-public class Right_StickYTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonR2Executable.class;
+/** Transformation for {@link Right_StickY_Position}. */
+public class Right_StickYTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected Right_StickYTransformation() {
+		super(Right_StickY_Position.class, Right_StickYExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return Right_StickY_Position.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof Right_StickY_Position;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new Right_StickYExecutable((Right_StickY_Position)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/.ratings b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/.ratings
new file mode 100644
index 0000000000000000000000000000000000000000..cc234265e12b6dbafdc780298f03b9376c57ebab
--- /dev/null
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/.ratings
@@ -0,0 +1,22 @@
+ButtonATransformation.java af588032d99083fc392d53bc70a7fe995b37eaa0 YELLOW
+ButtonBTransformation.java e7945b2b2b9c4b6241da5f2288f17e9b23f8e167 YELLOW
+ButtonHomeTransformation.java e513ef435e85b7b446a1489c6cbbefb6c96170fc YELLOW
+ButtonL1Transformation.java 5a9ec2fae13a3fa46289e81ee8118eacd12cd345 YELLOW
+ButtonL3Transformation.java a99137bd1d32b20e7e7d3cbc32ebe80bd86d97c5 YELLOW
+ButtonR1Transformation.java 0201c9ed17a3c4a2248121e37fc3dc5fadf76429 YELLOW
+ButtonR3Transformation.java 58d8879055f70f9ea9d60e3de538f1b2e6b8a54a YELLOW
+ButtonSelectTransformation.java 80c8d0dc84aaeb04933aca50f33700786928c48b YELLOW
+ButtonStartTransformation.java 8928e33a1778e02d95de59c3057bca3ad4dc1dbc YELLOW
+ButtonXTransformation.java 5cfddef0628d56841520fde9f7f732bc1f14ed99 YELLOW
+ButtonYTransformation.java 3b4dc8dfc3100f76ece2f405814556198a608ff4 YELLOW
+DPadDownTransformation.java e53676d1979cdad3084ea95db2a691bf5fbad9da YELLOW
+DPadLeftTransformation.java 7d22bee3da06f8cf0e29978d9392f780f8d92470 YELLOW
+DPadRightTransformation.java fbda41d02e6fa80cf61186f721baf8d336693c42 YELLOW
+DPadUpTransformation.java 831f70151a443d97d2c5ebeba6db44f23c7486ca YELLOW
+L2PositionTransformation.java 5733be969968e4a591516f11072eddaba4bebe9c YELLOW
+Left_StickXTransformation.java 801623e148b31df295fdd8211a936c480ec83840 YELLOW
+Left_StickYTransformation.java 9f5cebd513911ec361e056bebcd0d2cf94e4247b YELLOW
+R2PositionTransformation.java 6bd6ed0dd11a6739af89de4ba52af96618facbc4 YELLOW
+Right_StickXTransformation.java bef63f33a29f14b0c6cd4b9edcd8cb501cb3da39 YELLOW
+Right_StickYTransformation.java e81e8eb826f8a33452e8dec8edd04212c6c69b2a YELLOW
+SimpleRumbleFeatureTransformation.java 9a7500b3e2760f5ed43fb55c30a7794d4307469f YELLOW
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonATransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonATransformation.java
index 44c73ea89ebcf14f04f43c84f25ce2264b984dc7..af588032d99083fc392d53bc70a7fe995b37eaa0 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonATransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonATransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: ButtonATransformation.java 22478 2017-12-08 09:55:32Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: ButtonATransformation.java 22478 2017-12-08 09:55:32Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.ButtonAExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.ButtonA;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonA}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22478 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonATransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonAExecutable.class;
+/** Transformation for {@link ButtonA}. */
+public class ButtonATransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonATransformation() {
+		super(ButtonA.class, ButtonAExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonA.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonA;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonAExecutable((ButtonA)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonBTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonBTransformation.java
index 88b6d45a989388b8758f1e8b12192dafc9cad785..e7945b2b2b9c4b6241da5f2288f17e9b23f8e167 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonBTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonBTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: ButtonBTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: ButtonBTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.ButtonBExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.ButtonB;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonB}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonBTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonBExecutable.class;
+/** Transformation for {@link ButtonB}. */
+public class ButtonBTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonBTransformation() {
+		super(ButtonB.class, ButtonBExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonB.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonB;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonBExecutable((ButtonB)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonHomeTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonHomeTransformation.java
index 4b082c5a37cdceab88b8c3c26041d020e14b024b..e513ef435e85b7b446a1489c6cbbefb6c96170fc 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonHomeTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonHomeTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: ButtonHomeTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: ButtonHomeTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.ButtonHomeExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.ButtonHome;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonHome}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonHomeTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonHomeExecutable.class;
+/** Transformation for {@link ButtonHome}. */
+public class ButtonHomeTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonHomeTransformation() {
+		super(ButtonHome.class, ButtonHomeExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonHome.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonHome;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonHomeExecutable((ButtonHome)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonL1Transformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonL1Transformation.java
index 7f18916bbb32f6664c502b301f52fe01af63405c..5a9ec2fae13a3fa46289e81ee8118eacd12cd345 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonL1Transformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonL1Transformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: ButtonL1Transformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: ButtonL1Transformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.ButtonL1Executable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.ButtonL1;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonL1}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonL1Transformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonL1Executable.class;
+/** Transformation for {@link ButtonL1}. */
+public class ButtonL1Transformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonL1Transformation() {
+		super(ButtonL1.class, ButtonL1Executable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonL1.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonL1;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonL1Executable((ButtonL1)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonL3Transformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonL3Transformation.java
index d112e1544df6cb676c35c23a09f2eed77245cb7e..a99137bd1d32b20e7e7d3cbc32ebe80bd86d97c5 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonL3Transformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonL3Transformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: ButtonL3Transformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: ButtonL3Transformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.ButtonL3Executable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.ButtonL3;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonL3}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonL3Transformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonL3Executable.class;
+/** Transformation for {@link ButtonL3}. */
+public class ButtonL3Transformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonL3Transformation() {
+		super(ButtonL3.class, ButtonL3Executable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonL3.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonL3;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonL3Executable((ButtonL3)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonR1Transformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonR1Transformation.java
index 7d4a13ec4adc84d90686cf523980c520e8ed0240..0201c9ed17a3c4a2248121e37fc3dc5fadf76429 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonR1Transformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonR1Transformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: ButtonR1Transformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: ButtonR1Transformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.ButtonR1Executable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.ButtonR1;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonR1}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonR1Transformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonR1Executable.class;
+/** Transformation for {@link ButtonR1}. */
+public class ButtonR1Transformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonR1Transformation() {
+		super(ButtonR1.class, ButtonR1Executable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonR1.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonR1;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonR1Executable((ButtonR1)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonR3Transformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonR3Transformation.java
index 615f2f84ad48b94111d873318feddc1ded047b5a..58d8879055f70f9ea9d60e3de538f1b2e6b8a54a 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonR3Transformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonR3Transformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: ButtonR3Transformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: ButtonR3Transformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.ButtonR3Executable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.ButtonR3;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonR3}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonR3Transformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonR3Executable.class;
+/** Transformation for {@link ButtonR3}. */
+public class ButtonR3Transformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonR3Transformation() {
+		super(ButtonR3.class, ButtonR3Executable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonR3.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonR3;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonR3Executable((ButtonR3)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonSelectTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonSelectTransformation.java
index dcaa6a8b06ac7ac8bf0b496cdbfcd0c3aa818c1d..80c8d0dc84aaeb04933aca50f33700786928c48b 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonSelectTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonSelectTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: ButtonSelectTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: ButtonSelectTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.ButtonSelectExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.ButtonSelect;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonSelect}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonSelectTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonSelectExecutable.class;
+/** Transformation for {@link ButtonSelect}. */
+public class ButtonSelectTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonSelectTransformation() {
+		super(ButtonSelect.class, ButtonSelectExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonSelect.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonSelect;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonSelectExecutable((ButtonSelect)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonStartTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonStartTransformation.java
index 299d9fd76aed6118651961ce75522c4da50f2389..8928e33a1778e02d95de59c3057bca3ad4dc1dbc 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonStartTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonStartTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: ButtonStartTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: ButtonStartTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.ButtonStartExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.ButtonStart;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonStart}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonStartTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonStartExecutable.class;
+/** Transformation for {@link ButtonStart}. */
+public class ButtonStartTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonStartTransformation() {
+		super(ButtonStart.class, ButtonStartExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonStart.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonStart;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonStartExecutable((ButtonStart)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonXTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonXTransformation.java
index 9a3c3430349617f72d605ef47cdffd8731aed52c..5cfddef0628d56841520fde9f7f732bc1f14ed99 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonXTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonXTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: ButtonXTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: ButtonXTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.ButtonXExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.ButtonX;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonX}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonXTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonXExecutable.class;
+/** Transformation for {@link ButtonX}. */
+public class ButtonXTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonXTransformation() {
+		super(ButtonX.class, ButtonXExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonX.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonX;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonXExecutable((ButtonX)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonYTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonYTransformation.java
index efe2eabc76358308a997949f3f647c02f800d649..3b4dc8dfc3100f76ece2f405814556198a608ff4 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonYTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/ButtonYTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: ButtonYTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: ButtonYTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.ButtonYExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.ButtonY;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link ButtonY}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class ButtonYTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return ButtonYExecutable.class;
+/** Transformation for {@link ButtonY}. */
+public class ButtonYTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected ButtonYTransformation() {
+		super(ButtonY.class, ButtonYExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return ButtonY.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof ButtonY;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new ButtonYExecutable((ButtonY)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadDownTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadDownTransformation.java
index fe13e92a34d83e3fbffab371d44a9e4f504b0a93..e53676d1979cdad3084ea95db2a691bf5fbad9da 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadDownTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadDownTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: DPadDownTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: DPadDownTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.DPadDownExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.DPadDown;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link DPadDown}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class DPadDownTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return DPadDownExecutable.class;
+/** Transformation for {@link DPadDown}. */
+public class DPadDownTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected DPadDownTransformation() {
+		super(DPadDown.class, DPadDownExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return DPadDown.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof DPadDown;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new DPadDownExecutable((DPadDown)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadLeftTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadLeftTransformation.java
index 37f9a608cd458a8d8e85fa29e98265008342b334..7d22bee3da06f8cf0e29978d9392f780f8d92470 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadLeftTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadLeftTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: DPadLeftTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: DPadLeftTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.DPadLeftExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.DPadLeft;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link DPadLeft}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class DPadLeftTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return DPadLeftExecutable.class;
+/** Transformation for {@link DPadLeft}. */
+public class DPadLeftTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected DPadLeftTransformation() {
+		super(DPadLeft.class, DPadLeftExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return DPadLeft.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof DPadLeft;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new DPadLeftExecutable((DPadLeft)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadRightTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadRightTransformation.java
index dc66da3b742b200e8aab517bcf6426cf3fa53f9b..fbda41d02e6fa80cf61186f721baf8d336693c42 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadRightTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadRightTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: DPadRightTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,42 +16,13 @@ $Id: DPadRightTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.DPadRightExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.DPadRight;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link DPadRight}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class DPadRightTransformation implements ITransformationProvider {
-
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return DPadRightExecutable.class;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return DPadRight.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof DPadRight;
-	}
 
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new DPadRightExecutable((DPadRight)source);
+/** Transformation for {@link DPadRight}. */
+public class DPadRightTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected DPadRightTransformation() {
+		super(DPadRight.class, DPadRightExecutable.class);
 	}
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadUpTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadUpTransformation.java
index 9d42e00a0a88b76ed380b0dce9bed850e22101a3..831f70151a443d97d2c5ebeba6db44f23c7486ca 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadUpTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/DPadUpTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: DPadUpTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: DPadUpTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.DPadUpExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.DPadUp;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link DPadUp}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class DPadUpTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return DPadUpExecutable.class;
+/** Transformation for {@link DPadUp}. */
+public class DPadUpTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected DPadUpTransformation() {
+		super(DPadUp.class, DPadUpExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return DPadUp.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof DPadUp;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new DPadUpExecutable((DPadUp)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/L2PositionTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/L2PositionTransformation.java
index e01c6d33ecb2963451c1b4749bbdd16befb7f32a..5733be969968e4a591516f11072eddaba4bebe9c 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/L2PositionTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/L2PositionTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: L2PositionTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: L2PositionTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.L2PositionExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.L2_Position;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link L2_Position}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class L2PositionTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return L2PositionExecutable.class;
+/** Transformation for {@link L2_Position}. */
+public class L2PositionTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected L2PositionTransformation() {
+		super(L2_Position.class, L2PositionExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return L2_Position.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof L2_Position;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new L2PositionExecutable((L2_Position)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Left_StickXTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Left_StickXTransformation.java
index 4e938c472082adefdbbb5594e3f9883f91408636..801623e148b31df295fdd8211a936c480ec83840 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Left_StickXTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Left_StickXTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: Left_StickXTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: Left_StickXTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.Left_StickXExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.Left_StickX_Position;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link Left_StickX_Position}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class Left_StickXTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return Left_StickXExecutable.class;
+/** Transformation for {@link Left_StickX_Position}. */
+public class Left_StickXTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected Left_StickXTransformation() {
+		super(Left_StickX_Position.class, Left_StickXExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return Left_StickX_Position.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof Left_StickX_Position;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new Left_StickXExecutable((Left_StickX_Position)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Left_StickYTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Left_StickYTransformation.java
index f28dc5bc1be6620f4ef5ebb870a9715d24fd682d..9f5cebd513911ec361e056bebcd0d2cf94e4247b 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Left_StickYTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Left_StickYTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: Left_StickYTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: Left_StickYTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.Left_StickYExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.Left_StickY_Position;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link Left_StickY_Position}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class Left_StickYTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return Left_StickYExecutable.class;
+/** Transformation for {@link Left_StickY_Position}. */
+public class Left_StickYTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected Left_StickYTransformation() {
+		super(Left_StickY_Position.class, Left_StickYExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return Left_StickY_Position.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof Left_StickY_Position;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new Left_StickYExecutable((Left_StickY_Position)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/R2PositionTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/R2PositionTransformation.java
index 47e23fbc6c676982cc13aabb2d53599f78bf9674..6bd6ed0dd11a6739af89de4ba52af96618facbc4 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/R2PositionTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/R2PositionTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: R2PositionTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: R2PositionTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.R2PositionExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.R2_Position;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link R2_Position}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class R2PositionTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return R2PositionExecutable.class;
+/** Transformation for {@link R2_Position}. */
+public class R2PositionTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected R2PositionTransformation() {
+		super(R2_Position.class, R2PositionExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return R2_Position.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof R2_Position;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new R2PositionExecutable((R2_Position)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Right_StickXTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Right_StickXTransformation.java
index 5a53880b57f8f77419728ab3b4624f187b30519e..bef63f33a29f14b0c6cd4b9edcd8cb501cb3da39 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Right_StickXTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Right_StickXTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: Right_StickXTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: Right_StickXTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.Right_StickXExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.Right_StickX_Position;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link Right_StickX_Position}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class Right_StickXTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return Right_StickXExecutable.class;
+/** Transformation for {@link Right_StickX_Position}. */
+public class Right_StickXTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected Right_StickXTransformation() {
+		super(Right_StickX_Position.class, Right_StickXExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return Right_StickX_Position.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof Right_StickX_Position;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new Right_StickXExecutable((Right_StickX_Position)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Right_StickYTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Right_StickYTransformation.java
index b2b03e94855607ffeddf3dcae2cea67baa68524d..e81e8eb826f8a33452e8dec8edd04212c6c69b2a 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Right_StickYTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/Right_StickYTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: Right_StickYTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,43 +16,13 @@ $Id: Right_StickYTransformation.java 22462 2017-12-07 13:24:17Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.Right_StickYExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.Right_StickY_Position;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link Right_StickY_Position}.
- * 
- * @author eder
- * @author $Author: hoelzl $
- * @version $Rev: 22462 $
- * @ConQAT.Rating RED Hash:
- */
-public class Right_StickYTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return Right_StickYExecutable.class;
+/** Transformation for {@link Right_StickY_Position}. */
+public class Right_StickYTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected Right_StickYTransformation() {
+		super(Right_StickY_Position.class, Right_StickYExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return Right_StickY_Position.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof Right_StickY_Position;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new Right_StickYExecutable((Right_StickY_Position)source);
-	}
-
 }
diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/SimpleRumbleFeatureTransformation.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/SimpleRumbleFeatureTransformation.java
index 955ef307bb699b35aa29080feca272b794d0ffe5..9a7500b3e2760f5ed43fb55c30a7794d4307469f 100644
--- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/SimpleRumbleFeatureTransformation.java
+++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/transform/rumblepad/SimpleRumbleFeatureTransformation.java
@@ -1,7 +1,5 @@
-/*--------------------------------------------------------------------------+
-$Id: SimpleRumbleFeatureTransformation.java 22478 2017-12-08 09:55:32Z hoelzl $
-|                                                                          |
-| Copyright 2017 fortiss GmbH                     |
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
 |                                                                          |
 | Licensed under the Apache License, Version 2.0 (the "License");          |
 | you may not use this file except in compliance with the License.         |
@@ -18,38 +16,13 @@ $Id: SimpleRumbleFeatureTransformation.java 22478 2017-12-08 09:55:32Z hoelzl $
 package org.fortiss.af3.platform.raspberry.generator.transform.rumblepad;
 
 import org.fortiss.af3.platform.raspberry.generator.executable.rumblepad.SimpleRumbleFeatureExecutable;
+import org.fortiss.af3.platform.raspberry.generator.transform.RasPiGeneratorTransformationBase;
 import org.fortiss.af3.platform.raspberry.model.rumblepad.SimpleRumbleFeature;
-import org.fortiss.tooling.kernel.extension.ITransformationProvider;
-import org.fortiss.tooling.kernel.extension.data.ITransformationContext;
-
-/**
- * Transformation for {@link SimpleRumbleFeature}.
- */
-public class SimpleRumbleFeatureTransformation implements ITransformationProvider {
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<?> getTargetClass() {
-		return SimpleRumbleFeatureExecutable.class;
+/** Transformation for {@link SimpleRumbleFeature}. */
+public class SimpleRumbleFeatureTransformation extends RasPiGeneratorTransformationBase {
+	/** Constructor. */
+	protected SimpleRumbleFeatureTransformation() {
+		super(SimpleRumbleFeature.class, SimpleRumbleFeatureExecutable.class);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean
-			canHandleChainTransformation(Class<?> sourceClass, ITransformationContext context) {
-		return SimpleRumbleFeature.class.isAssignableFrom(sourceClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public boolean canTransform(Object source, ITransformationContext context) {
-		return source instanceof SimpleRumbleFeature;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Object transform(Object source, ITransformationContext context) {
-		return new SimpleRumbleFeatureExecutable((SimpleRumbleFeature)source);
-	}
-
 }