Przeglądaj źródła

fixed issue ( #106 ) with naming of statechart reactions

Axel Terfloth 10 lat temu
rodzic
commit
efd8c3d21c

+ 5 - 1
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/naming/DefaultNamingService.xtend

@@ -443,9 +443,13 @@ class DefaultNamingService implements INamingService {
 		""
 		""
 	}
 	}
 
 
+
+	/**
+	 * TODO: refactor sequence type checks below - no conditional handling should be necessary
+	 */
 	def protected dispatch String elementName(Step it, NameShorteningStrategy nameShorteningType) {
 	def protected dispatch String elementName(Step it, NameShorteningStrategy nameShorteningType) {
 		var parentName = eContainer.elementName(nameShorteningType)
 		var parentName = eContainer.elementName(nameShorteningType)
-		if( isEnterSequence && (name != null) && (!name.trim.empty) ) parentName + separator + name
+		if( ( isEnterSequence || isCheckFunction || isEffect ) && (name != null) && (!name.trim.empty) ) parentName + separator + name
 		else parentName
 		else parentName
 	}
 	}
 
 

+ 1 - 1
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/transformation/BehaviorMapping.xtend

@@ -242,7 +242,7 @@ class BehaviorMapping {
 	def dispatch Sequence mapEffect(ReactionEffect effect) {
 	def dispatch Sequence mapEffect(ReactionEffect effect) {
 		if ( ! effect.actions.empty) {
 		if ( ! effect.actions.empty) {
 			val sequence = sexec.factory.createSequence
 			val sequence = sexec.factory.createSequence
-			sequence.name = "reaction_action"
+			sequence.name = effect.reaction.id
 			sequence.steps.addAll( effect.actions.map( stmnt | stmnt.mapToExecution))
 			sequence.steps.addAll( effect.actions.map( stmnt | stmnt.mapToExecution))
 			return sequence	
 			return sequence	
 		}	
 		}	

+ 2 - 2
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/transformation/StatechartExtensions.xtend

@@ -23,9 +23,8 @@ import org.yakindu.sct.model.stext.stext.StextFactory
 import org.yakindu.sct.model.stext.stext.TimeEventSpec
 import org.yakindu.sct.model.stext.stext.TimeEventSpec
 import org.yakindu.sct.model.sgraph.Synchronization
 import org.yakindu.sct.model.sgraph.Synchronization
 import org.yakindu.sct.model.sgraph.Exit
 import org.yakindu.sct.model.sgraph.Exit
+import org.yakindu.sct.model.stext.stext.ReactionEffect
 
 
- 
- 
 class StatechartExtensions {
 class StatechartExtensions {
 	
 	
 	
 	
@@ -57,6 +56,7 @@ class StatechartExtensions {
 	//
 	//
 		
 		
 	def reaction(Trigger tr) { tr.eContainer as Reaction }
 	def reaction(Trigger tr) { tr.eContainer as Reaction }
+	def reaction(ReactionEffect tr) { tr.eContainer as Reaction }
 
 
 
 
 	def Statechart statechart(State state) { state.parentRegion.statechart }
 	def Statechart statechart(State state) { state.parentRegion.statechart }