[generator] bug fix for detail code translation in case of no translation

Change-Id: I4c2bf9b31c0413920aad2c22b59e9e0639eb19dc
diff --git a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ActionCodeAnalyzer.java b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ActionCodeAnalyzer.java
index 4d97204..47ff374 100644
--- a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ActionCodeAnalyzer.java
+++ b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ActionCodeAnalyzer.java
@@ -69,7 +69,7 @@
 
 	public ActionCodeAnalyzer(ActorClass ac) {
 		collector = new Collector();
-		translator = new DetailCodeTranslator(ac, collector);
+		translator = new DetailCodeTranslator(ac, collector, true);
 	}
 	
 	public List<HandledMessage> analyze(DetailCode dc) {
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/AbstractGenerator.java b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/AbstractGenerator.java
index e538cb7..b114b6c 100644
--- a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/AbstractGenerator.java
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/AbstractGenerator.java
@@ -448,9 +448,7 @@
 				return null;
 			}
 			
-			if (!generatorSettings.isNoTranslation()) {
-				translateDetailCodes(gmRoot);
-			}
+			translateDetailCodes(gmRoot);
 			
 			URI genModelURI = genModelPath!=null? URI.createFileURI(genModelPath) : URI.createFileURI("tmp.rim");
 			Resource genResource = getResourceSet().createResource(genModelURI);
@@ -545,28 +543,30 @@
 	 * @param gmRoot
 	 */
 	protected void translateDetailCodes(Root gmRoot) {
+		boolean doTranslate = !generatorSettings.isNoTranslation();
+		
 		for (ExpandedActorClass xpac : gmRoot.getXpActorClasses()) {
-			DetailCodeTranslator dct = new DetailCodeTranslator(xpac.getActorClass(), translationProvider);
+			DetailCodeTranslator dct = new DetailCodeTranslator(xpac.getActorClass(), translationProvider, doTranslate);
 			translateDetailCodesOfTree(xpac.getActorClass(), dct);
 			translateDetailCodesOfTree(xpac.getStateMachine(), dct);
 		}
 		
 		for (DataClass dc : gmRoot.getUsedDataClasses()) {
-			DetailCodeTranslator dct = new DetailCodeTranslator(dc, translationProvider);
+			DetailCodeTranslator dct = new DetailCodeTranslator(dc, translationProvider, doTranslate);
 			translateDetailCodesOfTree(dc, dct);
 		}
 		
 		for (ProtocolClass pc : gmRoot.getUsedProtocolClasses()) {
 			if (pc.getConjugated()!=null) {
-				DetailCodeTranslator dct = new DetailCodeTranslator(pc.getConjugated(), translationProvider);
+				DetailCodeTranslator dct = new DetailCodeTranslator(pc.getConjugated(), translationProvider, doTranslate);
 				translateDetailCodesOfTree(pc.getConjugated(), dct);
 			}
 			if (pc.getRegular()!=null) {
-				DetailCodeTranslator dct = new DetailCodeTranslator(pc.getRegular(), translationProvider);
+				DetailCodeTranslator dct = new DetailCodeTranslator(pc.getRegular(), translationProvider, doTranslate);
 				translateDetailCodesOfTree(pc.getRegular(), dct);
 			}
 			
-			DetailCodeTranslator dct = new DetailCodeTranslator(pc, translationProvider);
+			DetailCodeTranslator dct = new DetailCodeTranslator(pc, translationProvider, doTranslate);
 			translateDetailCodesOfTree(pc.getUserCode1(), dct);
 			translateDetailCodesOfTree(pc.getUserCode2(), dct);
 			translateDetailCodesOfTree(pc.getUserCode3(), dct);
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/DetailCodeTranslator.java b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/DetailCodeTranslator.java
index 41e0a85..7b78606 100644
--- a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/DetailCodeTranslator.java
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/base/DetailCodeTranslator.java
@@ -68,6 +68,7 @@
 	private HashMap<String, Attribute> name2attr = new HashMap<String, Attribute>();
 	private HashMap<String, Operation> name2op = new HashMap<String, Operation>();
 	private EObject container;
+	private boolean doTranslate;
 	
 	/**
 	 * Constructor to be used with actor classes
@@ -75,37 +76,38 @@
 	 * @param ac an {@link ActorClass}
 	 * @param provider a {@link ITranslationProvider}
 	 */
-	public DetailCodeTranslator(ActorClass ac, ITranslationProvider provider) {
-		this((EObject) ac, provider);
+	public DetailCodeTranslator(ActorClass ac, ITranslationProvider provider, boolean doTranslate) {
+		this((EObject) ac, provider, doTranslate);
 	}
 	
 	/**
 	 * @param pc a {@link ProtocolClass}
 	 * @param provider a {@link ITranslationProvider}
 	 */
-	public DetailCodeTranslator(ProtocolClass pc, ITranslationProvider provider) {
-		this((EObject) pc, provider);
+	public DetailCodeTranslator(ProtocolClass pc, ITranslationProvider provider, boolean doTranslate) {
+		this((EObject) pc, provider, doTranslate);
 	}
 	
 	/**
 	 * @param pc a {@link PortClass}
 	 * @param provider a {@link ITranslationProvider}
 	 */
-	public DetailCodeTranslator(PortClass pc, ITranslationProvider provider) {
-		this((EObject) pc, provider);
+	public DetailCodeTranslator(PortClass pc, ITranslationProvider provider, boolean doTranslate) {
+		this((EObject) pc, provider, doTranslate);
 	}
 	
 	/**
 	 * @param dc a {@link DataClass}
 	 * @param provider a {@link ITranslationProvider}
 	 */
-	public DetailCodeTranslator(DataClass dc, ITranslationProvider provider) {
-		this((EObject) dc, provider);
+	public DetailCodeTranslator(DataClass dc, ITranslationProvider provider, boolean doTranslate) {
+		this((EObject) dc, provider, doTranslate);
 	}
 	
-	private DetailCodeTranslator(EObject container, ITranslationProvider provider) {
+	private DetailCodeTranslator(EObject container, ITranslationProvider provider, boolean doTranslate) {
 		this.provider = provider;
 		this.container = container;
+		this.doTranslate = doTranslate;
 		prepare(container);
 	}
 	
@@ -125,6 +127,9 @@
 
 		String result = text.substring(0, Math.max(0, text.length()-1));
 		
+		if (!doTranslate)
+			return result;
+		
 		if (provider.translateMembers())
 			result = translateText(result);
 		
diff --git a/tests/org.eclipse.etrice.generator.tests/src/org/eclipse/etrice/generator/base/TestDetailCodeTranslator.java b/tests/org.eclipse.etrice.generator.tests/src/org/eclipse/etrice/generator/base/TestDetailCodeTranslator.java
index 0723f97..de185a4 100644
--- a/tests/org.eclipse.etrice.generator.tests/src/org/eclipse/etrice/generator/base/TestDetailCodeTranslator.java
+++ b/tests/org.eclipse.etrice.generator.tests/src/org/eclipse/etrice/generator/base/TestDetailCodeTranslator.java
@@ -241,7 +241,7 @@
 		op2.getArguments().add(param2);
 		ac.getOperations().add(op2);
 		
-		translator = new DetailCodeTranslator(ac, new TestTranslationProvider());
+		translator = new DetailCodeTranslator(ac, new TestTranslationProvider(), true);
 	}
 	
 	@Test