Bladeren bron

Minor fixes

René Beckmann 7 jaren geleden
bovenliggende
commit
6b803d556d

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

@@ -109,7 +109,7 @@ public class CTreeNamingService extends TreeNamingService {
 	
 	override protected prefix(ExecutionState it) {
 		if (entry.statemachinePrefix.nullOrEmpty) {
-			#[super.prefix(it).head?.toFirstUpper]			
+			super.prefix(it).toFirstUpper		
 		} else {
 			#[entry.statemachinePrefix]
 		}

+ 27 - 0
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/naming/tree/StringTreeNode.xtend

@@ -60,6 +60,33 @@ class StringTreeNode {
 		node.parent = this;
 		children.add(node);
 	}
+	
+	def protected List<String> getContents() {
+		/*
+		 * Returns a list of all strings contained in the tree
+		 */
+		val List<String> contents = newArrayList
+		val List<StringTreeNode> endNodes = getEndNodes
+
+		for (StringTreeNode end : endNodes) {
+			contents.add(end.contentUpwards);
+		}
+
+		return contents;
+	}
+	
+	def protected String getContentUpwards() {
+		/*
+		 * Traverse tree upwards and return the string ended by this node up to root
+		 */
+		var s = "";
+
+		if (!isRoot()) {
+			s = parent.getContentUpwards() + getData();
+		}
+
+		return s;
+	}
 
 	def public StringTreeNode addStringList(List<String> sList) {
 		/*

+ 6 - 3
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/naming/tree/TreeNamingService.xtend

@@ -33,7 +33,6 @@ import org.yakindu.sct.model.sgraph.State
 import org.yakindu.sct.model.sgraph.Statechart
 import org.yakindu.sct.model.sgraph.Vertex
 import org.yakindu.sct.model.stext.stext.TimeEventSpec
-import com.google.inject.Singleton
 
 /** New implementation of the naming service for various identifiers used in the generated code. 
  * It is responsible for identifier construction depending on the thing to be named including different strategies 
@@ -161,18 +160,22 @@ class TreeNamingService implements INamingService {
 			val timeEvent = executionFlowElement.flow.getTimeEvent(sgraphElement.fullyQualifiedName + "_time_event_" +
 				timeEventSpecs.indexOf(tes))
 			if (timeEvent !== null) {
-				addElement(executionFlowElement, prefix(tes, sgraphElement), suffix(tes, sgraphElement));
+				addElement(executionFlowElement, prefix(tes, sgraphElement), suffix(tes, sgraphElement), timeEvent);
 			}
 		}
 	}
 
 	def protected void addElement(NamedElement elem, List<String> prefix, List<String> suffix) {
+		addElement(elem, prefix, suffix, elem)
+	}
+	
+	def protected void addElement(NamedElement elem, List<String> prefix, List<String> suffix, Object token) {
 		val name = new ArrayList<String>(elem.elementNameSegments());
 		val segments = new ArrayList<String>();
 		segments.addAll(prefix);
 		segments.addAll(name);
 		segments.addAll(suffix);
-		shortener.addString(addSeparator(segments), elem)
+		shortener.addString(addSeparator(segments), token)
 	}
 
 	def protected asIndexPosition(ExecutionScope it) {