diff options
author | Thomas Schuetz | 2016-09-09 15:29:40 +0000 |
---|---|---|
committer | Thomas Schuetz | 2016-09-12 15:35:48 +0000 |
commit | 2e057d9ef84f31bbd042471abf740fa3d40ce4d7 (patch) | |
tree | 918bc337b98a0e4dabf55f5ea1e4b4409b7a3cd1 /plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen | |
parent | ee961ced93d9e7e84f090ca0b66e1b0f6a2f638b (diff) | |
download | org.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')
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"); |