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

(issue 71) Added generation of constants to java code generator

Andreas Mülder 10 лет назад
Родитель
Сommit
6a43a23238

+ 11 - 3
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/Naming.xtend

@@ -14,11 +14,12 @@ import org.yakindu.sct.model.sexec.Step
 import org.yakindu.sct.model.sgraph.Event
 import org.yakindu.sct.model.sgraph.State
 import org.yakindu.sct.model.sgraph.Variable
+import org.yakindu.sct.model.stext.naming.StextNameProvider
+import org.yakindu.sct.model.stext.stext.EventDefinition
 import org.yakindu.sct.model.stext.stext.InterfaceScope
 import org.yakindu.sct.model.stext.stext.InternalScope
-import org.yakindu.sct.model.stext.naming.StextNameProvider
-import org.yakindu.sct.generator.java.JavaKeywords
-
+import org.yakindu.sct.model.stext.stext.VariableDefinition
+
 class Naming implements JavaKeywords {
 	
 	@Inject extension Navigation
@@ -105,6 +106,13 @@ class Naming implements JavaKeywords {
 		else {
 			return "SCInterface";
 		}
+	}
+	
+	def dispatch getSymbol(VariableDefinition it){
+		if(writeable) name.asEscapedIdentifier else name.asEscapedIdentifier.toUpperCase
+	}
+	def dispatch getSymbol(EventDefinition it){
+		name.asEscapedIdentifier
 	}
 	
 	def String getInterfaceImplName(InterfaceScope it) {

+ 1 - 1
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/StatemachineInterface.xtend

@@ -162,7 +162,7 @@ class StatemachineInterface {
 	def variableAccessors(InterfaceScope scope) '''
 		«FOR variable : scope.variableDefinitions»
 			public «variable.type.targetLanguageName» «variable.getter»;
-			«IF !variable.readonly»
+			«IF !variable.readonly && variable.writeable»
 				public void «variable.setter»(«variable.type.targetLanguageName» value);	
 			«ENDIF»
 		«ENDFOR»