Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend')
-rw-r--r--plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend11
1 files changed, 10 insertions, 1 deletions
diff --git a/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend b/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend
index 3edaff61e..185b0eb8a 100644
--- a/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend
@@ -22,6 +22,7 @@ import java.util.Collection
import java.util.HashMap
import java.util.HashSet
import org.eclipse.etrice.core.common.base.LiteralType
+import org.eclipse.etrice.core.common.base.StringLiteral
import org.eclipse.etrice.core.common.converter.TimeConverter
import org.eclipse.etrice.core.etmap.util.ETMapUtil
import org.eclipse.etrice.core.etphys.eTPhys.ExecMode
@@ -407,7 +408,9 @@ class NodeGen {
«genActorInstanceInitializer(root, ai)»
«ENDIF»
«ENDFOR»
-
+
+ /* special user codes from annotation SubSystemUserCode */
+ «ssi.generateSubSystemUserCodes»
'''
}
@@ -890,4 +893,10 @@ class NodeGen {
}
}
}
+
+ private def generateSubSystemUserCodes(SubSystemInstance ssi) {
+ val acs = ssi.allContainedInstances.map[actorClass].toSet
+ val annotations = acs.map[annotations.filter[type.name == 'SubSystemUserCode']].flatten
+ annotations.map[attributes].flatten.map[value].filter(StringLiteral).map[value].join(NEWLINE)
+ }
}

Back to the top