Просмотр исходного кода

[YAKHMI-1104] added Support for SGraph elements in DefaultNamingService, refactored Namingservice wireing in C-Generatir (SCTUnit), recreated test for StringExpressions

malknet42 11 лет назад
Родитель
Сommit
9b2d331d4e

+ 1 - 1
plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/CNamingService.xtend

@@ -15,7 +15,7 @@ import org.yakindu.sct.model.stext.stext.TimeEventSpec
 
 import static org.yakindu.sct.generator.c.CKeywords.*
 
-class CNamingService extends DefaultNamingService {
+public class CNamingService extends DefaultNamingService {
 	
 	@Inject
 	extension GenmodelEntries

+ 30 - 14
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/naming/DefaultNamingService.xtend

@@ -1,26 +1,26 @@
 package org.yakindu.sct.model.sexec.naming
 
+import java.util.Comparator
+import java.util.HashMap
+import java.util.List
+import java.util.Map
 import javax.inject.Inject
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.naming.IQualifiedNameProvider
 import org.yakindu.base.base.NamedElement
-import java.util.Map
 import org.yakindu.sct.model.sexec.ExecutionFlow
-import java.util.HashMap
-import org.yakindu.sct.model.sexec.extensions.SExecExtensions
-import java.util.Comparator
-import org.yakindu.sct.model.sexec.Step
+import org.yakindu.sct.model.sexec.ExecutionNode
 import org.yakindu.sct.model.sexec.ExecutionScope
-import org.yakindu.sct.model.sexec.transformation.StatechartExtensions
-import org.eclipse.xtext.naming.IQualifiedNameProvider
 import org.yakindu.sct.model.sexec.ExecutionState
+import org.yakindu.sct.model.sexec.Step
+import org.yakindu.sct.model.sexec.extensions.SExecExtensions
+import org.yakindu.sct.model.sexec.transformation.SgraphExtensions
+import org.yakindu.sct.model.sexec.transformation.StatechartExtensions
+import org.yakindu.sct.model.sgraph.CompositeElement
 import org.yakindu.sct.model.sgraph.State
-import org.yakindu.sct.model.stext.stext.TimeEventSpec
 import org.yakindu.sct.model.sgraph.Statechart
-import org.yakindu.sct.model.sgraph.CompositeElement
 import org.yakindu.sct.model.sgraph.Vertex
-import org.yakindu.sct.model.sexec.transformation.SgraphExtensions
-import org.yakindu.sct.model.sexec.ExecutionNode
-import org.eclipse.emf.ecore.EObject
-import java.util.List
+import org.yakindu.sct.model.stext.stext.TimeEventSpec
 
 class StepDepthComparator implements Comparator<Step> {
 	@Inject
@@ -334,6 +334,14 @@ class DefaultNamingService implements INamingService {
 			case NameShorteningStrategy::INDEX_POSITION: return asIndexPosition
 		}
 	}
+	
+	def protected dispatch String elementName(Vertex it, NameShorteningStrategy nameShorteningType) {
+		switch nameShorteningType {
+			case NameShorteningStrategy::STANDARD: return name
+			case NameShorteningStrategy::REMOVE_VOWELS: return name.removeVowels
+			case NameShorteningStrategy::INDEX_POSITION: return asSGraphIndexPosition
+		}
+	}
 
 	def protected dispatch String elementName(ExecutionNode it, NameShorteningStrategy nameShorteningType) {
 		simpleName
@@ -364,7 +372,15 @@ class DefaultNamingService implements INamingService {
 	}
 
 	def protected asIndexPosition(ExecutionScope it) {
-		superScope.subScopes.indexOf(it).toString;
+		superScope.subScopes.indexOf(it).toString
+	}
+	
+	def protected dispatch asSGraphIndexPosition(Vertex it) {
+		parentRegion.vertices.toList.indexOf(it).toString
+	}
+	
+	def protected dispatch asSGraphIndexPosition(State it) {
+		parentRegion.vertices.filter(typeof(State)).toList.indexOf(it).toString
 	}
 
 	def protected removeVowels(String it) {

+ 4 - 4
test-plugins/org.yakindu.sct.generator.c.test/gtests/StringExpressions/StringExpressions.cc

@@ -23,28 +23,28 @@ TEST(StatemachineTest, StringExpressionsTest) {
 	EXPECT_TRUE(stringExpressions_isActive(&handle, StringExpressions_AssgnmntChckd));
 	stringExpressionsIface_raise_e(&handle);
 	stringExpressions_runCycle(&handle);
-	EXPECT_TRUE(stringExpressions_isActive(&handle, StringExpressions_dcadafegaecgdcacfdhcgaeibegiefc));
+	EXPECT_TRUE(stringExpressions_isActive(&handle, StringExpressions_2));
 	EXPECT_TRUE(stringExpressionsIface_get_guardStringEqual(&handle) );
 	EXPECT_TRUE(stringExpressionsIface_get_guardStringNotEqual(&handle) );
 	EXPECT_TRUE(stringExpressionsIface_get_stringVarEqual(&handle) );
 	EXPECT_TRUE(stringExpressionsIface_get_stringVarNotEqual(&handle) );
 	stringExpressionsIface_raise_e(&handle);
 	stringExpressions_runCycle(&handle);
-	EXPECT_TRUE(stringExpressions_isActive(&handle, StringExpressions_dcdgfcbchgddheeibbdfdgegecffbbg));
+	EXPECT_TRUE(stringExpressions_isActive(&handle, StringExpressions_3));
 	EXPECT_TRUE(stringExpressionsIface_get_guardStringEqual(&handle) );
 	EXPECT_TRUE(stringExpressionsIface_get_guardStringNotEqual(&handle) );
 	EXPECT_TRUE(stringExpressionsIface_get_stringVarEqual(&handle) );
 	EXPECT_TRUE(stringExpressionsIface_get_stringVarNotEqual(&handle) );
 	stringExpressionsIface_raise_e(&handle);
 	stringExpressions_runCycle(&handle);
-	EXPECT_TRUE(stringExpressions_isActive(&handle, StringExpressions_ijjeeifacbfgbebabeffagffbdfbfag));
+	EXPECT_TRUE(stringExpressions_isActive(&handle, StringExpressions_4));
 	EXPECT_TRUE(stringExpressionsIface_get_guardStringEqual(&handle) );
 	EXPECT_TRUE(stringExpressionsIface_get_guardStringNotEqual(&handle) );
 	EXPECT_TRUE(stringExpressionsIface_get_stringVarEqual(&handle) );
 	EXPECT_TRUE(stringExpressionsIface_get_stringVarNotEqual(&handle) );
 	stringExpressionsIface_raise_e(&handle);
 	stringExpressions_runCycle(&handle);
-	EXPECT_TRUE(stringExpressions_isActive(&handle, StringExpressions_eeddeeifjffeiaacejcibgeegabbbic));
+	EXPECT_TRUE(stringExpressions_isActive(&handle, StringExpressions_5));
 	EXPECT_TRUE(stringExpressionsIface_get_guardStringEqual(&handle) );
 	EXPECT_TRUE(stringExpressionsIface_get_guardStringNotEqual(&handle) );
 	EXPECT_TRUE(stringExpressionsIface_get_stringVarEqual(&handle) );