Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.etrice.core.room/xtend-gen/org/eclipse/etrice/core/room/util/CommonDataCalculator.java')
-rw-r--r--plugins/org.eclipse.etrice.core.room/xtend-gen/org/eclipse/etrice/core/room/util/CommonDataCalculator.java46
1 files changed, 39 insertions, 7 deletions
diff --git a/plugins/org.eclipse.etrice.core.room/xtend-gen/org/eclipse/etrice/core/room/util/CommonDataCalculator.java b/plugins/org.eclipse.etrice.core.room/xtend-gen/org/eclipse/etrice/core/room/util/CommonDataCalculator.java
index 846d02797..976d28914 100644
--- a/plugins/org.eclipse.etrice.core.room/xtend-gen/org/eclipse/etrice/core/room/util/CommonDataCalculator.java
+++ b/plugins/org.eclipse.etrice.core.room/xtend-gen/org/eclipse/etrice/core/room/util/CommonDataCalculator.java
@@ -10,6 +10,7 @@
*/
package org.eclipse.etrice.core.room.util;
+import com.google.common.base.Objects;
import com.google.common.collect.Iterables;
import java.util.List;
import java.util.Set;
@@ -26,13 +27,17 @@ import org.eclipse.etrice.core.genmodel.fsm.fsmgen.Link;
import org.eclipse.etrice.core.room.DataType;
import org.eclipse.etrice.core.room.Message;
import org.eclipse.etrice.core.room.RefableType;
+import org.eclipse.etrice.core.room.RoomFactory;
import org.eclipse.etrice.core.room.VarDecl;
+import org.eclipse.etrice.core.room.util.RoomHelpers;
import org.eclipse.xtext.xbase.lib.Functions.Function1;
import org.eclipse.xtext.xbase.lib.IterableExtensions;
import org.eclipse.xtext.xbase.lib.ListExtensions;
@SuppressWarnings("all")
public class CommonDataCalculator implements ICommonDataCalculator {
+ private RoomHelpers roomHelpers = new RoomHelpers();
+
@Override
public EObject calculateCommonData(final Link l) {
boolean _isIfitemTriggered = l.isIfitemTriggered();
@@ -66,14 +71,20 @@ public class CommonDataCalculator implements ICommonDataCalculator {
};
Iterable<EList<MessageFromIf>> _map_2 = IterableExtensions.<Trigger, EList<MessageFromIf>>map(triggers, _function_2);
Iterable<MessageFromIf> _flatten = Iterables.<MessageFromIf>concat(_map_2);
- final Function1<MessageFromIf, DataType> _function_3 = new Function1<MessageFromIf, DataType>() {
+ final Function1<MessageFromIf, VarDecl> _function_3 = new Function1<MessageFromIf, VarDecl>() {
@Override
- public DataType apply(final MessageFromIf it) {
+ public VarDecl apply(final MessageFromIf it) {
EObject _message = it.getMessage();
- VarDecl _data = ((Message) _message).getData();
+ return ((Message) _message).getData();
+ }
+ };
+ final Iterable<VarDecl> varDeclarations = IterableExtensions.<MessageFromIf, VarDecl>map(_flatten, _function_3);
+ final Function1<VarDecl, DataType> _function_4 = new Function1<VarDecl, DataType>() {
+ @Override
+ public DataType apply(final VarDecl it) {
RefableType _refType = null;
- if (_data!=null) {
- _refType=_data.getRefType();
+ if (it!=null) {
+ _refType=it.getRefType();
}
DataType _type = null;
if (_refType!=null) {
@@ -82,12 +93,33 @@ public class CommonDataCalculator implements ICommonDataCalculator {
return _type;
}
};
- Iterable<DataType> _map_3 = IterableExtensions.<MessageFromIf, DataType>map(_flatten, _function_3);
+ Iterable<DataType> _map_3 = IterableExtensions.<VarDecl, DataType>map(varDeclarations, _function_4);
final Set<DataType> allData = IterableExtensions.<DataType>toSet(_map_3);
int _size = allData.size();
boolean _equals = (_size == 1);
if (_equals) {
- return IterableExtensions.<DataType>head(allData);
+ return IterableExtensions.<VarDecl>head(varDeclarations);
+ } else {
+ final Function1<VarDecl, RefableType> _function_5 = new Function1<VarDecl, RefableType>() {
+ @Override
+ public RefableType apply(final VarDecl it) {
+ RefableType _refType = null;
+ if (it!=null) {
+ _refType=it.getRefType();
+ }
+ return _refType;
+ }
+ };
+ Iterable<RefableType> _map_4 = IterableExtensions.<VarDecl, RefableType>map(varDeclarations, _function_5);
+ final List<RefableType> types = IterableExtensions.<RefableType>toList(_map_4);
+ final RefableType rt = this.roomHelpers.getLastCommonSuperType(types);
+ boolean _notEquals = (!Objects.equal(rt, null));
+ if (_notEquals) {
+ final VarDecl vd = RoomFactory.eINSTANCE.createVarDecl();
+ vd.setName("data");
+ vd.setRefType(rt);
+ return vd;
+ }
}
}
return null;

Back to the top