Converted SLG Linux transformers to Java - step 1
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/generators/LinuxMakeGenerator.xtend b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/generators/LinuxMakeGenerator.xtend
new file mode 100644
index 0000000..47853b3
--- /dev/null
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/generators/LinuxMakeGenerator.xtend
@@ -0,0 +1,57 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020-2021 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.slg.linux.generators
+
+class LinuxMakeGenerator {
+
+	// Suppress default constructor
+	private new() {
+		throw new IllegalStateException("Utility class");
+	}
+
+	static def String getContent(boolean experimentalCodeMatching, boolean instrumentation) '''
+		synthetic: main.o tasks.o runnables.o «IF experimentalCodeMatching»codesnippets.o«ENDIF» «IF instrumentation»instrument.o«ENDIF» «IF !experimentalCodeMatching» labels.o ticksUtils.o«ENDIF»
+			gcc -o synthetic main.o tasks.o runnables.o «IF !experimentalCodeMatching» labels.o ticksUtils.o«ENDIF» «IF experimentalCodeMatching»codesnippets.o«ENDIF» «IF instrumentation»instrument.o«ENDIF» -pthread
+		
+		main.o: Executable/main/_src/main.c
+			gcc -c «IF !experimentalCodeMatching»-Isynthetic_gen/labels/_inc -Isynthetic_gen/ticksUtils/_inc«ENDIF»  -Isynthetic_gen/tasks/_inc -Isynthetic_gen/runnables/_inc -Isynthetic_gen «IF experimentalCodeMatching»-Isynthetic_gen/codesnippets/_inc«ENDIF» Executable/main/_src/main.c
+		
+		tasks.o: synthetic_gen/tasks/_src/tasks.c
+			gcc -c «IF !experimentalCodeMatching»-Isynthetic_gen/labels/_inc -Isynthetic_gen/ticksUtils/_inc«ENDIF»  -Isynthetic_gen/tasks/_inc -Isynthetic_gen/runnables/_inc «IF experimentalCodeMatching»-Isynthetic_gen/codesnippets/_inc«ENDIF» synthetic_gen/tasks/_src/tasks.c
+			
+		runnables.o: synthetic_gen/runnables/_src/runnables.c
+			gcc -c «IF !experimentalCodeMatching»-Isynthetic_gen/labels/_inc -Isynthetic_gen/ticksUtils/_inc«ENDIF»  -Isynthetic_gen/runnables/_inc  «IF experimentalCodeMatching»-Isynthetic_gen/codesnippets/_inc«ENDIF» synthetic_gen/runnables/_src/runnables.c -O2
+		
+		
+		«IF !experimentalCodeMatching»
+			labels.o: synthetic_gen/labels/_src/labels.c
+				gcc -c -Isynthetic_gen/labels/_inc  synthetic_gen/labels/_src/labels.c -O2
+			
+			ticksUtils.o: synthetic_gen/ticksUtils/_src/ticksUtils.c
+				gcc -c -Isynthetic_gen/ticksUtils/_inc synthetic_gen/ticksUtils/_src/ticksUtils.c -O2
+			
+		«ELSE»
+			codesnippets.o: synthetic_gen/codesnippets/_src/codesnippets.c
+				gcc -c -Isynthetic_gen/codesnippets/_inc synthetic_gen/codesnippets/_src/codesnippets.c
+		«ENDIF»
+		
+		«IF instrumentation »	
+			instrument.o: synthetic_gen/instrument.c
+				gcc -c -Isynthetic_gen synthetic_gen/instrument.c
+		«ENDIF»
+	'''
+
+}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/generators/LinuxTicksUtilsTranslationUnit.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/generators/LinuxTicksUtilsTranslationUnit.java
index f740a96..5f58af8 100644
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/generators/LinuxTicksUtilsTranslationUnit.java
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/generators/LinuxTicksUtilsTranslationUnit.java
@@ -35,7 +35,7 @@
 
 	@Override
 	public String getModuleName() {
-		return LinuxTicksUtilsTranslationUnit.getModuleNameStatic();
+		return getModuleNameStatic();
 	}
 
 	public CharSequence getExecCall(final String params) {
@@ -86,8 +86,8 @@
 
 	private void toH() {
 
-		incAppend(LinuxTicksUtilsGenerator.burnTicksDecleration().toString());
-		incAppend(LinuxTicksUtilsGenerator.burnTicksStatisticsDecleration().toString());
+		incAppend(LinuxTicksUtilsGenerator.burnTicksDecleration());
+		incAppend(LinuxTicksUtilsGenerator.burnTicksStatisticsDecleration());
 	}
 
 }
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxLabelTransformer.xtend b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxLabelTransformer.xtend
deleted file mode 100644
index 796843a..0000000
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxLabelTransformer.xtend
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- ********************************************************************************
- * Copyright (c) 2020-2021 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-
-package org.eclipse.app4mc.slg.linux.transformers
-
-import com.google.inject.Inject
-import com.google.inject.Singleton
-import org.eclipse.app4mc.amalthea.model.Label
-import org.eclipse.app4mc.slg.linux.generators.LinuxLabelTranslationUnit
-import org.eclipse.app4mc.transformation.util.OutputBuffer
-
-@Singleton
-class LinuxLabelTransformer extends LinuxBaseTransformer {
-
-	@Inject OutputBuffer outputBuffer;
-
-	def create new LinuxLabelTranslationUnit(outputBuffer, label) transform(Label label) {
-	}
-
-}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxMakeTransformer.xtend b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxMakeTransformer.xtend
deleted file mode 100644
index 975fb71..0000000
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxMakeTransformer.xtend
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- ********************************************************************************
- * Copyright (c) 2020-2021 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-
-package org.eclipse.app4mc.slg.linux.transformers
-
-import com.google.inject.Inject
-import java.util.Properties
-import org.eclipse.app4mc.slg.commons.m2t.AbstractSLGTransformer
-import org.eclipse.app4mc.transformation.util.OutputBuffer
-
-class LinuxMakeTransformer extends AbstractSLGTransformer {
-
-	@Inject OutputBuffer outputBuffer
-	@Inject Properties properties
-
-	def transform() {
-
-		val isExperimentalCodeSnippetMatchingAlgo = Boolean.parseBoolean(properties.getProperty("experimentalCodeSnippetMatching", "false"))
-		val isInstrumentationEnabled = Boolean.parseBoolean(properties.getProperty("enableInstrumentation", "false"))
-
-		var String makeContent = '''
-			synthetic: main.o tasks.o runnables.o «IF isExperimentalCodeSnippetMatchingAlgo»codesnippets.o«ENDIF» «IF isInstrumentationEnabled»instrument.o«ENDIF» «IF !isExperimentalCodeSnippetMatchingAlgo» labels.o ticksUtils.o«ENDIF»
-				gcc -o synthetic main.o tasks.o runnables.o «IF !isExperimentalCodeSnippetMatchingAlgo» labels.o ticksUtils.o«ENDIF» «IF isExperimentalCodeSnippetMatchingAlgo»codesnippets.o«ENDIF» «IF isInstrumentationEnabled»instrument.o«ENDIF» -pthread
-			
-			main.o: Executable/main/_src/main.c
-				gcc -c «IF !isExperimentalCodeSnippetMatchingAlgo»-Isynthetic_gen/labels/_inc -Isynthetic_gen/ticksUtils/_inc«ENDIF»  -Isynthetic_gen/tasks/_inc -Isynthetic_gen/runnables/_inc -Isynthetic_gen «IF isExperimentalCodeSnippetMatchingAlgo»-Isynthetic_gen/codesnippets/_inc«ENDIF» Executable/main/_src/main.c
-			
-			tasks.o: synthetic_gen/tasks/_src/tasks.c
-				gcc -c «IF !isExperimentalCodeSnippetMatchingAlgo»-Isynthetic_gen/labels/_inc -Isynthetic_gen/ticksUtils/_inc«ENDIF»  -Isynthetic_gen/tasks/_inc -Isynthetic_gen/runnables/_inc «IF isExperimentalCodeSnippetMatchingAlgo»-Isynthetic_gen/codesnippets/_inc«ENDIF» synthetic_gen/tasks/_src/tasks.c
-				
-			runnables.o: synthetic_gen/runnables/_src/runnables.c
-				gcc -c «IF !isExperimentalCodeSnippetMatchingAlgo»-Isynthetic_gen/labels/_inc -Isynthetic_gen/ticksUtils/_inc«ENDIF»  -Isynthetic_gen/runnables/_inc  «IF isExperimentalCodeSnippetMatchingAlgo»-Isynthetic_gen/codesnippets/_inc«ENDIF» synthetic_gen/runnables/_src/runnables.c -O2
-			
-			
-			«IF !isExperimentalCodeSnippetMatchingAlgo»
-				labels.o: synthetic_gen/labels/_src/labels.c
-					gcc -c -Isynthetic_gen/labels/_inc  synthetic_gen/labels/_src/labels.c -O2
-				
-				ticksUtils.o: synthetic_gen/ticksUtils/_src/ticksUtils.c
-					gcc -c -Isynthetic_gen/ticksUtils/_inc synthetic_gen/ticksUtils/_src/ticksUtils.c -O2
-				
-			«ELSE»
-				codesnippets.o: synthetic_gen/codesnippets/_src/codesnippets.c
-					gcc -c -Isynthetic_gen/codesnippets/_inc synthetic_gen/codesnippets/_src/codesnippets.c
-			«ENDIF»
-			
-			«IF isInstrumentationEnabled »	
-				instrument.o: synthetic_gen/instrument.c
-					gcc -c -Isynthetic_gen synthetic_gen/instrument.c
-			«ENDIF»
-		'''
-		outputBuffer.appendTo("OTHER", "Makefile", makeContent)
-	}
-
-}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxModel2TextTransformer.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxModel2TextTransformer.java
index ec0a3ba..3253d50 100644
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxModel2TextTransformer.java
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxModel2TextTransformer.java
@@ -26,6 +26,11 @@
 import org.eclipse.app4mc.slg.commons.m2t.transformers.AmaltheaModel2TextTransformer;
 import org.eclipse.app4mc.slg.commons.m2t.transformers.InstrumentationTransformer;
 import org.eclipse.app4mc.slg.commons.m2t.transformers.RunnableTransformer;
