diff options
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.xtend | 11 |
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) + } } |