«IMPORT messageDsl» «EXTENSION ch::ethz::origo::aranea::validation::MessageDslExtensions» «REM»Main block«ENDREM» «DEFINE main FOR Project» «IF !ignore» «EXPAND Factory::factoryTemplate FOR this» «FOREACH namespaces AS namespace» «IF !namespace.ignore» «EXPAND namespaceTemplate FOR namespace» «ENDIF» «ENDFOREACH» «ENDIF» «ENDDEFINE» «REM»namespace block«ENDREM» «DEFINE namespaceTemplate FOR Namespace» «EXPAND Constants::constantTemplate FOR this» «FOREACH messages AS message-» «IF !message.ignore -» «EXPAND Message::messageTemplate FOR message-» «EXPAND MessageHandler::handlerTemplate FOR message-» «FOREACH message.eAllContents AS element» «REM»Yeah, I know it's an ugly string comparison...«ENDREM» «IF element.metaType.name.endsWith("NestedRecordType") » «LET (NestedRecordType)element AS nested» «EXPAND Record::recordTemplate(message) FOR nested» «ENDLET» «ENDIF» «ENDFOREACH» «ENDIF-» «ENDFOREACH-» «ENDDEFINE»