Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/RoomExtensions.xtend')
-rw-r--r--plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/RoomExtensions.xtend87
1 files changed, 9 insertions, 78 deletions
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/RoomExtensions.xtend b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/RoomExtensions.xtend
index 0eeebfb55..b4fcec5f5 100644
--- a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/RoomExtensions.xtend
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/RoomExtensions.xtend
@@ -15,12 +15,17 @@ package org.eclipse.etrice.generator.generic
import com.google.inject.Singleton
import java.util.ArrayList
import java.util.List
+import javax.inject.Inject
+import org.eclipse.emf.common.util.BasicEList
+import org.eclipse.emf.common.util.TreeIterator
import org.eclipse.emf.ecore.EObject
-import org.eclipse.etrice.core.genmodel.etricegen.ExpandedActorClass
+import org.eclipse.etrice.core.fsm.fSM.State
+import org.eclipse.etrice.core.genmodel.etricegen.AbstractInstance
import org.eclipse.etrice.core.genmodel.etricegen.InterfaceItemInstance
import org.eclipse.etrice.core.genmodel.etricegen.PortInstance
import org.eclipse.etrice.core.genmodel.etricegen.SAPInstance
import org.eclipse.etrice.core.genmodel.etricegen.ServiceImplInstance
+import org.eclipse.etrice.core.genmodel.etricegen.StructureInstance
import org.eclipse.etrice.core.room.ActorClass
import org.eclipse.etrice.core.room.ExternalPort
import org.eclipse.etrice.core.room.Message
@@ -33,24 +38,15 @@ import org.eclipse.etrice.core.room.RoomModel
import org.eclipse.etrice.core.room.SAP
import org.eclipse.etrice.core.room.SPP
import org.eclipse.etrice.core.room.ServiceImplementation
-import org.eclipse.etrice.core.fsm.fSM.State
-import org.eclipse.etrice.core.fsm.fSM.StateGraph
-import org.eclipse.etrice.core.fsm.fSM.Transition
-import org.eclipse.etrice.core.fsm.fSM.TransitionPoint
-
import org.eclipse.etrice.core.room.util.RoomHelpers
-import org.eclipse.emf.common.util.BasicEList
-import org.eclipse.etrice.core.genmodel.etricegen.StructureInstance
-import org.eclipse.etrice.core.genmodel.etricegen.AbstractInstance
-import org.eclipse.emf.common.util.TreeIterator
-import org.eclipse.etrice.generator.base.FileSystemHelpers
-import javax.inject.Inject
+import org.eclipse.etrice.generator.fsm.base.FileSystemHelpers
+import org.eclipse.etrice.generator.fsm.generic.FSMExtensions
/**
collection of convenience functions for code generation
*/
@Singleton
-class RoomExtensions {
+class RoomExtensions extends FSMExtensions {
private static String genDir = "/src-gen/"
private static String genInfoDir = "/src-gen-info/"
@@ -79,32 +75,6 @@ class RoomExtensions {
//-------------------------------------------------------
// union methods
-
- /**
- * the template type is T
- * @param l an iterable of type T
- * @param e a single element of type T
- * @return the union of the iterable and the element as new list
- */
- def <T> List<T> union(Iterable<T> l, T e) {
- var ret = new ArrayList<T>()
- ret.addAll(l)
- ret.add(e)
- return ret
- }
-
- /**
- * the template type is T
- * @param l1 an iterable of type T
- * @param l2 a second iterable of type T
- * @return the union of the two iterables as new list
- */
- def <T> List<T> union(Iterable<T> l1, Iterable<T> l2) {
- var ret = new ArrayList<T>()
- ret.addAll(l1)
- ret.addAll(l2)
- return ret
- }
/**
* a specialized version of {@link #union(Iterable, Iterable)}
@@ -119,18 +89,6 @@ class RoomExtensions {
return ret
}
- /**
- * the template type is T
- * @param l1 a list of elements of type T
- * @param l2 a second list of elements of type T
- * @return a new list with the contents of l1
- */
- def <T> List<T> minus(List<T> l1, List<T> l2){
- var ret = new ArrayList<T>(l1)
- ret.removeAll(l2)
- return ret;
- }
-
//-------------------------------------------------------
// path related methods
@@ -513,33 +471,6 @@ class RoomExtensions {
else
return ac.base.stateMachine.getBaseStateList().size+ac.actorBase.getNumberOfInheritedBaseStates()
}
-
- /**
- * @param ac an {@link ExpandedActorClass}
- * @param s a {@link State}
- * @return a list of {@link Transition}s starting at the state and going up in the hierarchy
- * following the logic of evaluation of firing conditions
- */
- def List<Transition> getOutgoingTransitionsHierarchical(ExpandedActorClass ac, State s) {
- var result = new ArrayList<Transition>()
-
- // own transitions
- result.addAll(ac.getOutgoingTransitions(s))
-
- // transition points on same level
- var sg = s.eContainer() as StateGraph
- for (tp : sg.getTrPoints()) {
- if (tp instanceof TransitionPoint)
- result.addAll(ac.getOutgoingTransitions(tp))
- }
-
- // recurse to super states
- if (sg.eContainer() instanceof State) {
- result.addAll(getOutgoingTransitionsHierarchical(ac, sg.eContainer() as State))
- }
-
- return result;
- }
def getAllSubInstances(StructureInstance ssi) {
val BasicEList<AbstractInstance> result = new BasicEList<AbstractInstance>();

Back to the top