+import org.eclipse.app4mc.slg.linux.transformers.stimuli.LinuxStimulusTransformer;
+import org.eclipse.app4mc.slg.linux.transformers.sw.LinuxMakeTransformer;
+import org.eclipse.app4mc.slg.linux.transformers.sw.LinuxRealisticCodeTransformer;
+import org.eclipse.app4mc.slg.linux.transformers.sw.LinuxRunnableTransformer;
+import org.eclipse.app4mc.slg.linux.transformers.sw.LinuxTaskTransformer;
 import org.eclipse.app4mc.transformation.util.OutputBuffer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxRealisticCodeTransformer.xtend b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxRealisticCodeTransformer.xtend
deleted file mode 100644
index 7ba5365..0000000
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxRealisticCodeTransformer.xtend
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * *******************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- * *******************************************************************************
- */
-
-package org.eclipse.app4mc.slg.linux.transformers
-
-import com.google.inject.Inject
-import com.google.inject.Singleton
-import org.eclipse.app4mc.slg.commons.m2t.CustomObjectsStore
-import org.eclipse.app4mc.slg.config.ConfigModel
-import org.eclipse.app4mc.slg.linux.generators.LinuxRealisiticSyntheticTranslationUnit
-import org.eclipse.app4mc.transformation.util.OutputBuffer
-
-@Singleton
-class LinuxRealisticCodeTransformer extends LinuxBaseTransformer {
-
-	@Inject OutputBuffer outputBuffer;
-	@Inject CustomObjectsStore customObjsStore
-
-	def create new LinuxRealisiticSyntheticTranslationUnit(outputBuffer, customObjsStore.getInstance(ConfigModel)) transform() {
-	}
-
-}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxRunnableTransformer.xtend b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxRunnableTransformer.xtend
deleted file mode 100644
index a27d6a1..0000000
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxRunnableTransformer.xtend
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * *******************************************************************************
- * Copyright (c) 2020-2021 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- * *******************************************************************************
- */
-
-package org.eclipse.app4mc.slg.linux.transformers
-
-import com.google.inject.Inject
-import com.google.inject.Singleton
-import java.util.Properties
-import org.eclipse.app4mc.amalthea.model.Runnable
-import org.eclipse.app4mc.slg.linux.generators.LinuxRunnableTranslationUnit
-import org.eclipse.app4mc.slg.linux.transformers.sw.LinuxActivityGraphItemTransformer
-import org.eclipse.app4mc.transformation.util.OutputBuffer
-
-@Singleton
-class LinuxRunnableTransformer extends LinuxBaseTransformer {
-
-		@Inject LinuxActivityGraphItemTransformer linuxCallGraphItemTransformer
-		@Inject OutputBuffer outputBuffer;
-		@Inject Properties properties
-		
-		def create new LinuxRunnableTranslationUnit(outputBuffer, linuxCallGraphItemTransformer, runnable, properties) transform(
-			Runnable runnable) {
-		}
-	}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxStimulusTransformer.xtend b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxStimulusTransformer.xtend
deleted file mode 100644
index b5fe67d..0000000
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxStimulusTransformer.xtend
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * *******************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- * *******************************************************************************
- */
-
-package org.eclipse.app4mc.slg.linux.transformers
-
-import com.google.inject.Inject
-import com.google.inject.Singleton
-import java.util.List
-import java.util.Properties
-import org.eclipse.app4mc.amalthea.model.Stimulus
-import org.eclipse.app4mc.slg.linux.generators.LinuxStimulusTranslationUnit
-import org.eclipse.app4mc.transformation.util.OutputBuffer
-
-@Singleton
-class LinuxStimulusTransformer extends LinuxBaseTransformer {
-
-	@Inject OutputBuffer outputBuffer;
-	@Inject Properties properties;
-	
-	def create new LinuxStimulusTranslationUnit(outputBuffer, properties, stimuli) transform(List<Stimulus> stimuli) {
-	}
-
-}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxTaskTransformer.xtend b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxTaskTransformer.xtend
deleted file mode 100644
index 44be256..0000000
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxTaskTransformer.xtend
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * *******************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- * *******************************************************************************
- */
-
-package org.eclipse.app4mc.slg.linux.transformers
-
-import com.google.inject.Inject
-import com.google.inject.Singleton
-import org.eclipse.app4mc.amalthea.model.Task
-import org.eclipse.app4mc.slg.linux.generators.LinuxTaskTranslationUnit
-import org.eclipse.app4mc.transformation.util.OutputBuffer
-
-@Singleton
-class LinuxTaskTransformer extends LinuxBaseTransformer {
-
-	@Inject OutputBuffer outputBuffer;
-
-	def create new LinuxTaskTranslationUnit(outputBuffer,  task) transform(Task task) {
-	}
-
-}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxTicksUtilsTransformer.xtend b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxTicksUtilsTransformer.xtend
deleted file mode 100644
index 3662842..0000000
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxTicksUtilsTransformer.xtend
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * *******************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- * *******************************************************************************
- */
-
-package org.eclipse.app4mc.slg.linux.transformers
-
-import com.google.inject.Inject
-import com.google.inject.Singleton
-import org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation
-import org.eclipse.app4mc.slg.commons.m2t.CustomObjectsStore
-import org.eclipse.app4mc.slg.config.ConfigModel
-import org.eclipse.app4mc.slg.linux.generators.LinuxTicksUtilsTranslationUnit
-import org.eclipse.app4mc.transformation.util.OutputBuffer
-
-@Singleton
-class LinuxTicksUtilsTransformer extends LinuxBaseTransformer {
-
-	@Inject OutputBuffer outputBuffer;
-	@Inject CustomObjectsStore customObjsStore
-
-	def LinuxTicksUtilsTranslationUnit generate(IDiscreteValueDeviation value) {
-		return generateIntern(value.class) // hash according to class not instance
-	}
-
-	def create new LinuxTicksUtilsTranslationUnit(outputBuffer, customObjsStore.getInstance(ConfigModel), valueClass) generateIntern(
-		Object valueClass) {
-	}
-
-}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/stimuli/LinuxStimulusTransformer.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/stimuli/LinuxStimulusTransformer.java
new file mode 100644
index 0000000..ad149f6
--- /dev/null
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/stimuli/LinuxStimulusTransformer.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ */
+
+package org.eclipse.app4mc.slg.linux.transformers.stimuli;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Properties;
+
+import org.eclipse.app4mc.amalthea.model.Stimulus;
+import org.eclipse.app4mc.slg.linux.generators.LinuxStimulusTranslationUnit;
+import org.eclipse.app4mc.slg.linux.transformers.LinuxBaseTransformer;
+import org.eclipse.app4mc.transformation.util.OutputBuffer;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class LinuxStimulusTransformer extends LinuxBaseTransformer {
+
+	@Inject private OutputBuffer outputBuffer;
+	@Inject private Properties properties;
+
+	public LinuxStimulusTranslationUnit transform(final List<Stimulus> stimuli) {
+		final ArrayList<?> key = CollectionLiterals.newArrayList(stimuli);
+		final LinuxStimulusTranslationUnit _result;
+		synchronized (_createCache_transform) {
+			if (_createCache_transform.containsKey(key)) {
+				return _createCache_transform.get(key);
+			}
+			LinuxStimulusTranslationUnit _linuxStimulusTranslationUnit = new LinuxStimulusTranslationUnit(
+					this.outputBuffer, this.properties, stimuli);
+			_result = _linuxStimulusTranslationUnit;
+			_createCache_transform.put(key, _result);
+		}
+		_init_transform(_result, stimuli);
+		return _result;
+	}
+
+	private final HashMap<ArrayList<?>, LinuxStimulusTranslationUnit> _createCache_transform = CollectionLiterals
+			.newHashMap();
+
+	private void _init_transform(final LinuxStimulusTranslationUnit it, final List<Stimulus> stimuli) {
+	}
+
+}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxLabelAccessTransformer.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxLabelAccessTransformer.java
index 5a758c0..477d0ff 100644
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxLabelAccessTransformer.java
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxLabelAccessTransformer.java
@@ -23,7 +23,6 @@
 import org.eclipse.app4mc.amalthea.model.SingleValueStatistic;
 import org.eclipse.app4mc.slg.linux.generators.LinuxLabelTranslationUnit;
 import org.eclipse.app4mc.slg.linux.transformers.LinuxBaseTransformer;
