Extended output buffer to provide current file extension; modified root transformers
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/OutputBuffer.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/OutputBuffer.java
index ba260d2..9646848 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/OutputBuffer.java
+++ b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/OutputBuffer.java
@@ -103,6 +103,13 @@
 		return outputFolder;
 	}
 
+	public String getFileExtension(String type) {
+		TypedBuffer typedBuffer = filetypeToBufferMap.get(type);
+		if (typedBuffer == null)
+			return null;
+
+		return typedBuffer.getFileExtension();
+	}
 	/**
 	 * @return: true if buffer has already been created
 	 */
@@ -161,6 +168,9 @@
 			return isNewBuffer;
 		}
 
+		public String getFileExtension() {
+			return fileExtension;
+		}
 	}
 
 }
diff --git a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/SLGBaseSettings.java b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/SLGBaseSettings.java
index aa8fd76..4fa10d2 100644
--- a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/SLGBaseSettings.java
+++ b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/SLGBaseSettings.java
@@ -25,7 +25,7 @@
 	}
 
 	public static final String SRC_TYPE = "SRC";
-	public static final String SRC_EXT = ".c";
+	public static final String SRC_EXT = ".cpp";
 	public static final String SRC_FOLDER = "/_src/";
 
 	public static final String INC_TYPE = "INC";
diff --git a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/SLGBaseTransformer.java b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/SLGBaseTransformer.java
index d5334a4..dc6cda1 100644
--- a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/SLGBaseTransformer.java
+++ b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/SLGBaseTransformer.java
@@ -15,10 +15,8 @@
 
 package org.eclipse.app4mc.slg.commons.m2t.transformers;
 
-import static org.eclipse.app4mc.slg.commons.m2t.transformers.SLGBaseSettings.INC_EXT;
 import static org.eclipse.app4mc.slg.commons.m2t.transformers.SLGBaseSettings.INC_FOLDER;
 import static org.eclipse.app4mc.slg.commons.m2t.transformers.SLGBaseSettings.INC_TYPE;
-import static org.eclipse.app4mc.slg.commons.m2t.transformers.SLGBaseSettings.SRC_EXT;
 import static org.eclipse.app4mc.slg.commons.m2t.transformers.SLGBaseSettings.SRC_FOLDER;
 import static org.eclipse.app4mc.slg.commons.m2t.transformers.SLGBaseSettings.SRC_TYPE;
 
@@ -59,11 +57,13 @@
 	public String getIncModulePath(SLGTranslationUnit tu) { return tu.getModulePath() + INC_FOLDER + tu.getModuleName(); }
 	public String getSrcModulePath(SLGTranslationUnit tu) { return tu.getModulePath() + SRC_FOLDER + tu.getModuleName(); }
 
-	public String getSrcFile(SLGTranslationUnit tu) { return tu.getModuleName() + SRC_EXT; }
-	public String getIncFile(SLGTranslationUnit tu) { return tu.getModuleName() + INC_EXT; }
-
-	public String getSrcPath(SLGTranslationUnit tu) { return tu.getModulePath() + SRC_FOLDER + getSrcFile(tu); }
 	public String getIncPath(SLGTranslationUnit tu) { return tu.getModulePath() + INC_FOLDER + getIncFile(tu); }
+	public String getSrcPath(SLGTranslationUnit tu) { return tu.getModulePath() + SRC_FOLDER + getSrcFile(tu); }
+
+	// Attributes derived from translation unit and output buffer (!)
+
+	public String getIncFile(SLGTranslationUnit tu) { return tu.getModuleName() + outputBuffer.getFileExtension(INC_TYPE); }
+	public String getSrcFile(SLGTranslationUnit tu) { return tu.getModuleName() + outputBuffer.getFileExtension(SRC_TYPE); }
 
 	// Generic cache handling
 
@@ -80,8 +80,7 @@
 		return Collections.emptyMap();
 	}
 
-
-	// still necessary ???
+	// Property access
 
 	@Inject Properties properties;
 
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxBaseTransformer.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxBaseTransformer.java
index 7e689b6..7915d2f 100644
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxBaseTransformer.java
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxBaseTransformer.java
@@ -15,10 +15,8 @@
 
 package org.eclipse.app4mc.slg.linux.transformers;
 
