diff options
author | Henrik Rentz-Reichert | 2014-08-22 07:31:10 +0000 |
---|---|---|
committer | Henrik Rentz-Reichert | 2014-08-22 07:40:13 +0000 |
commit | 512491e5656b39b2cc417ca9285a37745b5af82e (patch) | |
tree | 468b967f03ec9a9e71a61361db96a90699962177 /plugins/org.eclipse.etrice.abstractexec.behavior | |
parent | d79db7ad717f00bfe3562d8f7699b5a9ccd45293 (diff) | |
download | org.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
Change-Id: I90d258c9167605eb287f1e88456b1d0966c37726
Diffstat (limited to 'plugins/org.eclipse.etrice.abstractexec.behavior')
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; } } |