[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