override fun initModel()

in code/nxt-integration/src/main/kotlin/org/fbme/integration/nxt/importer/NxtProjectTemplate.kt [40:72]


    override fun initModel(project: Project, repository: PlatformRepository, model: SModel): PlatformElement {
        val settings = settings as NxtImportSystemConfigSolutionSettings
        val nxtImportDirectory = settings.getNxtImportLocation()
        val modelId = SModelId.generate()
        val modelName = settings.moduleName
        val ref = PersistenceFacade.getInstance().createModelReference(null, modelId, modelName)
        val header: SModelSimpleHeader = Iec61499ModelHeader(ref, emptyList())
        val entries = loadEntries(locateRootDirectory(File(nxtImportDirectory)))
        val errorEntries = mutableSetOf<DocumentEntry>()
        for (entry in entries) {
            try {
                loadRootFromFile(header, entry, model)
            } catch (e: Exception) {
                errorEntries += entry
            }
        }
        if (errorEntries.isNotEmpty()) {
            val notification = Notification(
                "fbme.integration.nxt",
                "Error during import",
                "Failed to load ${errorEntries.size} documents: ${errorEntries.joinToString { it.name }}",
                NotificationType.ERROR
            )
            Notifications.Bus.notify(notification, project)
        }
        val first = model.rootNodes.firstOrNull()
        if (first != null) {
            return repository.adapter<PlatformElement>(first)
        }
        val result = repository.iec61499Factory.createBasicFBTypeDeclaration(null)
        result.name = "EmptyBasicFB"
        return result as PlatformElement
    }