-import static org.eclipse.app4mc.slg.linux.transformers.LinuxBaseSettings.INC_EXT;
 import static org.eclipse.app4mc.slg.linux.transformers.LinuxBaseSettings.INC_FOLDER;
 import static org.eclipse.app4mc.slg.linux.transformers.LinuxBaseSettings.INC_TYPE;
-import static org.eclipse.app4mc.slg.linux.transformers.LinuxBaseSettings.SRC_EXT;
 import static org.eclipse.app4mc.slg.linux.transformers.LinuxBaseSettings.SRC_FOLDER;
 import static org.eclipse.app4mc.slg.linux.transformers.LinuxBaseSettings.SRC_TYPE;
 
@@ -59,11 +57,13 @@
 	public String getIncModulePath(SLGTranslationUnit tu) { return tu.getModulePath() + INC_FOLDER + tu.getModuleName(); }
 	public String getSrcModulePath(SLGTranslationUnit tu) { return tu.getModulePath() + SRC_FOLDER + tu.getModuleName(); }
 
-	public String getSrcFile(SLGTranslationUnit tu) { return tu.getModuleName() + SRC_EXT; }
-	public String getIncFile(SLGTranslationUnit tu) { return tu.getModuleName() + INC_EXT; }
-
-	public String getSrcPath(SLGTranslationUnit tu) { return tu.getModulePath() + SRC_FOLDER + getSrcFile(tu); }
 	public String getIncPath(SLGTranslationUnit tu) { return tu.getModulePath() + INC_FOLDER + getIncFile(tu); }
+	public String getSrcPath(SLGTranslationUnit tu) { return tu.getModulePath() + SRC_FOLDER + getSrcFile(tu); }
+
+	// Attributes derived from translation unit and output buffer (!)
+
+	public String getIncFile(SLGTranslationUnit tu) { return tu.getModuleName() + outputBuffer.getFileExtension(INC_TYPE); }
+	public String getSrcFile(SLGTranslationUnit tu) { return tu.getModuleName() + outputBuffer.getFileExtension(SRC_TYPE); }
 
 	// Generic cache handling
 
diff --git a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/transformers/RosBaseTransformer.java b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/transformers/RosBaseTransformer.java
index 50eae90..6b67319 100644
--- a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/transformers/RosBaseTransformer.java
+++ b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/transformers/RosBaseTransformer.java
@@ -15,10 +15,8 @@
 
 package org.eclipse.app4mc.slg.ros2.transformers;
 
-import static org.eclipse.app4mc.slg.ros2.transformers.RosBaseSettings.INC_EXT;
 import static org.eclipse.app4mc.slg.ros2.transformers.RosBaseSettings.INC_FOLDER;
 import static org.eclipse.app4mc.slg.ros2.transformers.RosBaseSettings.INC_TYPE;
-import static org.eclipse.app4mc.slg.ros2.transformers.RosBaseSettings.SRC_EXT;
 import static org.eclipse.app4mc.slg.ros2.transformers.RosBaseSettings.SRC_FOLDER;
 import static org.eclipse.app4mc.slg.ros2.transformers.RosBaseSettings.SRC_TYPE;
 
@@ -59,11 +57,13 @@
 	public String getIncModulePath(SLGTranslationUnit tu) { return tu.getModulePath() + INC_FOLDER + tu.getModuleName(); }
 	public String getSrcModulePath(SLGTranslationUnit tu) { return tu.getModulePath() + SRC_FOLDER + tu.getModuleName(); }
 
-	public String getSrcFile(SLGTranslationUnit tu) { return tu.getModuleName() + SRC_EXT; }
-	public String getIncFile(SLGTranslationUnit tu) { return tu.getModuleName() + INC_EXT; }
-
-	public String getSrcPath(SLGTranslationUnit tu) { return tu.getModulePath() + SRC_FOLDER + getSrcFile(tu); }
 	public String getIncPath(SLGTranslationUnit tu) { return tu.getModulePath() + INC_FOLDER + getIncFile(tu); }
+	public String getSrcPath(SLGTranslationUnit tu) { return tu.getModulePath() + SRC_FOLDER + getSrcFile(tu); }
+
+	// Attributes derived from translation unit and output buffer (!)
+
+	public String getIncFile(SLGTranslationUnit tu) { return tu.getModuleName() + outputBuffer.getFileExtension(INC_TYPE); }
+	public String getSrcFile(SLGTranslationUnit tu) { return tu.getModuleName() + outputBuffer.getFileExtension(SRC_TYPE); }
 
 	// Generic cache handling