diff options
Diffstat (limited to 'plugins/org.eclipse.etrice.core.genmodel.fsm2')
48 files changed, 353 insertions, 0 deletions
diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$1.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$1.class Binary files differnew file mode 100644 index 000000000..f151c7fc3 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$1.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$2.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$2.class Binary files differnew file mode 100644 index 000000000..ef7efc911 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$2.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$3.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$3.class Binary files differnew file mode 100644 index 000000000..c9139e54d --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$3.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$4.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$4.class Binary files differnew file mode 100644 index 000000000..2eb52018d --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$4.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$5.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$5.class Binary files differnew file mode 100644 index 000000000..58a284ca2 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$5.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$6.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$6.class Binary files differnew file mode 100644 index 000000000..80b203f93 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$6.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$7.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$7.class Binary files differnew file mode 100644 index 000000000..8e446a172 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$7.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$8.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$8.class Binary files differnew file mode 100644 index 000000000..6d230691a --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder$8.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder.class Binary files differnew file mode 100644 index 000000000..e79228e7d --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder.xtend b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder.xtend new file mode 100644 index 000000000..7bce74511 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenBuilder.xtend @@ -0,0 +1,163 @@ +/******************************************************************************* + * Copyright (c) 2017 protos software gmbh (http://www.protos.de). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * CONTRIBUTORS: + * Henrik Rentz-Reichert (initial contribution) + * + *******************************************************************************/ + +package org.eclipse.etrice.core.genmodel.fsm + +import com.google.inject.Inject +import org.eclipse.etrice.core.fsm.fSM.ChoicepointTerminal +import org.eclipse.etrice.core.fsm.fSM.ModelComponent +import org.eclipse.etrice.core.fsm.fSM.NonInitialTransition +import org.eclipse.etrice.core.fsm.fSM.StateGraph +import org.eclipse.etrice.core.fsm.fSM.StateGraphNode +import org.eclipse.etrice.core.fsm.fSM.StateTerminal +import org.eclipse.etrice.core.fsm.fSM.SubStateTrPointTerminal +import org.eclipse.etrice.core.fsm.fSM.TrPointTerminal +import org.eclipse.etrice.core.fsm.fSM.Transition +import org.eclipse.etrice.core.fsm.util.FSMHelpers +import org.eclipse.etrice.core.genmodel.fsm.fsmgen.FsmGenFactory +import org.eclipse.etrice.core.genmodel.fsm.fsmgen.Graph +import org.eclipse.etrice.core.genmodel.fsm.fsmgen.GraphContainer +import org.eclipse.etrice.core.fsm.fSM.State +import org.eclipse.etrice.core.fsm.fSM.RefinedState +import org.eclipse.etrice.core.fsm.fSM.SimpleState +import org.eclipse.etrice.core.genmodel.fsm.fsmgen.Node +import com.google.inject.Injector +import org.eclipse.etrice.core.fsm.fSM.RefinedTransition + +class FsmGenBuilder { + + @Inject extension FSMHelpers fsmHelpers + val factory = FsmGenFactory.eINSTANCE + + new(Injector injector) { + injector.injectMembers(this) + } + + def GraphContainer createTransformedModel(ModelComponent mc) { + mc.createContainer + } + + private def GraphContainer create factory.createGraphContainer createContainer(ModelComponent mc) { + it.component = mc + it.graph = createStateMachine(mc) + } + + private def Graph createStateMachine(ModelComponent mc) { + // neither we nor all of our base classes need to have a state machine. + // So we ask for the super state machine rather than for the base class' + // state machine + val superFSM = mc.superStateMachine + + if (superFSM!=null) { + // if we have a super state machine we first recurse down + val baseGraph = createStateMachine(superFSM.modelComponent) + + // and then merge with our (actual) state machine + mergeGraph(baseGraph, mc.actualStateMachine) + } + else { + // first state machine in the hierarchy: create it + mc.actualStateMachine.createGraph + } + } + + private def Graph mergeGraph(Graph graph, StateGraph sg) { + // mark existing items as inherited + graph.nodes.forEach[inherited = true] + graph.links.forEach[inherited = true] + + // add items to already existing graph + graph.createContents(sg) + + // point to the current state graph + graph.stateGraph = sg + + return graph + } + + private def create factory.createGraph createGraph(StateGraph sg) { + it.stateGraph = sg + createContents(sg) + } + + private def createContents(Graph graph, StateGraph sg) { + graph.nodes.addAll(sg.chPoints.map[createNode]) + graph.nodes.addAll(sg.trPoints.map[createNode]) + graph.nodes.addAll(sg.states.filter(typeof(SimpleState)).map[createNode]) + graph.links.addAll(sg.transitions.map[createLink]) + + // refined states and transitions + sg.states.filter(typeof(RefinedState)).forEach[handleRefinedState] + sg.refinedTransitions.forEach[handleRefinedTransition] + } + + private def handleRefinedState(RefinedState s) { + // handle the sub graphs + if (s.subgraph!=null) { + if (s.target.subgraph!=null) { + val targetGraph = s.target.subgraph.createGraph + targetGraph.mergeGraph(s.subgraph) + } + else { + s.target.createNode.subgraph = s.subgraph.createGraph + } + } + // else nothing to do, whether the targetGraph exist or not + + // change the target Node's stateGraphNode to our RefinedState + val target = s.target.createNode + target.stateGraphNode = s + } + + private def handleRefinedTransition(RefinedTransition t) { + // change the target link's transition to the refined transition + t.target.createLink.transition = t + } + + private def create factory.createLink createLink(Transition tr) { + it.transition = tr + + it.source = if (tr instanceof NonInitialTransition) { + tr.from.createNode + } + else { + null + } + it.target = tr.to.createNode + } + + private def dispatch create factory.createNode createNode(StateGraphNode s) { + it.stateGraphNode = s + + it.subgraph = + if (s instanceof State && (s as State).subgraph!=null) { + (s as State).subgraph.createGraph + } + else null + } + + private def dispatch Node createNode(ChoicepointTerminal tt) { + tt.cp.createNode + } + + private def dispatch Node createNode(TrPointTerminal tt) { + tt.trPoint.createNode + } + + private def dispatch Node createNode(StateTerminal tt) { + tt.state.createNode + } + + private def dispatch Node createNode(SubStateTrPointTerminal tt) { + tt.trPoint.createNode + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker$1.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker$1.class Binary files differnew file mode 100644 index 000000000..6fa109ea2 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker$1.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker$2.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker$2.class Binary files differnew file mode 100644 index 000000000..befdfe9ca --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker$2.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker$3.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker$3.class Binary files differnew file mode 100644 index 000000000..c4d68294b --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker$3.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker.class Binary files differnew file mode 100644 index 000000000..e850ba5d3 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker.xtend b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker.xtend new file mode 100644 index 000000000..214d6f915 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenChecker.xtend @@ -0,0 +1,119 @@ +/******************************************************************************* + * Copyright (c) 2017 protos software gmbh (http://www.protos.de). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * CONTRIBUTORS: + * Henrik Rentz-Reichert (initial contribution) + * + *******************************************************************************/ + +package org.eclipse.etrice.core.genmodel.fsm + +import org.eclipse.etrice.core.fsm.fSM.NonInitialTransition +import org.eclipse.etrice.core.genmodel.fsm.fsmgen.Graph +import org.eclipse.etrice.core.genmodel.fsm.fsmgen.GraphContainer +import org.eclipse.etrice.core.genmodel.fsm.fsmgen.Link +import org.eclipse.etrice.core.genmodel.fsm.fsmgen.Node +import org.eclipse.etrice.core.fsm.fSM.TrPoint +import org.eclipse.etrice.core.fsm.fSM.State + +class FsmGenChecker { + + static def check(GraphContainer gc, ILogger logger) { + // graphs + gc.eAllContents.filter(typeof(Graph)).forEach[checkGraph(it, logger)] + + // nodes + gc.eAllContents.filter(typeof(Node)).forEach[checkNode(it, logger)] + + // links + gc.eAllContents.filter(typeof(Link)).forEach[checkLink(it, logger)] + } + + def static void checkLink(Link it, ILogger logger) { + if (transition==null) { + logger.logError("graph doesn't point to ROOM transition") + } + else if (transition.eIsProxy) { + logger.logError("unresolved ROOM transition") + } + else if (transition.eContainer==null) { + logger.logError("dangling ROOM transition") + } + else if (target==null) { + logger.logError("link without target") + } + else if (source==null && transition instanceof NonInitialTransition) { + logger.logError("non-initial link without source") + } + + if (source!=null) { + checkLinkEnd(it, it.source, logger) + } + checkLinkEnd(it, it.target, logger) + } + + def static checkLinkEnd(Link link, Node node, ILogger logger) { + if (node.eContainer == link.eContainer) { + return; + } + else { + if (!(node.stateGraphNode instanceof TrPoint)) { + logger.logError("subgraph item is not transition point") + } + else if (!(node.eContainer.eContainer instanceof Node)) { + logger.logError("subgraph item is in unexpected container") + } + else if (!((node.eContainer.eContainer as Node).stateGraphNode instanceof State)) { + logger.logError("subgraph item is in unexpected container") + } + else if (node.eContainer.eContainer.eContainer != link.eContainer) { + logger.logError("subgraph item is in unexpected container") + } + } + } + + def static void checkNode(Node it, ILogger logger) { + if (stateGraphNode==null) { + logger.logError("graph doesn't point to ROOM state graph node") + } + else if (stateGraphNode.eIsProxy) { + logger.logError("unresolved ROOM graph node") + } + else if (stateGraphNode.eContainer==null) { + logger.logError("dangling ROOM graph node") + } + else if (stateGraphNode.getName()==null) { + logger.logError("ROOM graph node without name") + } + + // incoming transitions + for (l : incoming) { + if (l.target.stateGraphNode != it.stateGraphNode) { + logger.logError("ROOM target node of an incoming transition must be myself") + } + } + + // outgoing transitions + for (l : outgoing) { + if (l.source.stateGraphNode != it.stateGraphNode) { + logger.logError("ROOM source node of an outgoing transition must be myself") + } + } + } + + def static void checkGraph(Graph it, ILogger logger) { + if (stateGraph==null) { + logger.logError("graph doesn't point to ROOM state graph") + } + else if (stateGraph.eIsProxy) { + logger.logError("unresolved ROOM graph") + } + else if (stateGraph.eContainer==null) { + logger.logError("dangling ROOM graph") + } + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$1.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$1.class Binary files differnew file mode 100644 index 000000000..b786008d8 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$1.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$2.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$2.class Binary files differnew file mode 100644 index 000000000..41d7397e8 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$2.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$3.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$3.class Binary files differnew file mode 100644 index 000000000..9fb133494 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$3.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$4.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$4.class Binary files differnew file mode 100644 index 000000000..3939f3301 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$4.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$5.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$5.class Binary files differnew file mode 100644 index 000000000..a5421624b --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$5.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$6.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$6.class Binary files differnew file mode 100644 index 000000000..fe7523d91 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$6.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$7.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$7.class Binary files differnew file mode 100644 index 000000000..88600cb3a --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$7.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$8.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$8.class Binary files differnew file mode 100644 index 000000000..eaa7c44cc --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$8.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$9.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$9.class Binary files differnew file mode 100644 index 000000000..0a4c1691c --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions$9.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions.class Binary files differnew file mode 100644 index 000000000..6a667e0a1 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions.xtend b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions.xtend new file mode 100644 index 000000000..ded58d176 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/FsmGenExtensions.xtend @@ -0,0 +1,71 @@ +/******************************************************************************* + * Copyright (c) 2017 protos software gmbh (http://www.protos.de). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * CONTRIBUTORS: + * Henrik Rentz-Reichert (initial contribution) + * + *******************************************************************************/ + +package org.eclipse.etrice.core.genmodel.fsm + +import org.eclipse.etrice.core.genmodel.fsm.fsmgen.Node +import org.eclipse.etrice.core.genmodel.fsm.fsmgen.Graph +import org.eclipse.etrice.core.fsm.fSM.State +import org.eclipse.etrice.core.fsm.fSM.ChoicePoint +import org.eclipse.etrice.core.fsm.fSM.TrPoint +import org.eclipse.etrice.core.genmodel.fsm.fsmgen.Link + +class FsmGenExtensions { + + public static def getName(Node nd) { + nd.stateGraphNode.name + } + + public static def getStateNodes(Graph g) { + g.nodes.filter[stateGraphNode instanceof State] + } + + public static def getAllNodes(Graph g) { + g.eAllContents.filter(typeof(Node)) + } + + public static def getAllStateNodes(Graph g) { + g.allNodes.filter[stateGraphNode instanceof State] + } + + public static def getChoicePointNodes(Graph g) { + g.nodes.filter[stateGraphNode instanceof ChoicePoint] + } + + public static def getAllChoicePointNodes(Graph g) { + g.allNodes.filter[stateGraphNode instanceof ChoicePoint] + } + + public static def getTrPointNodes(Graph g) { + g.nodes.filter[stateGraphNode instanceof TrPoint] + } + + public static def getAllTrPointNodes(Graph g) { + g.allNodes.filter[stateGraphNode instanceof TrPoint] + } + + public static def getStates(Graph g) { + g.stateNodes.map[stateGraphNode].filter(typeof(State)) + } + + public static def getChoicePoints(Graph g) { + g.choicePointNodes.map[stateGraphNode].filter(typeof(ChoicePoint)) + } + + public static def getTransitionPoints(Graph g) { + g.trPointNodes.map[stateGraphNode].filter(typeof(TrPoint)) + } + + public static def getAllLinks(Graph g) { + g.eAllContents.filter(typeof(Link)) + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/ILogger.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/ILogger.class Binary files differnew file mode 100644 index 000000000..59f97137e --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/ILogger.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/NullLogger.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/NullLogger.class Binary files differnew file mode 100644 index 000000000..8b7d680c1 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/NullLogger.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/CommonTrigger.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/CommonTrigger.class Binary files differnew file mode 100644 index 000000000..1160c1214 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/CommonTrigger.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/FsmGenFactory.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/FsmGenFactory.class Binary files differnew file mode 100644 index 000000000..9f303afb5 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/FsmGenFactory.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/FsmGenPackage$Literals.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/FsmGenPackage$Literals.class Binary files differnew file mode 100644 index 000000000..b42368b6f --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/FsmGenPackage$Literals.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/FsmGenPackage.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/FsmGenPackage.class Binary files differnew file mode 100644 index 000000000..66cec139b --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/FsmGenPackage.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/Graph.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/Graph.class Binary files differnew file mode 100644 index 000000000..744507c55 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/Graph.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/GraphContainer.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/GraphContainer.class Binary files differnew file mode 100644 index 000000000..a4fe8a4c3 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/GraphContainer.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/GraphItem.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/GraphItem.class Binary files differnew file mode 100644 index 000000000..50b642b20 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/GraphItem.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/Link.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/Link.class Binary files differnew file mode 100644 index 000000000..13f2de3f2 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/Link.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/Node.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/Node.class Binary files differnew file mode 100644 index 000000000..328bc4b4e --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/Node.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/CommonTriggerImpl.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/CommonTriggerImpl.class Binary files differnew file mode 100644 index 000000000..780d273d2 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/CommonTriggerImpl.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/FsmGenFactoryImpl.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/FsmGenFactoryImpl.class Binary files differnew file mode 100644 index 000000000..df3eac9ed --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/FsmGenFactoryImpl.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/FsmGenPackageImpl.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/FsmGenPackageImpl.class Binary files differnew file mode 100644 index 000000000..4f30cde4b --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/FsmGenPackageImpl.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/GraphContainerImpl.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/GraphContainerImpl.class Binary files differnew file mode 100644 index 000000000..7efe7a9ee --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/GraphContainerImpl.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/GraphImpl.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/GraphImpl.class Binary files differnew file mode 100644 index 000000000..f8b380180 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/GraphImpl.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/GraphItemImpl.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/GraphItemImpl.class Binary files differnew file mode 100644 index 000000000..c744c1404 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/GraphItemImpl.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/LinkImpl.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/LinkImpl.class Binary files differnew file mode 100644 index 000000000..9c5d8698e --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/LinkImpl.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/NodeImpl.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/NodeImpl.class Binary files differnew file mode 100644 index 000000000..7a4c485ae --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/impl/NodeImpl.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/util/FsmGenAdapterFactory$1.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/util/FsmGenAdapterFactory$1.class Binary files differnew file mode 100644 index 000000000..cd0d7fe3e --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/util/FsmGenAdapterFactory$1.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/util/FsmGenAdapterFactory.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/util/FsmGenAdapterFactory.class Binary files differnew file mode 100644 index 000000000..4d258ae2e --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/util/FsmGenAdapterFactory.class diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/util/FsmGenSwitch.class b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/util/FsmGenSwitch.class Binary files differnew file mode 100644 index 000000000..14214a08f --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm2/bin/org/eclipse/etrice/core/genmodel/fsm/fsmgen/util/FsmGenSwitch.class |