diff options
author | Juergen Haug | 2017-02-27 20:08:09 +0000 |
---|---|---|
committer | Juergen Haug | 2017-02-28 15:13:03 +0000 |
commit | 881e6359f7b07c1d6e8a27e9b81a06172819b3fd (patch) | |
tree | cd808b06e75eeaa7bfd756f04fb4fe456013352d /plugins/org.eclipse.etrice.ui.behavior | |
parent | b09aa986105adad9f2b9c227a79f2669830d306a (diff) | |
download | org.eclipse.etrice-881e6359f7b07c1d6e8a27e9b81a06172819b3fd.tar.gz org.eclipse.etrice-881e6359f7b07c1d6e8a27e9b81a06172819b3fd.tar.xz org.eclipse.etrice-881e6359f7b07c1d6e8a27e9b81a06172819b3fd.zip |
Bug 512819 - [actioneditor] missing highlighting and proposal for event
ports in guard window
Diffstat (limited to 'plugins/org.eclipse.etrice.ui.behavior')
4 files changed, 166 insertions, 137 deletions
diff --git a/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/detailcode/DefaultDetailExpressionProvider.xtend b/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/detailcode/DefaultDetailExpressionProvider.xtend index b6ee19d16..8a72ed9ff 100644 --- a/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/detailcode/DefaultDetailExpressionProvider.xtend +++ b/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/detailcode/DefaultDetailExpressionProvider.xtend @@ -30,28 +30,25 @@ class DefaultDetailExpressionProvider extends GuardDetailExpressionProvider { // no super call, keep it simple val List<ExpressionFeature> scope = newArrayList - if (transitionEventData != null) - scope += createExprFeature(transitionEventData) + if(transitionEventData != null) { + scope += transitionEventData.createExprFeature(ExpressionPostfix.NONE) + } + scope += actorClass.latestOperations.map[createExprFeature] + scope += actorClass.allAttributes.map[createExprFeature] actorClass.allInterfaceItems.forEach [ switch it { SPP case isEventDriven/* fall through */, Port case isEventDriven && isReplicated: { - scope += createExprFeature // additional feature for broadcast + scope += createExprFeature(ExpressionPostfix.NONE) // additional feature for broadcast scope += createExprFeature(ExpressionPostfix.BRACKETS) } Port case isReplicated/* fall through */, SPP: scope += createExprFeature(ExpressionPostfix.BRACKETS) default: - scope += createExprFeature + scope += createExprFeature(ExpressionPostfix.NONE) } ] - scope += actorClass.latestOperations.map[createExprFeature(ExpressionPostfix.PARENTHESES)] - scope += actorClass.allAttributes.map[ - switch (size) { - case size > 1: createExprFeature(ExpressionPostfix.BRACKETS) - default: createExprFeature - }] return scope } @@ -64,29 +61,27 @@ class DefaultDetailExpressionProvider extends GuardDetailExpressionProvider { switch obj : ctx.data { Port case obj.multiplicity == 1/* fall through */, SAP: scope += - obj.protocol.getAllOperations(!obj.conjugated).map[createExprFeature(ExpressionPostfix.PARENTHESES)] + obj.protocol.getAllOperations(!obj.conjugated).map[createExprFeature] } switch obj : ctx.data { InterfaceItem: { val pc = obj.protocol switch pc.commType { case EVENT_DRIVEN: - scope += pc.getAllMessages(obj.conjugated).map[createExprFeature(ExpressionPostfix.PARENTHESES)] + scope += pc.getAllMessages(obj.conjugated).map[createExprFeature] case DATA_DRIVEN: if (obj.conjugated) - scope += pc.allIncomingMessages.map[createExprFeature(ExpressionPostfix.PARENTHESES)] - else scope += pc.allIncomingMessages.map[createExprFeature] - case SYNCHRONOUS: { - } + else + scope += pc.allIncomingMessages.map[createExprFeature(ExpressionPostfix.NONE)] // data message has no Parenthesis + case SYNCHRONOUS: {} } // TODO Attributes ? } Attribute case obj.type.type instanceof DataClass: { val dc = obj.type.type as DataClass - scope += dc.allAttributes.map[ - if(size > 1) createExprFeature(ExpressionPostfix.BRACKETS) else createExprFeature] + scope += dc.allAttributes.map[createExprFeature] // not supported yet by code translation: // scope += dc.latestOperations.map[createExprFeature(ExpressionPostfix.PARENTHESES)] } diff --git a/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/detailcode/GuardDetailExpressionProvider.xtend b/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/detailcode/GuardDetailExpressionProvider.xtend index 955af89bf..f37993328 100644 --- a/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/detailcode/GuardDetailExpressionProvider.xtend +++ b/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/detailcode/GuardDetailExpressionProvider.xtend @@ -31,6 +31,9 @@ import org.eclipse.xtext.util.SimpleAttributeResolver import static extension org.eclipse.xtend.lib.annotations.AccessorType.* import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor +import org.eclipse.etrice.core.room.SAP +import org.eclipse.etrice.core.room.Operation +import org.eclipse.etrice.core.room.Message /** * Defines expression for fsm guards of an ActorClass @@ -53,19 +56,16 @@ class GuardDetailExpressionProvider implements IDetailExpressionProvider { override getInitialFeatures() { val List<ExpressionFeature> scope = newArrayList - if(transitionEventData != null) - scope += createExprFeature(transitionEventData) - scope += actorClass.allInterfaceItems.filter[isDataDriven && !isConjugated].map[ + if(transitionEventData != null) { + scope += transitionEventData.createExprFeature(ExpressionPostfix.NONE) + } + scope += actorClass.allInterfaceItems.filter[isEventDriven || !isConjugated].map[ switch it { Port case isReplicated: createExprFeature(ExpressionPostfix.BRACKETS) - default: createExprFeature - }] - scope += actorClass.latestOperations.map[createExprFeature(ExpressionPostfix.PARENTHESES)] - scope += actorClass.allAttributes.map[ - switch (size) { - case size > 1: createExprFeature(ExpressionPostfix.BRACKETS) - default: createExprFeature - }] + default: createExprFeature(ExpressionPostfix.NONE) + }] + scope += actorClass.latestOperations.map[createExprFeature] + scope += actorClass.allAttributes.map[createExprFeature] return scope } @@ -75,27 +75,46 @@ class GuardDetailExpressionProvider implements IDetailExpressionProvider { val List<ExpressionFeature> scope = newArrayList switch obj : ctx.data { + Port case obj.multiplicity == 1/* fall through */, + SAP: scope += + obj.protocol.getAllOperations(!obj.conjugated).map[createExprFeature] + } + switch obj : ctx.data { InterfaceItem: { val pc = obj.protocol switch pc.commType { case DATA_DRIVEN: - if (!obj.conjugated) - scope += pc.allIncomingMessages.map[createExprFeature] + if (!obj.conjugated) scope += pc.allIncomingMessages.map[createExprFeature] + case EVENT_DRIVEN: { /* no async message calls */} + case SYNCHRONOUS: {} } } Attribute case obj.type.type instanceof DataClass: { val dc = obj.type.type as DataClass - scope += dc.allAttributes.map[ - if(size > 1) createExprFeature(ExpressionPostfix.BRACKETS) else createExprFeature] - scope += dc.latestOperations.map[createExprFeature(ExpressionPostfix.PARENTHESES)] + scope += dc.allAttributes.map[createExprFeature] + scope += dc.latestOperations.map[createExprFeature] } } return scope } - - def protected createExprFeature(EObject eObj) { - createExprFeature(eObj, ExpressionPostfix.NONE) + + def ExpressionFeature createExprFeature(Operation it){ + // assuming all operations have parenthesis + createExprFeature(ExpressionPostfix.PARENTHESES) + } + + def ExpressionFeature createExprFeature(Message it){ + // assuming all message have parenthesis + createExprFeature(ExpressionPostfix.PARENTHESES) + } + + def ExpressionFeature createExprFeature(Attribute it){ + // assuming all attributes have brackets or not depending on size + switch (size) { + case size > 1: createExprFeature(ExpressionPostfix.BRACKETS) + default: createExprFeature(ExpressionPostfix.NONE) + } } def protected createExprFeature(EObject eObj, ExpressionPostfix postfix) { diff --git a/plugins/org.eclipse.etrice.ui.behavior/xtend-gen/org/eclipse/etrice/ui/behavior/detailcode/DefaultDetailExpressionProvider.java b/plugins/org.eclipse.etrice.ui.behavior/xtend-gen/org/eclipse/etrice/ui/behavior/detailcode/DefaultDetailExpressionProvider.java index 81e83705e..1d525ac74 100644 --- a/plugins/org.eclipse.etrice.ui.behavior/xtend-gen/org/eclipse/etrice/ui/behavior/detailcode/DefaultDetailExpressionProvider.java +++ b/plugins/org.eclipse.etrice.ui.behavior/xtend-gen/org/eclipse/etrice/ui/behavior/detailcode/DefaultDetailExpressionProvider.java @@ -13,6 +13,7 @@ package org.eclipse.etrice.ui.behavior.detailcode; import com.google.common.base.Objects; import com.google.common.collect.Iterables; import java.util.List; +import java.util.function.Consumer; import org.eclipse.etrice.core.room.ActorClass; import org.eclipse.etrice.core.room.Attribute; import org.eclipse.etrice.core.room.CommunicationType; @@ -32,9 +33,7 @@ import org.eclipse.etrice.ui.behavior.fsm.detailcode.IDetailExpressionProvider; import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor; import org.eclipse.xtext.xbase.lib.CollectionLiterals; import org.eclipse.xtext.xbase.lib.Functions.Function1; -import org.eclipse.xtext.xbase.lib.IterableExtensions; import org.eclipse.xtext.xbase.lib.ListExtensions; -import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; /** * Defines expression for fsm detail code of an ActorClass @@ -47,13 +46,31 @@ public class DefaultDetailExpressionProvider extends GuardDetailExpressionProvid final List<IDetailExpressionProvider.ExpressionFeature> scope = CollectionLiterals.<IDetailExpressionProvider.ExpressionFeature>newArrayList(); boolean _notEquals = (!Objects.equal(this.transitionEventData, null)); if (_notEquals) { - IDetailExpressionProvider.ExpressionFeature _createExprFeature = this.createExprFeature(this.transitionEventData); + IDetailExpressionProvider.ExpressionFeature _createExprFeature = this.createExprFeature(this.transitionEventData, IDetailExpressionProvider.ExpressionPostfix.NONE); scope.add(_createExprFeature); } + List<StandardOperation> _latestOperations = this.roomHelpers.getLatestOperations(this.actorClass); + final Function1<StandardOperation, IDetailExpressionProvider.ExpressionFeature> _function = new Function1<StandardOperation, IDetailExpressionProvider.ExpressionFeature>() { + @Override + public IDetailExpressionProvider.ExpressionFeature apply(final StandardOperation it) { + return DefaultDetailExpressionProvider.this.createExprFeature(it); + } + }; + List<IDetailExpressionProvider.ExpressionFeature> _map = ListExtensions.<StandardOperation, IDetailExpressionProvider.ExpressionFeature>map(_latestOperations, _function); + Iterables.<IDetailExpressionProvider.ExpressionFeature>addAll(scope, _map); + List<Attribute> _allAttributes = this.roomHelpers.getAllAttributes(this.actorClass); + final Function1<Attribute, IDetailExpressionProvider.ExpressionFeature> _function_1 = new Function1<Attribute, IDetailExpressionProvider.ExpressionFeature>() { + @Override + public IDetailExpressionProvider.ExpressionFeature apply(final Attribute it) { + return DefaultDetailExpressionProvider.this.createExprFeature(it); + } + }; + List<IDetailExpressionProvider.ExpressionFeature> _map_1 = ListExtensions.<Attribute, IDetailExpressionProvider.ExpressionFeature>map(_allAttributes, _function_1); + Iterables.<IDetailExpressionProvider.ExpressionFeature>addAll(scope, _map_1); List<InterfaceItem> _allInterfaceItems = this.roomHelpers.getAllInterfaceItems(this.actorClass); - final Procedure1<InterfaceItem> _function = new Procedure1<InterfaceItem>() { + final Consumer<InterfaceItem> _function_2 = new Consumer<InterfaceItem>() { @Override - public void apply(final InterfaceItem it) { + public void accept(final InterfaceItem it) { boolean _matched = false; if (it instanceof SPP) { boolean _isEventDriven = ((SPP)it).isEventDriven(); @@ -69,7 +86,7 @@ public class DefaultDetailExpressionProvider extends GuardDetailExpressionProvid } } if (_matched) { - IDetailExpressionProvider.ExpressionFeature _createExprFeature = DefaultDetailExpressionProvider.this.createExprFeature(it); + IDetailExpressionProvider.ExpressionFeature _createExprFeature = DefaultDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.NONE); scope.add(_createExprFeature); IDetailExpressionProvider.ExpressionFeature _createExprFeature_1 = DefaultDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.BRACKETS); scope.add(_createExprFeature_1); @@ -92,42 +109,12 @@ public class DefaultDetailExpressionProvider extends GuardDetailExpressionProvid } } if (!_matched) { - IDetailExpressionProvider.ExpressionFeature _createExprFeature_3 = DefaultDetailExpressionProvider.this.createExprFeature(it); + IDetailExpressionProvider.ExpressionFeature _createExprFeature_3 = DefaultDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.NONE); scope.add(_createExprFeature_3); } } }; - IterableExtensions.<InterfaceItem>forEach(_allInterfaceItems, _function); - List<StandardOperation> _latestOperations = this.roomHelpers.getLatestOperations(this.actorClass); - final Function1<StandardOperation, IDetailExpressionProvider.ExpressionFeature> _function_1 = new Function1<StandardOperation, IDetailExpressionProvider.ExpressionFeature>() { - @Override - public IDetailExpressionProvider.ExpressionFeature apply(final StandardOperation it) { - return DefaultDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.PARENTHESES); - } - }; - List<IDetailExpressionProvider.ExpressionFeature> _map = ListExtensions.<StandardOperation, IDetailExpressionProvider.ExpressionFeature>map(_latestOperations, _function_1); - Iterables.<IDetailExpressionProvider.ExpressionFeature>addAll(scope, _map); - List<Attribute> _allAttributes = this.roomHelpers.getAllAttributes(this.actorClass); - final Function1<Attribute, IDetailExpressionProvider.ExpressionFeature> _function_2 = new Function1<Attribute, IDetailExpressionProvider.ExpressionFeature>() { - @Override - public IDetailExpressionProvider.ExpressionFeature apply(final Attribute it) { - IDetailExpressionProvider.ExpressionFeature _switchResult = null; - int _size = it.getSize(); - boolean _matched = false; - int _size_1 = it.getSize(); - boolean _greaterThan = (_size_1 > 1); - if (_greaterThan) { - _matched=true; - _switchResult = DefaultDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.BRACKETS); - } - if (!_matched) { - _switchResult = DefaultDetailExpressionProvider.this.createExprFeature(it); - } - return _switchResult; - } - }; - List<IDetailExpressionProvider.ExpressionFeature> _map_1 = ListExtensions.<Attribute, IDetailExpressionProvider.ExpressionFeature>map(_allAttributes, _function_2); - Iterables.<IDetailExpressionProvider.ExpressionFeature>addAll(scope, _map_1); + _allInterfaceItems.forEach(_function_2); return scope; } @@ -158,7 +145,7 @@ public class DefaultDetailExpressionProvider extends GuardDetailExpressionProvid final Function1<PortOperation, IDetailExpressionProvider.ExpressionFeature> _function = new Function1<PortOperation, IDetailExpressionProvider.ExpressionFeature>() { @Override public IDetailExpressionProvider.ExpressionFeature apply(final PortOperation it) { - return DefaultDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.PARENTHESES); + return DefaultDetailExpressionProvider.this.createExprFeature(it); } }; List<IDetailExpressionProvider.ExpressionFeature> _map = ListExtensions.<PortOperation, IDetailExpressionProvider.ExpressionFeature>map(_allOperations, _function); @@ -179,7 +166,7 @@ public class DefaultDetailExpressionProvider extends GuardDetailExpressionProvid final Function1<Message, IDetailExpressionProvider.ExpressionFeature> _function_1 = new Function1<Message, IDetailExpressionProvider.ExpressionFeature>() { @Override public IDetailExpressionProvider.ExpressionFeature apply(final Message it) { - return DefaultDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.PARENTHESES); + return DefaultDetailExpressionProvider.this.createExprFeature(it); } }; List<IDetailExpressionProvider.ExpressionFeature> _map_1 = ListExtensions.<Message, IDetailExpressionProvider.ExpressionFeature>map(_allMessages, _function_1); @@ -192,7 +179,7 @@ public class DefaultDetailExpressionProvider extends GuardDetailExpressionProvid final Function1<Message, IDetailExpressionProvider.ExpressionFeature> _function_2 = new Function1<Message, IDetailExpressionProvider.ExpressionFeature>() { @Override public IDetailExpressionProvider.ExpressionFeature apply(final Message it) { - return DefaultDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.PARENTHESES); + return DefaultDetailExpressionProvider.this.createExprFeature(it); } }; List<IDetailExpressionProvider.ExpressionFeature> _map_2 = ListExtensions.<Message, IDetailExpressionProvider.ExpressionFeature>map(_allIncomingMessages, _function_2); @@ -202,7 +189,7 @@ public class DefaultDetailExpressionProvider extends GuardDetailExpressionProvid final Function1<Message, IDetailExpressionProvider.ExpressionFeature> _function_3 = new Function1<Message, IDetailExpressionProvider.ExpressionFeature>() { @Override public IDetailExpressionProvider.ExpressionFeature apply(final Message it) { - return DefaultDetailExpressionProvider.this.createExprFeature(it); + return DefaultDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.NONE); } }; List<IDetailExpressionProvider.ExpressionFeature> _map_3 = ListExtensions.<Message, IDetailExpressionProvider.ExpressionFeature>map(_allIncomingMessages_1, _function_3); @@ -229,15 +216,7 @@ public class DefaultDetailExpressionProvider extends GuardDetailExpressionProvid final Function1<Attribute, IDetailExpressionProvider.ExpressionFeature> _function_1 = new Function1<Attribute, IDetailExpressionProvider.ExpressionFeature>() { @Override public IDetailExpressionProvider.ExpressionFeature apply(final Attribute it) { - IDetailExpressionProvider.ExpressionFeature _xifexpression = null; - int _size = it.getSize(); - boolean _greaterThan = (_size > 1); - if (_greaterThan) { - _xifexpression = DefaultDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.BRACKETS); - } else { - _xifexpression = DefaultDetailExpressionProvider.this.createExprFeature(it); - } - return _xifexpression; + return DefaultDetailExpressionProvider.this.createExprFeature(it); } }; List<IDetailExpressionProvider.ExpressionFeature> _map_1 = ListExtensions.<Attribute, IDetailExpressionProvider.ExpressionFeature>map(_allAttributes, _function_1); diff --git a/plugins/org.eclipse.etrice.ui.behavior/xtend-gen/org/eclipse/etrice/ui/behavior/detailcode/GuardDetailExpressionProvider.java b/plugins/org.eclipse.etrice.ui.behavior/xtend-gen/org/eclipse/etrice/ui/behavior/detailcode/GuardDetailExpressionProvider.java index b5c88cfa5..14360cd58 100644 --- a/plugins/org.eclipse.etrice.ui.behavior/xtend-gen/org/eclipse/etrice/ui/behavior/detailcode/GuardDetailExpressionProvider.java +++ b/plugins/org.eclipse.etrice.ui.behavior/xtend-gen/org/eclipse/etrice/ui/behavior/detailcode/GuardDetailExpressionProvider.java @@ -24,9 +24,12 @@ import org.eclipse.etrice.core.room.DataClass; import org.eclipse.etrice.core.room.DataType; import org.eclipse.etrice.core.room.InterfaceItem; import org.eclipse.etrice.core.room.Message; +import org.eclipse.etrice.core.room.Operation; import org.eclipse.etrice.core.room.Port; +import org.eclipse.etrice.core.room.PortOperation; import org.eclipse.etrice.core.room.ProtocolClass; import org.eclipse.etrice.core.room.RefableType; +import org.eclipse.etrice.core.room.SAP; import org.eclipse.etrice.core.room.StandardOperation; import org.eclipse.etrice.core.room.VarDecl; import org.eclipse.etrice.core.room.util.RoomHelpers; @@ -67,14 +70,14 @@ public class GuardDetailExpressionProvider implements IDetailExpressionProvider final List<IDetailExpressionProvider.ExpressionFeature> scope = CollectionLiterals.<IDetailExpressionProvider.ExpressionFeature>newArrayList(); boolean _notEquals = (!Objects.equal(this.transitionEventData, null)); if (_notEquals) { - IDetailExpressionProvider.ExpressionFeature _createExprFeature = this.createExprFeature(this.transitionEventData); + IDetailExpressionProvider.ExpressionFeature _createExprFeature = this.createExprFeature(this.transitionEventData, IDetailExpressionProvider.ExpressionPostfix.NONE); scope.add(_createExprFeature); } List<InterfaceItem> _allInterfaceItems = this.roomHelpers.getAllInterfaceItems(this.actorClass); final Function1<InterfaceItem, Boolean> _function = new Function1<InterfaceItem, Boolean>() { @Override public Boolean apply(final InterfaceItem it) { - return Boolean.valueOf((GuardDetailExpressionProvider.this.roomHelpers.isDataDriven(it) && (!GuardDetailExpressionProvider.this.roomHelpers.isConjugated(it)))); + return Boolean.valueOf((it.isEventDriven() || (!GuardDetailExpressionProvider.this.roomHelpers.isConjugated(it)))); } }; Iterable<InterfaceItem> _filter = IterableExtensions.<InterfaceItem>filter(_allInterfaceItems, _function); @@ -91,7 +94,7 @@ public class GuardDetailExpressionProvider implements IDetailExpressionProvider } } if (!_matched) { - _switchResult = GuardDetailExpressionProvider.this.createExprFeature(it); + _switchResult = GuardDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.NONE); } return _switchResult; } @@ -102,7 +105,7 @@ public class GuardDetailExpressionProvider implements IDetailExpressionProvider final Function1<StandardOperation, IDetailExpressionProvider.ExpressionFeature> _function_2 = new Function1<StandardOperation, IDetailExpressionProvider.ExpressionFeature>() { @Override public IDetailExpressionProvider.ExpressionFeature apply(final StandardOperation it) { - return GuardDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.PARENTHESES); + return GuardDetailExpressionProvider.this.createExprFeature(it); } }; List<IDetailExpressionProvider.ExpressionFeature> _map_1 = ListExtensions.<StandardOperation, IDetailExpressionProvider.ExpressionFeature>map(_latestOperations, _function_2); @@ -111,19 +114,7 @@ public class GuardDetailExpressionProvider implements IDetailExpressionProvider final Function1<Attribute, IDetailExpressionProvider.ExpressionFeature> _function_3 = new Function1<Attribute, IDetailExpressionProvider.ExpressionFeature>() { @Override public IDetailExpressionProvider.ExpressionFeature apply(final Attribute it) { - IDetailExpressionProvider.ExpressionFeature _switchResult = null; - int _size = it.getSize(); - boolean _matched = false; - int _size_1 = it.getSize(); - boolean _greaterThan = (_size_1 > 1); - if (_greaterThan) { - _matched=true; - _switchResult = GuardDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.BRACKETS); - } - if (!_matched) { - _switchResult = GuardDetailExpressionProvider.this.createExprFeature(it); - } - return _switchResult; + return GuardDetailExpressionProvider.this.createExprFeature(it); } }; List<IDetailExpressionProvider.ExpressionFeature> _map_2 = ListExtensions.<Attribute, IDetailExpressionProvider.ExpressionFeature>map(_allAttributes, _function_3); @@ -138,75 +129,120 @@ public class GuardDetailExpressionProvider implements IDetailExpressionProvider Object _data = ctx.getData(); final Object obj = _data; boolean _matched = false; - if (obj instanceof InterfaceItem) { - _matched=true; - final ProtocolClass pc = this.roomHelpers.getProtocol(((InterfaceItem)obj)); + if (obj instanceof Port) { + int _multiplicity = ((Port)obj).getMultiplicity(); + boolean _equals = (_multiplicity == 1); + if (_equals) { + _matched=true; + } + } + if (!_matched) { + if (obj instanceof SAP) { + _matched=true; + } + } + if (_matched) { + ProtocolClass _protocol = this.roomHelpers.getProtocol(((InterfaceItem)obj)); + boolean _isConjugated = this.roomHelpers.isConjugated(((InterfaceItem)obj)); + boolean _not = (!_isConjugated); + List<PortOperation> _allOperations = this.roomHelpers.getAllOperations(_protocol, _not); + final Function1<PortOperation, IDetailExpressionProvider.ExpressionFeature> _function = new Function1<PortOperation, IDetailExpressionProvider.ExpressionFeature>() { + @Override + public IDetailExpressionProvider.ExpressionFeature apply(final PortOperation it) { + return GuardDetailExpressionProvider.this.createExprFeature(it); + } + }; + List<IDetailExpressionProvider.ExpressionFeature> _map = ListExtensions.<PortOperation, IDetailExpressionProvider.ExpressionFeature>map(_allOperations, _function); + Iterables.<IDetailExpressionProvider.ExpressionFeature>addAll(scope, _map); + } + Object _data_1 = ctx.getData(); + final Object obj_1 = _data_1; + boolean _matched_1 = false; + if (obj_1 instanceof InterfaceItem) { + _matched_1=true; + final ProtocolClass pc = this.roomHelpers.getProtocol(((InterfaceItem)obj_1)); CommunicationType _commType = pc.getCommType(); if (_commType != null) { switch (_commType) { case DATA_DRIVEN: - boolean _isConjugated = this.roomHelpers.isConjugated(((InterfaceItem)obj)); - boolean _not = (!_isConjugated); - if (_not) { + boolean _isConjugated_1 = this.roomHelpers.isConjugated(((InterfaceItem)obj_1)); + boolean _not_1 = (!_isConjugated_1); + if (_not_1) { List<Message> _allIncomingMessages = this.roomHelpers.getAllIncomingMessages(pc); - final Function1<Message, IDetailExpressionProvider.ExpressionFeature> _function = new Function1<Message, IDetailExpressionProvider.ExpressionFeature>() { + final Function1<Message, IDetailExpressionProvider.ExpressionFeature> _function_1 = new Function1<Message, IDetailExpressionProvider.ExpressionFeature>() { @Override public IDetailExpressionProvider.ExpressionFeature apply(final Message it) { return GuardDetailExpressionProvider.this.createExprFeature(it); } }; - List<IDetailExpressionProvider.ExpressionFeature> _map = ListExtensions.<Message, IDetailExpressionProvider.ExpressionFeature>map(_allIncomingMessages, _function); - Iterables.<IDetailExpressionProvider.ExpressionFeature>addAll(scope, _map); + List<IDetailExpressionProvider.ExpressionFeature> _map_1 = ListExtensions.<Message, IDetailExpressionProvider.ExpressionFeature>map(_allIncomingMessages, _function_1); + Iterables.<IDetailExpressionProvider.ExpressionFeature>addAll(scope, _map_1); } break; + case EVENT_DRIVEN: + break; + case SYNCHRONOUS: + break; default: break; } } } - if (!_matched) { - if (obj instanceof Attribute) { - RefableType _type = ((Attribute)obj).getType(); + if (!_matched_1) { + if (obj_1 instanceof Attribute) { + RefableType _type = ((Attribute)obj_1).getType(); DataType _type_1 = _type.getType(); if ((_type_1 instanceof DataClass)) { - _matched=true; - RefableType _type_2 = ((Attribute)obj).getType(); + _matched_1=true; + RefableType _type_2 = ((Attribute)obj_1).getType(); DataType _type_3 = _type_2.getType(); final DataClass dc = ((DataClass) _type_3); List<Attribute> _allAttributes = this.roomHelpers.getAllAttributes(dc); - final Function1<Attribute, IDetailExpressionProvider.ExpressionFeature> _function = new Function1<Attribute, IDetailExpressionProvider.ExpressionFeature>() { + final Function1<Attribute, IDetailExpressionProvider.ExpressionFeature> _function_1 = new Function1<Attribute, IDetailExpressionProvider.ExpressionFeature>() { @Override public IDetailExpressionProvider.ExpressionFeature apply(final Attribute it) { - IDetailExpressionProvider.ExpressionFeature _xifexpression = null; - int _size = it.getSize(); - boolean _greaterThan = (_size > 1); - if (_greaterThan) { - _xifexpression = GuardDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.BRACKETS); - } else { - _xifexpression = GuardDetailExpressionProvider.this.createExprFeature(it); - } - return _xifexpression; + return GuardDetailExpressionProvider.this.createExprFeature(it); } }; - List<IDetailExpressionProvider.ExpressionFeature> _map = ListExtensions.<Attribute, IDetailExpressionProvider.ExpressionFeature>map(_allAttributes, _function); - Iterables.<IDetailExpressionProvider.ExpressionFeature>addAll(scope, _map); + List<IDetailExpressionProvider.ExpressionFeature> _map_1 = ListExtensions.<Attribute, IDetailExpressionProvider.ExpressionFeature>map(_allAttributes, _function_1); + Iterables.<IDetailExpressionProvider.ExpressionFeature>addAll(scope, _map_1); List<StandardOperation> _latestOperations = this.roomHelpers.getLatestOperations(dc); - final Function1<StandardOperation, IDetailExpressionProvider.ExpressionFeature> _function_1 = new Function1<StandardOperation, IDetailExpressionProvider.ExpressionFeature>() { + final Function1<StandardOperation, IDetailExpressionProvider.ExpressionFeature> _function_2 = new Function1<StandardOperation, IDetailExpressionProvider.ExpressionFeature>() { @Override public IDetailExpressionProvider.ExpressionFeature apply(final StandardOperation it) { - return GuardDetailExpressionProvider.this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.PARENTHESES); + return GuardDetailExpressionProvider.this.createExprFeature(it); } }; - List<IDetailExpressionProvider.ExpressionFeature> _map_1 = ListExtensions.<StandardOperation, IDetailExpressionProvider.ExpressionFeature>map(_latestOperations, _function_1); - Iterables.<IDetailExpressionProvider.ExpressionFeature>addAll(scope, _map_1); + List<IDetailExpressionProvider.ExpressionFeature> _map_2 = ListExtensions.<StandardOperation, IDetailExpressionProvider.ExpressionFeature>map(_latestOperations, _function_2); + Iterables.<IDetailExpressionProvider.ExpressionFeature>addAll(scope, _map_2); } } } return scope; } - protected IDetailExpressionProvider.ExpressionFeature createExprFeature(final EObject eObj) { - return this.createExprFeature(eObj, IDetailExpressionProvider.ExpressionPostfix.NONE); + public IDetailExpressionProvider.ExpressionFeature createExprFeature(final Operation it) { + return this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.PARENTHESES); + } + + public IDetailExpressionProvider.ExpressionFeature createExprFeature(final Message it) { + return this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.PARENTHESES); + } + + public IDetailExpressionProvider.ExpressionFeature createExprFeature(final Attribute it) { + IDetailExpressionProvider.ExpressionFeature _switchResult = null; + int _size = it.getSize(); + boolean _matched = false; + int _size_1 = it.getSize(); + boolean _greaterThan = (_size_1 > 1); + if (_greaterThan) { + _matched=true; + _switchResult = this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.BRACKETS); + } + if (!_matched) { + _switchResult = this.createExprFeature(it, IDetailExpressionProvider.ExpressionPostfix.NONE); + } + return _switchResult; } protected IDetailExpressionProvider.ExpressionFeature createExprFeature(final EObject eObj, final IDetailExpressionProvider.ExpressionPostfix postfix) { |