Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Schuetz2016-09-09 15:29:40 +0000
committerThomas Schuetz2016-09-12 15:35:48 +0000
commit2e057d9ef84f31bbd042471abf740fa3d40ce4d7 (patch)
tree918bc337b98a0e4dabf55f5ea1e4b4409b7a3cd1 /plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen
parentee961ced93d9e7e84f090ca0b66e1b0f6a2f638b (diff)
downloadorg.eclipse.etrice-2e057d9ef84f31bbd042471abf740fa3d40ce4d7.tar.gz
org.eclipse.etrice-2e057d9ef84f31bbd042471abf740fa3d40ce4d7.tar.xz
org.eclipse.etrice-2e057d9ef84f31bbd042471abf740fa3d40ce4d7.zip
[generator.cpp.reference] cleaned up reference project,
[generator.cpp] added const to all non ref attributes for generated field constructor (DataClass) [runtime.cpp] added getter function c_str to StaticString and added typefef for StaticString<32> Change-Id: I8d00801fdcce8e4ea94e5377caa6a376eb84fca0
Diffstat (limited to 'plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen')
-rw-r--r--plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/CppProcedureHelpers.java29
-rw-r--r--plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/DataClassGen.java35
2 files changed, 47 insertions, 17 deletions
diff --git a/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/CppProcedureHelpers.java b/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/CppProcedureHelpers.java
index 20cb159d7..e5e137273 100644
--- a/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/CppProcedureHelpers.java
+++ b/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/CppProcedureHelpers.java
@@ -5,6 +5,8 @@ import org.eclipse.etrice.core.room.Attribute;
import org.eclipse.etrice.core.room.DataType;
import org.eclipse.etrice.core.room.RefableType;
import org.eclipse.etrice.generator.generic.ProcedureHelpers;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
@SuppressWarnings("all")
public class CppProcedureHelpers extends ProcedureHelpers {
@@ -117,4 +119,31 @@ public class CppProcedureHelpers extends ProcedureHelpers {
}
return _switchResult;
}
+
+ /**
+ * @param attributes a list of {@link Attribute}s
+ * @return an argument list for the attributes with const except for ref {@link Attribute}s
+ */
+ public String constArgList(final Iterable<Attribute> attributes) {
+ final Function1<Attribute, String> _function = new Function1<Attribute, String>() {
+ public String apply(final Attribute it) {
+ String _xifexpression = null;
+ RefableType _type = it.getType();
+ boolean _isRef = _type.isRef();
+ boolean _not = (!_isRef);
+ if (_not) {
+ _xifexpression = "const ";
+ } else {
+ _xifexpression = "";
+ }
+ String _signatureString = CppProcedureHelpers.this.signatureString(it);
+ String _plus = (_xifexpression + _signatureString);
+ String _plus_1 = (_plus + " ");
+ String _name = it.getName();
+ return (_plus_1 + _name);
+ }
+ };
+ Iterable<String> _map = IterableExtensions.<Attribute, String>map(attributes, _function);
+ return IterableExtensions.join(_map, ", ");
+ }
}
diff --git a/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/DataClassGen.java b/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/DataClassGen.java
index f71c8a49d..40f209678 100644
--- a/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/DataClassGen.java
+++ b/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/DataClassGen.java
@@ -29,8 +29,8 @@ import org.eclipse.etrice.core.room.RoomModel;
import org.eclipse.etrice.core.room.StandardOperation;
import org.eclipse.etrice.core.room.util.RoomHelpers;
import org.eclipse.etrice.generator.cpp.gen.CppExtensions;
+import org.eclipse.etrice.generator.cpp.gen.CppProcedureHelpers;
import org.eclipse.etrice.generator.cpp.gen.Initialization;
-import org.eclipse.etrice.generator.generic.ProcedureHelpers;
import org.eclipse.etrice.generator.generic.RoomExtensions;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.generator.JavaIoFileSystemAccess;
@@ -57,7 +57,7 @@ public class DataClassGen {
@Inject
@Extension
- private ProcedureHelpers helpers;
+ private CppProcedureHelpers helpers;
@Inject
private Initialization initHelper;
@@ -227,15 +227,6 @@ public class DataClassGen {
_builder.append("& rhs);");
_builder.newLineIfNotEmpty();
_builder.append("\t");
- String _name_10 = dc.getName();
- _builder.append(_name_10, "\t");
- _builder.append("& operator=(const ");
- String _name_11 = dc.getName();
- _builder.append(_name_11, "\t");
- _builder.append("& rhs);");
- _builder.newLineIfNotEmpty();
- _builder.newLine();
- _builder.append("\t");
_builder.append("// constructor using fields");
_builder.newLine();
_builder.append("\t");
@@ -244,16 +235,26 @@ public class DataClassGen {
boolean _isEmpty = _allAttributes.isEmpty();
boolean _not = (!_isEmpty);
if (_not) {
- String _name_12 = dc.getName();
- _builder.append(_name_12, "\t");
+ String _name_10 = dc.getName();
+ _builder.append(_name_10, "\t");
_builder.append("(");
List<Attribute> _allAttributes_1 = this._roomHelpers.getAllAttributes(dc);
- String _argList = this.helpers.argList(_allAttributes_1);
- _builder.append(_argList, "\t");
+ String _constArgList = this.helpers.constArgList(_allAttributes_1);
+ _builder.append(_constArgList, "\t");
_builder.append(");");
}
}
_builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ String _name_11 = dc.getName();
+ _builder.append(_name_11, "\t");
+ _builder.append("& operator=(const ");
+ String _name_12 = dc.getName();
+ _builder.append(_name_12, "\t");
+ _builder.append("& rhs);");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
_builder.append("};");
_builder.newLine();
_builder.newLine();
@@ -369,8 +370,8 @@ public class DataClassGen {
_builder.append(_name_7, "");
_builder.append("(");
List<Attribute> _allAttributes_1 = this._roomHelpers.getAllAttributes(dc);
- String _argList = this.helpers.argList(_allAttributes_1);
- _builder.append(_argList, "");
+ String _constArgList = this.helpers.constArgList(_allAttributes_1);
+ _builder.append(_constArgList, "");
_builder.append(")");
_builder.newLineIfNotEmpty();
_builder.append("\t");

Back to the top