-import org.eclipse.app4mc.slg.linux.transformers.LinuxLabelTransformer;
 import org.eclipse.app4mc.slg.linux.transformers.LinuxTranslationUnit;
 
 import com.google.inject.Inject;
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxLabelTransformer.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxLabelTransformer.java
new file mode 100644
index 0000000..9bae033
--- /dev/null
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxLabelTransformer.java
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2020-2021 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ */
+
+package org.eclipse.app4mc.slg.linux.transformers.sw;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.eclipse.app4mc.amalthea.model.Label;
+import org.eclipse.app4mc.slg.linux.generators.LinuxLabelTranslationUnit;
+import org.eclipse.app4mc.slg.linux.transformers.LinuxBaseTransformer;
+import org.eclipse.app4mc.transformation.util.OutputBuffer;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class LinuxLabelTransformer extends LinuxBaseTransformer {
+
+	@Inject private OutputBuffer outputBuffer;
+
+	public LinuxLabelTranslationUnit transform(final Label label) {
+		final ArrayList<?> key = CollectionLiterals.newArrayList(label);
+		final LinuxLabelTranslationUnit _result;
+		synchronized (_createCache_transform) {
+			if (_createCache_transform.containsKey(key)) {
+				return _createCache_transform.get(key);
+			}
+			LinuxLabelTranslationUnit _linuxLabelTranslationUnit = new LinuxLabelTranslationUnit(this.outputBuffer,
+					label);
+			_result = _linuxLabelTranslationUnit;
+			_createCache_transform.put(key, _result);
+		}
+		_init_transform(_result, label);
+		return _result;
+	}
+
+	private final HashMap<ArrayList<?>, LinuxLabelTranslationUnit> _createCache_transform = CollectionLiterals
+			.newHashMap();
+
+	private void _init_transform(final LinuxLabelTranslationUnit it, final Label label) {
+	}
+
+}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxMakeTransformer.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxMakeTransformer.java
new file mode 100644
index 0000000..7cc1276
--- /dev/null
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxMakeTransformer.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2020-2021 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ */
+
+package org.eclipse.app4mc.slg.linux.transformers.sw;
+
+import java.util.Properties;
+
+import org.eclipse.app4mc.slg.linux.generators.LinuxMakeGenerator;
+import org.eclipse.app4mc.slg.linux.transformers.LinuxBaseTransformer;
+import org.eclipse.app4mc.transformation.util.OutputBuffer;
+
+import com.google.inject.Inject;
+
+public class LinuxMakeTransformer extends LinuxBaseTransformer {
+
+	@Inject private OutputBuffer outputBuffer;
+	@Inject private Properties properties;
+
+	public void transform() {
+
+		final boolean experimentalCodeMatching = Boolean
+				.parseBoolean(this.properties.getProperty("experimentalCodeSnippetMatching", "false"));
+		final boolean instrumentation = Boolean
+				.parseBoolean(this.properties.getProperty("enableInstrumentation", "false"));
+
+		this.outputBuffer.appendTo("OTHER", "Makefile",
+				LinuxMakeGenerator.getContent(experimentalCodeMatching, instrumentation));
+	}
+
+}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxRealisticCodeTransformer.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxRealisticCodeTransformer.java
new file mode 100644
index 0000000..dcb3bc9
--- /dev/null
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxRealisticCodeTransformer.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ */
+
+package org.eclipse.app4mc.slg.linux.transformers.sw;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.eclipse.app4mc.slg.commons.m2t.CustomObjectsStore;
+import org.eclipse.app4mc.slg.config.ConfigModel;
+import org.eclipse.app4mc.slg.linux.generators.LinuxRealisiticSyntheticTranslationUnit;
+import org.eclipse.app4mc.slg.linux.transformers.LinuxBaseTransformer;
+import org.eclipse.app4mc.transformation.util.OutputBuffer;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class LinuxRealisticCodeTransformer extends LinuxBaseTransformer {
+
+	@Inject private OutputBuffer outputBuffer;
+	@Inject private CustomObjectsStore customObjsStore;
+
+	public LinuxRealisiticSyntheticTranslationUnit transform() {
+		final ArrayList<?> key = CollectionLiterals.newArrayList();
+		final LinuxRealisiticSyntheticTranslationUnit _result;
+		synchronized (_createCache_transform) {
+			if (_createCache_transform.containsKey(key)) {
+				return _createCache_transform.get(key);
+			}
+			ConfigModel _instance = this.customObjsStore.<ConfigModel>getInstance(ConfigModel.class);
+			LinuxRealisiticSyntheticTranslationUnit _linuxRealisiticSyntheticTranslationUnit = new LinuxRealisiticSyntheticTranslationUnit(
+					this.outputBuffer, _instance);
+			_result = _linuxRealisiticSyntheticTranslationUnit;
+			_createCache_transform.put(key, _result);
+		}
+		_init_transform(_result);
+		return _result;
+	}
+
+	private final HashMap<ArrayList<?>, LinuxRealisiticSyntheticTranslationUnit> _createCache_transform = CollectionLiterals
+			.newHashMap();
+
+	private void _init_transform(final LinuxRealisiticSyntheticTranslationUnit it) {
+	}
+
+}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxRunnableTransformer.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxRunnableTransformer.java
new file mode 100644
index 0000000..9d56cb5
--- /dev/null
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxRunnableTransformer.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020-2021 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ */
+
+package org.eclipse.app4mc.slg.linux.transformers.sw;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Properties;
+
+import org.eclipse.app4mc.slg.linux.generators.LinuxRunnableTranslationUnit;
+import org.eclipse.app4mc.slg.linux.transformers.LinuxBaseTransformer;
+import org.eclipse.app4mc.transformation.util.OutputBuffer;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class LinuxRunnableTransformer extends LinuxBaseTransformer {
+
+	@Inject private LinuxActivityGraphItemTransformer linuxCallGraphItemTransformer;
+	@Inject private OutputBuffer outputBuffer;
+	@Inject private Properties properties;
+
+	public LinuxRunnableTranslationUnit transform(final org.eclipse.app4mc.amalthea.model.Runnable runnable) {
+		final ArrayList<?> key = CollectionLiterals.newArrayList(runnable);
+		final LinuxRunnableTranslationUnit _result;
+		synchronized (_createCache_transform) {
+			if (_createCache_transform.containsKey(key)) {
+				return _createCache_transform.get(key);
+			}
+			LinuxRunnableTranslationUnit _linuxRunnableTranslationUnit = new LinuxRunnableTranslationUnit(
+					this.outputBuffer, this.linuxCallGraphItemTransformer, runnable, this.properties);
+			_result = _linuxRunnableTranslationUnit;
+			_createCache_transform.put(key, _result);
+		}
+		_init_transform(_result, runnable);
+		return _result;
+	}
+
+	private final HashMap<ArrayList<?>, LinuxRunnableTranslationUnit> _createCache_transform = CollectionLiterals
+			.newHashMap();
+
+	private void _init_transform(final LinuxRunnableTranslationUnit it,
+			final org.eclipse.app4mc.amalthea.model.Runnable runnable) {
+	}
+
+}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTaskTransformer.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTaskTransformer.java
new file mode 100644
index 0000000..809f633
--- /dev/null
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTaskTransformer.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) 2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ */
+
+package org.eclipse.app4mc.slg.linux.transformers.sw;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.eclipse.app4mc.amalthea.model.Task;
+import org.eclipse.app4mc.slg.linux.generators.LinuxTaskTranslationUnit;
+import org.eclipse.app4mc.slg.linux.transformers.LinuxBaseTransformer;
+import org.eclipse.app4mc.transformation.util.OutputBuffer;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class LinuxTaskTransformer extends LinuxBaseTransformer {
+
+	@Inject private OutputBuffer outputBuffer;
+
+	public LinuxTaskTranslationUnit transform(final Task task) {
+		final ArrayList<?> key = CollectionLiterals.newArrayList(task);
+		final LinuxTaskTranslationUnit _result;
+		synchronized (_createCache_transform) {
+			if (_createCache_transform.containsKey(key)) {
+				return _createCache_transform.get(key);
+			}
+			LinuxTaskTranslationUnit _linuxTaskTranslationUnit = new LinuxTaskTranslationUnit(this.outputBuffer, task);
+			_result = _linuxTaskTranslationUnit;
+			_createCache_transform.put(key, _result);
+		}
+		_init_transform(_result, task);
+		return _result;
+	}
+
+	private final HashMap<ArrayList<?>, LinuxTaskTranslationUnit> _createCache_transform = CollectionLiterals
+			.newHashMap();
+
+	private void _init_transform(final LinuxTaskTranslationUnit it, final Task task) {
+	}
+
+}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTicksTransformer.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTicksTransformer.java
index 70a869c..701ed09 100644
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTicksTransformer.java
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTicksTransformer.java
@@ -17,7 +17,6 @@
 import org.eclipse.app4mc.slg.commons.m2t.AbstractSLGTransformer;
 import org.eclipse.app4mc.slg.linux.generators.LinuxTicksGenerator;
 import org.eclipse.app4mc.slg.linux.generators.LinuxTicksUtilsTranslationUnit;
