Explorar o código

removed to first lower, added static initialization block

Andreas Mülder %!s(int64=11) %!d(string=hai) anos
pai
achega
2bc39aedc3

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

@@ -109,7 +109,7 @@ class Naming implements JavaKeywords {
 	}
 	}
 	
 	
 	def dispatch getSymbol(VariableDefinition it){
 	def dispatch getSymbol(VariableDefinition it){
-		if(writeable) name.asEscapedIdentifier else name.asEscapedIdentifier.toUpperCase
+		if(writeable) name.asEscapedIdentifier else name.asEscapedIdentifier
 	}
 	}
 	def dispatch getSymbol(EventDefinition it){
 	def dispatch getSymbol(EventDefinition it){
 		name.asEscapedIdentifier
 		name.asEscapedIdentifier
@@ -141,7 +141,7 @@ class Naming implements JavaKeywords {
 	}
 	}
 	
 	
 	def asIdentifier(String it) {
 	def asIdentifier(String it) {
-		replaceAll('[^a-z&&[^A-Z&&[^0-9]]]', '_').toFirstLower
+		replaceAll('[^a-z&&[^A-Z&&[^0-9]]]', '_')
 	}
 	}
 	
 	
 	def asName(String it) {
 	def asName(String it) {

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

@@ -48,7 +48,9 @@ class Statemachine {
 		public class «flow.statemachineClassName» implements «flow.statemachineInterfaceName» {
 		public class «flow.statemachineClassName» implements «flow.statemachineInterfaceName» {
 			
 			
 			«flow.createFieldDeclarations(entry)»
 			«flow.createFieldDeclarations(entry)»
-			
+		
+			«flow.createStaticInitializer(entry)»
+				
 			«flow.createConstructor»
 			«flow.createConstructor»
 			
 			
 			«flow.initFunction»
 			«flow.initFunction»
@@ -138,6 +140,15 @@ class Statemachine {
 		«ENDFOR»
 		«ENDFOR»
 	'''
 	'''
 	
 	
+	def private createStaticInitializer(ExecutionFlow flow, GeneratorEntry entry){
+		if(flow.staticInitSequence == null) return null
+		'''
+		static {
+			«flow.staticInitSequence?.code»
+		}
+		'''
+	}
+	
 	def private writeableFieldDeclaration(VariableDefinition variable){
 	def private writeableFieldDeclaration(VariableDefinition variable){
 		'''private «variable.type.targetLanguageName» «variable.symbol»;'''
 		'''private «variable.type.targetLanguageName» «variable.symbol»;'''
 	}
 	}