Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2014-08-22 07:31:10 +0000
committerHenrik Rentz-Reichert2014-08-22 07:40:13 +0000
commit512491e5656b39b2cc417ca9285a37745b5af82e (patch)
tree468b967f03ec9a9e71a61361db96a90699962177 /plugins/org.eclipse.etrice.abstractexec.behavior
parentd79db7ad717f00bfe3562d8f7699b5a9ccd45293 (diff)
downloadorg.eclipse.etrice-512491e5656b39b2cc417ca9285a37745b5af82e.tar.gz
org.eclipse.etrice-512491e5656b39b2cc417ca9285a37745b5af82e.tar.xz
org.eclipse.etrice-512491e5656b39b2cc417ca9285a37745b5af82e.zip
[generator.fsm, abstractexec.behavior] abstract execution validation for state machines now independent of ROOM
Diffstat (limited to 'plugins/org.eclipse.etrice.abstractexec.behavior')
-rw-r--r--plugins/org.eclipse.etrice.abstractexec.behavior/META-INF/MANIFEST.MF7
-rw-r--r--plugins/org.eclipse.etrice.abstractexec.behavior/build.properties4
-rw-r--r--plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/AbstractExecutionValidator.java63
-rw-r--r--plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ActionCodeAnalyzer.java22
-rw-r--r--plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ActiveRules.java56
-rw-r--r--plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/HandledMessage.java14
-rw-r--r--plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ProposalGenerator.java21
-rw-r--r--plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityCheck.java14
-rw-r--r--plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityValidator.java24
-rw-r--r--plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/SemanticsCheck.java18
-rw-r--r--plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/util/AbstractExecutionUtil.java22
11 files changed, 125 insertions, 140 deletions
diff --git a/plugins/org.eclipse.etrice.abstractexec.behavior/META-INF/MANIFEST.MF b/plugins/org.eclipse.etrice.abstractexec.behavior/META-INF/MANIFEST.MF
index ad3526a64..e75b4ea93 100644
--- a/plugins/org.eclipse.etrice.abstractexec.behavior/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.etrice.abstractexec.behavior/META-INF/MANIFEST.MF
@@ -5,12 +5,9 @@ Bundle-SymbolicName: org.eclipse.etrice.abstractexec.behavior;singleton:=true
Bundle-Version: 0.5.0.qualifier
Bundle-Vendor: Eclipse eTrice (Incubation)
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Require-Bundle: org.eclipse.etrice.core.room;bundle-version="0.5.0",
- org.eclipse.etrice.core.fsm;bundle-version="0.5.0",
- org.eclipse.etrice.core.room.ui;bundle-version="0.5.0",
+Require-Bundle: org.eclipse.etrice.core.fsm;bundle-version="0.5.0",
org.eclipse.etrice.core.genmodel.fsm;bundle-version="0.5.0",
- org.eclipse.etrice.core.genmodel;bundle-version="0.5.0",
- org.eclipse.etrice.generator;bundle-version="0.5.0",
+ org.eclipse.etrice.generator.fsm;bundle-version="0.5.0",
org.eclipse.emf.ecore;bundle-version="2.7.0",
org.eclipse.xtext;bundle-version="2.1.1",
org.eclipse.xtext.ui;bundle-version="2.1.1"
diff --git a/plugins/org.eclipse.etrice.abstractexec.behavior/build.properties b/plugins/org.eclipse.etrice.abstractexec.behavior/build.properties
index 060a9e9fd..e1fe10883 100644
--- a/plugins/org.eclipse.etrice.abstractexec.behavior/build.properties
+++ b/plugins/org.eclipse.etrice.abstractexec.behavior/build.properties
@@ -2,5 +2,5 @@ source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
- plugin.xml,\
- .options
+ .options,\
+ plugin.xml
diff --git a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/AbstractExecutionValidator.java b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/AbstractExecutionValidator.java
index ac7dcc112..ae8dc70a6 100644
--- a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/AbstractExecutionValidator.java
+++ b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/AbstractExecutionValidator.java
@@ -23,22 +23,20 @@ import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.etrice.abstractexec.behavior.util.AbstractExecutionUtil;
import org.eclipse.etrice.core.common.validation.ICustomValidator;
-import org.eclipse.etrice.core.genmodel.base.NullDiagnostician;
-import org.eclipse.etrice.core.genmodel.base.NullLogger;
-import org.eclipse.etrice.core.genmodel.builder.GeneratorModelBuilder;
-import org.eclipse.etrice.core.genmodel.etricegen.ExpandedActorClass;
-import org.eclipse.etrice.core.genmodel.fsm.fsmgen.ActiveTrigger;
-import org.eclipse.etrice.core.room.ActorClass;
+import org.eclipse.etrice.core.fsm.fSM.AbstractInterfaceItem;
import org.eclipse.etrice.core.fsm.fSM.DetailCode;
-import org.eclipse.etrice.core.room.GeneralProtocolClass;
-import org.eclipse.etrice.core.room.InterfaceItem;
+import org.eclipse.etrice.core.fsm.fSM.FSMPackage;
import org.eclipse.etrice.core.fsm.fSM.MessageFromIf;
-import org.eclipse.etrice.core.room.ProtocolClass;
-import org.eclipse.etrice.core.room.RoomPackage;
+import org.eclipse.etrice.core.fsm.fSM.ModelComponent;
import org.eclipse.etrice.core.fsm.fSM.State;
import org.eclipse.etrice.core.fsm.fSM.StateGraphItem;
import org.eclipse.etrice.core.fsm.fSM.Trigger;
import org.eclipse.etrice.core.fsm.fSM.TriggeredTransition;
+import org.eclipse.etrice.core.genmodel.fsm.base.NullDiagnostician;
+import org.eclipse.etrice.core.genmodel.fsm.base.NullLogger;
+import org.eclipse.etrice.core.genmodel.fsm.builder.FSMGeneratorModelBuilder;
+import org.eclipse.etrice.core.genmodel.fsm.fsmgen.ActiveTrigger;
+import org.eclipse.etrice.core.genmodel.fsm.fsmgen.ExpandedModelComponent;
import org.eclipse.xtext.validation.ValidationMessageAcceptor;
/**
@@ -57,7 +55,7 @@ public class AbstractExecutionValidator implements ICustomValidator {
private static boolean traceExec = false;
private static String traceName = "";
static {
- classesToCheck.add(RoomPackage.Literals.ACTOR_CLASS);
+ classesToCheck.add(FSMPackage.Literals.MODEL_COMPONENT);
if (Activator.getDefault() != null && Activator.getDefault().isDebugging()) {
String value = Platform
@@ -74,19 +72,19 @@ public class AbstractExecutionValidator implements ICustomValidator {
public void validate(EObject object,
ValidationMessageAcceptor messageAcceptor, ICustomValidator.ValidationContext context) {
- if (!(object instanceof ActorClass))
+ if (!(object instanceof ModelComponent))
return;
if(context.isGeneration())
return;
- ActorClass ac = (ActorClass) object;
+ ModelComponent ac = (ModelComponent) object;
if (traceExec) {
- if (!(traceName.isEmpty() || ac.getName().equals(traceName)))
+ if (!(traceName.isEmpty() || ac.getComponentName().equals(traceName)))
return;
System.out.println("AbstractExecutionValidator checking class "
- + ac.getName());
+ + ac.getComponentName());
}
if (ac.isAbstract())
@@ -97,21 +95,14 @@ public class AbstractExecutionValidator implements ICustomValidator {
return;
boolean oneProtocolsWithSemantics = false;
- List<InterfaceItem> ifItems = AbstractExecutionUtil.getInstance().getRoomHelpers().getAllInterfaceItems(ac);
- for (InterfaceItem item : ifItems) {
- GeneralProtocolClass pc = item.getGeneralProtocol();
- if (!(pc instanceof ProtocolClass))
- continue;
-
- if (traceExec)
- System.out.println(" Checking protocolClass " + pc.getName()
- + " for semantics");
- if (((ProtocolClass) pc).getSemantics() != null) {
+ List<AbstractInterfaceItem> ifItems = ac.getAllAbstractInterfaceItems();
+ for (AbstractInterfaceItem item : ifItems) {
+ if (item.getSemantics()!=null) {
oneProtocolsWithSemantics = true;
if (traceExec)
System.out
- .println(" Will execute because semantics defined for "
- + pc.getName());
+ .println(" Will execute because semantics defined for interface item "
+ + item.getName());
break;
}
}
@@ -120,9 +111,15 @@ public class AbstractExecutionValidator implements ICustomValidator {
if (traceExec)
System.out.println(" Reached where at least one interface items has semantics");
NullDiagnostician diagnostician = new NullDiagnostician();
- GeneratorModelBuilder builder = new GeneratorModelBuilder(
+ FSMGeneratorModelBuilder builder = new FSMGeneratorModelBuilder(
new NullLogger(), diagnostician);
- ExpandedActorClass xpac = builder.createExpandedActorClass(ac);
+ ExpandedModelComponent xpac;
+ try {
+ xpac = builder.createExpandedModelComponent(ac);
+ }
+ catch (Throwable t) {
+ return;
+ }
if (xpac != null && !diagnostician.isFailed()) {
SemanticsCheck checker = new SemanticsCheck(xpac);
@@ -130,7 +127,7 @@ public class AbstractExecutionValidator implements ICustomValidator {
if (traceExec)
System.out.println(" Rule checking for "
- + xpac.getActorClass().getName() + " is over");
+ + xpac.getModelComponent().getComponentName() + " is over");
TreeIterator<EObject> it = xpac.getStateMachine()
.eAllContents();
@@ -154,7 +151,7 @@ public class AbstractExecutionValidator implements ICustomValidator {
if (traceExec)
System.out
.println("AbstractExecutionValidator done checking class "
- + ac.getName());
+ + ac.getComponentName());
}
else
if(traceExec)
@@ -179,7 +176,7 @@ public class AbstractExecutionValidator implements ICustomValidator {
private void createMarkersForProposals(ProposalGenerator propGen,
ValidationMessageAcceptor messageAcceptor, State st,
- ExpandedActorClass xpac) {
+ ExpandedModelComponent xpac) {
List<MessageFromIf> incoming = propGen.getIncomingProposals();
EObject orig = xpac.getOrig(st);
EObject container = orig.eContainer();
@@ -210,7 +207,7 @@ public class AbstractExecutionValidator implements ICustomValidator {
private void createMarkersForWarnings(SemanticsCheck checker,
ValidationMessageAcceptor messageAcceptor, StateGraphItem item,
- ExpandedActorClass xpac) {
+ ExpandedModelComponent xpac) {
List<HandledMessage> warningList = checker.getWarningMsg(item);
if (traceExec && warningList != null) {
System.out.println("Messages in the warning list for item "
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 c3fc69eeb..4aa4665bf 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
@@ -15,12 +15,12 @@ package org.eclipse.etrice.abstractexec.behavior;
import java.util.ArrayList;
import java.util.List;
-import org.eclipse.etrice.core.room.ActorClass;
+import org.eclipse.etrice.core.fsm.fSM.AbstractInterfaceItem;
+import org.eclipse.etrice.core.fsm.fSM.AbstractMessage;
import org.eclipse.etrice.core.fsm.fSM.DetailCode;
-import org.eclipse.etrice.core.room.InterfaceItem;
-import org.eclipse.etrice.core.room.Message;
-import org.eclipse.etrice.generator.base.DefaultTranslationProvider;
-import org.eclipse.etrice.generator.base.DetailCodeTranslator;
+import org.eclipse.etrice.core.fsm.fSM.ModelComponent;
+import org.eclipse.etrice.generator.fsm.base.DefaultFSMTranslationProvider;
+import org.eclipse.etrice.generator.fsm.base.FSMDetailCodeTranslator;
/**
* @author Henrik Rentz-Reichert
@@ -28,7 +28,7 @@ import org.eclipse.etrice.generator.base.DetailCodeTranslator;
*/
public class ActionCodeAnalyzer {
- private class Collector extends DefaultTranslationProvider {
+ private class Collector extends DefaultFSMTranslationProvider {
private ArrayList<HandledMessage> mifs = new ArrayList<HandledMessage>();
@@ -40,8 +40,8 @@ public class ActionCodeAnalyzer {
* @see org.eclipse.etrice.generator.base.DefaultTranslationProvider#getInterfaceItemMessageText(org.eclipse.etrice.core.room.InterfaceItem, org.eclipse.etrice.core.room.Message, java.util.ArrayList, java.lang.String, java.lang.String)
*/
@Override
- public String getInterfaceItemMessageText(InterfaceItem item,
- Message msg, ArrayList<String> args, String index, String orig) {
+ public String getInterfaceItemMessageText(AbstractInterfaceItem item,
+ AbstractMessage msg, ArrayList<String> args, String index, String orig) {
HandledMessage sm = new HandledMessage(item, msg, origin);
mifs.add(sm);
@@ -64,12 +64,12 @@ public class ActionCodeAnalyzer {
}
private Collector collector;
- private DetailCodeTranslator translator;
+ private FSMDetailCodeTranslator translator;
private DetailCode origin;
- public ActionCodeAnalyzer(ActorClass ac) {
+ public ActionCodeAnalyzer(ModelComponent ac) {
collector = new Collector();
- translator = new DetailCodeTranslator(ac, collector, true);
+ translator = new FSMDetailCodeTranslator(ac, collector, true);
}
public List<HandledMessage> analyze(DetailCode dc) {
diff --git a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ActiveRules.java b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ActiveRules.java
index b352f5c8c..73c8fd488 100644
--- a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ActiveRules.java
+++ b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ActiveRules.java
@@ -19,19 +19,18 @@ import java.util.Map.Entry;
import java.util.Set;
import org.eclipse.core.runtime.Platform;
-import org.eclipse.etrice.abstractexec.behavior.util.AbstractExecutionUtil;
-import org.eclipse.etrice.core.genmodel.etricegen.ExpandedActorClass;
-import org.eclipse.etrice.core.room.GeneralProtocolClass;
-import org.eclipse.etrice.core.room.InSemanticsRule;
-import org.eclipse.etrice.core.room.InterfaceItem;
-import org.eclipse.etrice.core.room.ProtocolClass;
-import org.eclipse.etrice.core.room.ProtocolSemantics;
-import org.eclipse.etrice.core.room.SemanticsRule;
+import org.eclipse.etrice.core.fsm.fSM.AbstractInterfaceItem;
+import org.eclipse.etrice.core.fsm.fSM.InSemanticsRule;
+import org.eclipse.etrice.core.fsm.fSM.ProtocolSemantics;
+import org.eclipse.etrice.core.fsm.fSM.SemanticsRule;
+import org.eclipse.etrice.core.genmodel.fsm.fsmgen.ExpandedModelComponent;
public class ActiveRules {
- private HashMap<InterfaceItem, List<SemanticsRule>> rules;
+ private HashMap<AbstractInterfaceItem, List<SemanticsRule>> rules;
private static boolean traceRules = false;
private static int traceLevel = 0;
+
+ // HOWTO: use debug options to configure tracing (see also the .options file in the plug-in)
static {
if (Activator.getDefault().isDebugging()) {
String value = Platform
@@ -51,18 +50,18 @@ public class ActiveRules {
private static final int TRACE_DETAILS = 2;
public ActiveRules() {
- rules = new HashMap<InterfaceItem, List<SemanticsRule>>();
+ rules = new HashMap<AbstractInterfaceItem, List<SemanticsRule>>();
}
- private ActiveRules(HashMap<InterfaceItem, List<SemanticsRule>> r) {
+ private ActiveRules(HashMap<AbstractInterfaceItem, List<SemanticsRule>> r) {
rules = r;
}
- public Set<InterfaceItem> getPortList() {
+ public Set<AbstractInterfaceItem> getPortList() {
return rules.keySet();
}
- public List<SemanticsRule> getRulesForPort(InterfaceItem port) {
+ public List<SemanticsRule> getRulesForPort(AbstractInterfaceItem port) {
return rules.get(port);
}
@@ -92,7 +91,7 @@ public class ActiveRules {
if (match.getFollowUps().isEmpty()) {
// all rules of this branch consumed
// restart at root of semantic rules
- ProtocolSemantics semantics = ((ProtocolClass)msg.getIfitem().getGeneralProtocol()).getSemantics();
+ ProtocolSemantics semantics = msg.getIfitem().getSemantics();
localRules.addAll(semantics.getRules());
}
else {
@@ -112,10 +111,10 @@ public class ActiveRules {
// merges the rules with the destination active rules
public boolean merge(ActiveRules ar) {
boolean added_at_least_one = false;
- for (Entry<InterfaceItem, List<SemanticsRule>> entry : ar.rules
+ for (Entry<AbstractInterfaceItem, List<SemanticsRule>> entry : ar.rules
.entrySet()) {
for (SemanticsRule rule : entry.getValue()) {
- InterfaceItem ifitem = entry.getKey();
+ AbstractInterfaceItem ifitem = entry.getKey();
if (rules.containsKey(ifitem)) {
if (!rules.get(ifitem).contains(rule)) {
rules.get(ifitem).add(rule);
@@ -137,32 +136,27 @@ public class ActiveRules {
}
public ActiveRules createCopy() {
- HashMap<InterfaceItem, List<SemanticsRule>> newRules = new HashMap<InterfaceItem, List<SemanticsRule>>();
- for (InterfaceItem ifitem : rules.keySet()) {
+ HashMap<AbstractInterfaceItem, List<SemanticsRule>> newRules = new HashMap<AbstractInterfaceItem, List<SemanticsRule>>();
+ for (AbstractInterfaceItem ifitem : rules.keySet()) {
newRules.put(ifitem,
new ArrayList<SemanticsRule>(rules.get(ifitem)));
}
return new ActiveRules(newRules);
}
- public void buildInitLocalRules(ExpandedActorClass xpAct) {
- // HashMap<InterfaceItem, EList<SemanticsRule>> locals = new
- // HashMap<InterfaceItem, EList<SemanticsRule>>();
- List<InterfaceItem> portList = AbstractExecutionUtil.getInstance().getRoomHelpers().getAllInterfaceItems(xpAct
- .getActorClass());
- for (InterfaceItem ifitem : portList) {
- GeneralProtocolClass gpc = ifitem.getGeneralProtocol();
- if (gpc instanceof ProtocolClass) {
- ProtocolClass pc = (ProtocolClass) gpc;
- if (pc.getSemantics() != null)
- rules.put(ifitem, new ArrayList<SemanticsRule>(pc
- .getSemantics().getRules()));
+ public void buildInitLocalRules(ExpandedModelComponent xpAct) {
+ // HashMap<AbstractInterfaceItem, EList<SemanticsRule>> locals = new
+ // HashMap<AbstractInterfaceItem, EList<SemanticsRule>>();
+ List<AbstractInterfaceItem> portList = xpAct.getModelComponent().getAllAbstractInterfaceItems();
+ for (AbstractInterfaceItem ifitem : portList) {
+ if (ifitem.getSemantics()!=null) {
+ rules.put(ifitem, new ArrayList<SemanticsRule>(ifitem.getSemantics().getRules()));
}
}
}
public void print() {
- for (InterfaceItem port : rules.keySet()) {
+ for (AbstractInterfaceItem port : rules.keySet()) {
System.out.println(" Rules for Port " + port.getName() + ":");
for (SemanticsRule rule : rules.get(port)) {
printRule(rule, " ");
diff --git a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/HandledMessage.java b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/HandledMessage.java
index 546b10f1a..eb8177020 100644
--- a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/HandledMessage.java
+++ b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/HandledMessage.java
@@ -14,25 +14,25 @@
package org.eclipse.etrice.abstractexec.behavior;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.etrice.core.room.InterfaceItem;
-import org.eclipse.etrice.core.room.Message;
+import org.eclipse.etrice.core.fsm.fSM.AbstractInterfaceItem;
+import org.eclipse.etrice.core.fsm.fSM.AbstractMessage;
public class HandledMessage {
- private InterfaceItem ifitem;
- private Message msg;
+ private AbstractInterfaceItem ifitem;
+ private AbstractMessage msg;
private EObject origin;
- public HandledMessage(InterfaceItem ifitem, Message msg, EObject origin) {
+ public HandledMessage(AbstractInterfaceItem ifitem, AbstractMessage msg, EObject origin) {
this.ifitem = ifitem;
this.msg = msg;
this.origin = origin;
}
- public InterfaceItem getIfitem() {
+ public AbstractInterfaceItem getIfitem() {
return ifitem;
}
- public Message getMsg() {
+ public AbstractMessage getMsg() {
return msg;
}
diff --git a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ProposalGenerator.java b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ProposalGenerator.java
index 4936f8636..49b4d08f4 100644
--- a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ProposalGenerator.java
+++ b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ProposalGenerator.java
@@ -19,17 +19,17 @@ import java.util.Set;
import org.eclipse.core.runtime.Platform;
import org.eclipse.etrice.abstractexec.behavior.util.AbstractExecutionUtil;
+import org.eclipse.etrice.core.fsm.fSM.AbstractInterfaceItem;
+import org.eclipse.etrice.core.fsm.fSM.AbstractMessage;
import org.eclipse.etrice.core.fsm.fSM.FSMFactory;
import org.eclipse.etrice.core.fsm.fSM.MessageFromIf;
import org.eclipse.etrice.core.fsm.fSM.State;
-import org.eclipse.etrice.core.genmodel.etricegen.ExpandedActorClass;
import org.eclipse.etrice.core.genmodel.fsm.fsmgen.ActiveTrigger;
-import org.eclipse.etrice.core.room.InterfaceItem;
-import org.eclipse.etrice.core.room.Message;
-import org.eclipse.etrice.core.room.SemanticsRule;
+import org.eclipse.etrice.core.genmodel.fsm.fsmgen.ExpandedModelComponent;
+import org.eclipse.etrice.core.fsm.fSM.SemanticsRule;
public class ProposalGenerator {
- private ExpandedActorClass xpac;
+ private ExpandedModelComponent xpac;
private SemanticsCheck checker;
private List<MessageFromIf> outgoingProposal = new LinkedList<MessageFromIf>();
private List<MessageFromIf> incomingProposal = new LinkedList<MessageFromIf>();
@@ -44,7 +44,7 @@ public class ProposalGenerator {
}
}
- public ProposalGenerator(ExpandedActorClass xp, SemanticsCheck chk) {
+ public ProposalGenerator(ExpandedModelComponent xp, SemanticsCheck chk) {
xpac = xp;
checker = chk;
}
@@ -71,12 +71,12 @@ public class ProposalGenerator {
outgoingProposal.clear();
incomingProposal.clear();
- for (InterfaceItem port : rules.getPortList()) {
+ for (AbstractInterfaceItem port : rules.getPortList()) {
// collect all messages from active triggers
- Set<Message> messages = new HashSet<Message>();
+ Set<AbstractMessage> messages = new HashSet<AbstractMessage>();
for (ActiveTrigger t : xpac.getActiveTriggers(st))
if (t.getIfitem().equals(port))
- messages.add((Message)t.getMsg());
+ messages.add((AbstractMessage)t.getMsg());
// check if every rule has its messages
if (rules.getPortList().contains(port)) {
for (SemanticsRule curRule : rules.getRulesForPort(port)) {
@@ -85,8 +85,7 @@ public class ProposalGenerator {
.createMessageFromIf();
mif.setFrom(port);
mif.setMessage(curRule.getMsg());
- boolean isOutgoing = AbstractExecutionUtil.getInstance().getRoomHelpers().getMessageListDeep(
- port, true).contains(curRule.getMsg());
+ boolean isOutgoing = port.getAllOutgoingAbstractMessages().contains(curRule.getMsg());
if (isOutgoing) {
outgoingProposal.add(mif);
} else {
diff --git a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityCheck.java b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityCheck.java
index c65b5ab44..607f9e66a 100644
--- a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityCheck.java
+++ b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityCheck.java
@@ -19,8 +19,8 @@ import java.util.Set;
import org.eclipse.emf.common.util.EList;
import org.eclipse.etrice.abstractexec.behavior.util.AbstractExecutionUtil;
-import org.eclipse.etrice.core.genmodel.etricegen.ExpandedActorClass;
import org.eclipse.etrice.core.genmodel.fsm.fsmgen.ActiveTrigger;
+import org.eclipse.etrice.core.genmodel.fsm.fsmgen.ExpandedModelComponent;
import org.eclipse.etrice.core.fsm.fSM.EntryPoint;
import org.eclipse.etrice.core.fsm.fSM.GuardedTransition;
import org.eclipse.etrice.core.fsm.fSM.InitialTransition;
@@ -32,20 +32,20 @@ import org.eclipse.etrice.core.fsm.fSM.TrPoint;
import org.eclipse.etrice.core.fsm.fSM.Transition;
import org.eclipse.etrice.core.fsm.fSM.TransitionPoint;
import org.eclipse.etrice.core.fsm.fSM.TriggeredTransition;
-import org.eclipse.etrice.generator.generic.RoomExtensions;
+import org.eclipse.etrice.generator.fsm.generic.FSMExtensions;
public class ReachabilityCheck {
- private static RoomExtensions roomExt;
+ private static FSMExtensions fsmExt;
Queue<StateGraphNode> queue;
public Set<StateGraphItem> visited;
private Set<State> visitedSubStates;
- private ExpandedActorClass xpAct;
+ private ExpandedModelComponent xpAct;
//private Set<StateGraphItem> exitUsed;
- public ReachabilityCheck(ExpandedActorClass xpac) {
- roomExt = new RoomExtensions();
+ public ReachabilityCheck(ExpandedModelComponent xpac) {
+ fsmExt = new FSMExtensions();
queue = new LinkedList<StateGraphNode>();
xpAct = xpac;
visited = new HashSet<StateGraphItem>();
@@ -110,7 +110,7 @@ public class ReachabilityCheck {
visit(trans);
}
// visit outgoing guarded transitions
- for(Transition trans : roomExt.getOutgoingTransitionsHierarchical(xpAct, st)){
+ for(Transition trans : fsmExt.getOutgoingTransitionsHierarchical(xpAct, st)){
if(trans instanceof GuardedTransition)
visit(trans);
}
diff --git a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityValidator.java b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityValidator.java
index a1443b6fc..dad3e1cbb 100644
--- a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityValidator.java
+++ b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityValidator.java
@@ -23,12 +23,12 @@ import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.etrice.abstractexec.behavior.util.AbstractExecutionUtil;
import org.eclipse.etrice.core.common.validation.ICustomValidator;
-import org.eclipse.etrice.core.genmodel.base.NullDiagnostician;
-import org.eclipse.etrice.core.genmodel.base.NullLogger;
-import org.eclipse.etrice.core.genmodel.builder.GeneratorModelBuilder;
-import org.eclipse.etrice.core.genmodel.etricegen.ExpandedActorClass;
-import org.eclipse.etrice.core.room.ActorClass;
-import org.eclipse.etrice.core.room.RoomPackage;
+import org.eclipse.etrice.core.genmodel.fsm.base.NullDiagnostician;
+import org.eclipse.etrice.core.genmodel.fsm.base.NullLogger;
+import org.eclipse.etrice.core.genmodel.fsm.builder.FSMGeneratorModelBuilder;
+import org.eclipse.etrice.core.genmodel.fsm.fsmgen.ExpandedModelComponent;
+import org.eclipse.etrice.core.fsm.fSM.FSMPackage;
+import org.eclipse.etrice.core.fsm.fSM.ModelComponent;
import org.eclipse.etrice.core.fsm.fSM.StateGraphItem;
import org.eclipse.xtext.validation.ValidationMessageAcceptor;
@@ -39,19 +39,19 @@ public class ReachabilityValidator implements ICustomValidator {
private static final Set<EClass> classesToCheck = new HashSet<EClass>();
{
- classesToCheck.add(RoomPackage.Literals.ACTOR_CLASS);
+ classesToCheck.add(FSMPackage.Literals.MODEL_COMPONENT);
}
@Override
public void validate(EObject object, ValidationMessageAcceptor messageAcceptor, ICustomValidator.ValidationContext context) {
- if (!(object instanceof ActorClass))
+ if (!(object instanceof ModelComponent))
return;
if(context.isGeneration())
return;
- ActorClass ac = (ActorClass) object;
+ ModelComponent ac = (ModelComponent) object;
if (ac.isAbstract())
return;
@@ -61,10 +61,10 @@ public class ReachabilityValidator implements ICustomValidator {
return;
NullDiagnostician diagnostician = new NullDiagnostician();
- GeneratorModelBuilder builder = new GeneratorModelBuilder(new NullLogger(), diagnostician);
- ExpandedActorClass xpac = null;
+ FSMGeneratorModelBuilder builder = new FSMGeneratorModelBuilder(new NullLogger(), diagnostician);
+ ExpandedModelComponent xpac = null;
try {
- xpac = builder.createExpandedActorClass(ac);
+ xpac = builder.createExpandedModelComponent(ac);
}
catch (Throwable t) {
return;
diff --git a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/SemanticsCheck.java b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/SemanticsCheck.java
index 71454627d..45ee775ee 100644
--- a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/SemanticsCheck.java
+++ b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/SemanticsCheck.java
@@ -23,21 +23,19 @@ import java.util.Set;
import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.common.util.EList;
import org.eclipse.etrice.abstractexec.behavior.util.AbstractExecutionUtil;
-import org.eclipse.etrice.core.genmodel.etricegen.ExpandedActorClass;
-import org.eclipse.etrice.core.genmodel.fsm.fsmgen.ActiveTrigger;
-import org.eclipse.etrice.core.room.InterfaceItem;
-import org.eclipse.etrice.core.room.Message;
import org.eclipse.etrice.core.fsm.fSM.InitialTransition;
import org.eclipse.etrice.core.fsm.fSM.State;
import org.eclipse.etrice.core.fsm.fSM.StateGraph;
import org.eclipse.etrice.core.fsm.fSM.StateGraphItem;
import org.eclipse.etrice.core.fsm.fSM.StateGraphNode;
import org.eclipse.etrice.core.fsm.fSM.Transition;
+import org.eclipse.etrice.core.genmodel.fsm.fsmgen.ActiveTrigger;
+import org.eclipse.etrice.core.genmodel.fsm.fsmgen.ExpandedModelComponent;
public class SemanticsCheck {
private Queue<StateGraphNode> queue;
private Set<StateGraphNode> visited;
- private ExpandedActorClass xpAct;
+ private ExpandedModelComponent xpAct;
private HashMap<StateGraphItem, ActiveRules> mapToRules = new HashMap<StateGraphItem, ActiveRules>();
private ActionCodeAnalyzer codeAnalyzer;
private HashMap<StateGraphItem, List<HandledMessage>> mapToWarnings = new HashMap<StateGraphItem, List<HandledMessage>>();
@@ -59,16 +57,16 @@ public class SemanticsCheck {
private static final int TRACE_RESULT = 1;
private static final int TRACE_DETAILS = 2;
- public SemanticsCheck(ExpandedActorClass xpac) {
+ public SemanticsCheck(ExpandedModelComponent xpac) {
queue = new LinkedList<StateGraphNode>();
xpAct = xpac;
visited = new HashSet<StateGraphNode>();
- codeAnalyzer = new ActionCodeAnalyzer(xpac.getActorClass());
+ codeAnalyzer = new ActionCodeAnalyzer(xpac.getModelComponent());
}
public void checkSemantics() {
if (traceChecks)
- System.out.println("checkSemantics: check of ActorClass "+xpAct.getActorClass().getName());
+ System.out.println("checkSemantics: check of ActorClass "+xpAct.getModelComponent().getComponentName());
StateGraph graph = xpAct.getStateMachine();
ActiveRules localRules = new ActiveRules();
@@ -80,7 +78,7 @@ public class SemanticsCheck {
if (traceLevel>=TRACE_RESULT)
printRules();
- System.out.println("checkSemantics: done with check of ActorClass "+xpAct.getActorClass().getName());
+ System.out.println("checkSemantics: done with check of ActorClass "+xpAct.getModelComponent().getComponentName());
}
}
@@ -134,7 +132,7 @@ public class SemanticsCheck {
List<HandledMessage> msgList = new LinkedList<HandledMessage>();
// create a list of codes here in the order
// trigger, exit, action, entry
- msgList.add(new HandledMessage((InterfaceItem)trigger.getIfitem(), (Message)trigger.getMsg(), trigger));
+ msgList.add(new HandledMessage(trigger.getIfitem(), trigger.getMsg(), trigger));
StateGraph triggerContext = (StateGraph) trans.eContainer();
State exitCalled = st;
while (true) {
diff --git a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/util/AbstractExecutionUtil.java b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/util/AbstractExecutionUtil.java
index 0947168f9..3e9d5c2c9 100644
--- a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/util/AbstractExecutionUtil.java
+++ b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/util/AbstractExecutionUtil.java
@@ -12,10 +12,10 @@
package org.eclipse.etrice.abstractexec.behavior.util;
-import org.eclipse.etrice.core.naming.RoomNameProvider;
-import org.eclipse.etrice.core.room.util.RoomHelpers;
-import org.eclipse.etrice.core.ui.RoomUiModule;
-import org.eclipse.etrice.core.validation.ValidationUtil;
+import org.eclipse.etrice.core.fsm.FSMStandaloneSetupGenerated;
+import org.eclipse.etrice.core.fsm.naming.FSMNameProvider;
+import org.eclipse.etrice.core.fsm.util.FSMHelpers;
+import org.eclipse.etrice.core.fsm.validation.FSMValidationUtil;
import com.google.inject.Inject;
import com.google.inject.Injector;
@@ -33,39 +33,39 @@ public class AbstractExecutionUtil {
*/
public static AbstractExecutionUtil getInstance() {
if (instance==null) {
- Injector injector = RoomUiModule.getInjector();
+ Injector injector = new FSMStandaloneSetupGenerated().createInjector();
instance = injector.getInstance(AbstractExecutionUtil.class);
}
return instance;
}
@Inject
- private ValidationUtil validationUtil;
+ private FSMValidationUtil validationUtil;
@Inject
- private RoomHelpers roomHelpers;
+ private FSMHelpers roomHelpers;
@Inject
- private RoomNameProvider roomNameProvider;
+ private FSMNameProvider roomNameProvider;
/**
* @return the validationUtil
*/
- public ValidationUtil getValidationUtil() {
+ public FSMValidationUtil getValidationUtil() {
return validationUtil;
}
/**
* @return the roomHelpers
*/
- public RoomHelpers getRoomHelpers() {
+ public FSMHelpers getRoomHelpers() {
return roomHelpers;
}
/**
* @return the roomNameProvider
*/
- public RoomNameProvider getRoomNameProvider() {
+ public FSMNameProvider getRoomNameProvider() {
return roomNameProvider;
}
}

Back to the top