-import org.eclipse.app4mc.slg.linux.transformers.LinuxTicksUtilsTransformer;
 import org.eclipse.app4mc.slg.linux.transformers.LinuxTranslationUnit;
 
 import com.google.inject.Inject;
@@ -30,7 +29,7 @@
 
 	public LinuxTranslationUnit transform(final Ticks ticks) {
 		if ((ticks.getDefault() != null)) {
-			final LinuxTicksUtilsTranslationUnit ticksUtilsTU = ticksUtilsTransformer.generate(ticks.getDefault());
+			final LinuxTicksUtilsTranslationUnit ticksUtilsTU = ticksUtilsTransformer.transform(ticks.getDefault());
 
 			return createTranslationUnit(ticks, ticksUtilsTU);
 		}
@@ -45,11 +44,11 @@
 
 		String basePath = ticksUtilsTU.getBasePath();
 		String moduleName = ticksUtilsTU.getModuleName();
-		String call = computeCall(ticks, ticksUtilsTU);
+		String call = computeCall(ticks);
 		return new LinuxTranslationUnit(basePath, moduleName, call);
 	}
 
-	private String computeCall(Ticks ticks, LinuxTicksUtilsTranslationUnit ticksUtilsTU) {
+	private String computeCall(Ticks ticks) {
 		String parameters = LinuxTicksGenerator.getParameters(ticks.getDefault());
 		return "burnTicks(" + parameters + ")";
 	}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTicksUtilsTransformer.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTicksUtilsTransformer.java
new file mode 100644
index 0000000..4b030cc
--- /dev/null
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTicksUtilsTransformer.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2020 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ */
+
+package org.eclipse.app4mc.slg.linux.transformers.sw;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation;
+import org.eclipse.app4mc.slg.commons.m2t.CustomObjectsStore;
+import org.eclipse.app4mc.slg.config.ConfigModel;
+import org.eclipse.app4mc.slg.linux.generators.LinuxTicksUtilsTranslationUnit;
+import org.eclipse.app4mc.slg.linux.transformers.LinuxBaseTransformer;
+import org.eclipse.app4mc.transformation.util.OutputBuffer;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class LinuxTicksUtilsTransformer extends LinuxBaseTransformer {
+
+	@Inject private OutputBuffer outputBuffer;
+	@Inject private CustomObjectsStore customObjsStore;
+
+	public LinuxTicksUtilsTranslationUnit transform(final IDiscreteValueDeviation value) {
+		return this.generateIntern(value.getClass());
+	}
+
+	public LinuxTicksUtilsTranslationUnit generateIntern(final Object valueClass) {
+		final ArrayList<?> key = CollectionLiterals.newArrayList(valueClass);
+		final LinuxTicksUtilsTranslationUnit _result;
+		synchronized (_createCache_generateIntern) {
+			if (_createCache_generateIntern.containsKey(key)) {
+				return _createCache_generateIntern.get(key);
+			}
+			ConfigModel _instance = this.customObjsStore.<ConfigModel>getInstance(ConfigModel.class);
+			LinuxTicksUtilsTranslationUnit tu = new LinuxTicksUtilsTranslationUnit(
+					this.outputBuffer, _instance, valueClass);
+			_result = tu;
+			_createCache_generateIntern.put(key, _result);
+		}
+		_init_generateIntern(_result, valueClass);
+		return _result;
+	}
+
+	private final HashMap<ArrayList<?>, LinuxTicksUtilsTranslationUnit> _createCache_generateIntern = CollectionLiterals
+			.newHashMap();
+
+	private void _init_generateIntern(final LinuxTicksUtilsTranslationUnit it, final Object valueClass) {
+	}
+}