override fun readModel()

in code/platform/src/main/kotlin/org/fbme/ide/platform/persistence/Iec61499ModelFactory.kt [184:215]


        override fun readModel(header: SModelSimpleHeader): SModelData {
            return try {
                val modelData = createEmptyModel(header as Iec61499ModelHeader)
                for (source in dataSource.subStreams.collect(Collectors.toList())) {
                    try {
                        val fileExt = FileUtil.getExtension(source.streamName)
                        val fqName = com.intellij.openapi.util.io.FileUtil.getNameWithoutExtension(source.streamName)
                            .replace('/', '.')
                        val reader = BufferedReader(InputStreamReader(source.openInputStream()))
                        try {
                            val doc = JDOMUtil.loadDocument(reader)
                            val node = convertRootNode(header.modelReference, doc, fileExt)
                            if (node != null) {
                                val virtualPackage = NameUtil.namespaceFromLongName(fqName)
                                if (!virtualPackage.isNullOrEmpty()) {
                                    node.setProperty(SNodeUtil.property_BaseConcept_virtualPackage, virtualPackage)
                                }
                                modelData.addRootNode(node)
                            }
                        } finally {
                            reader.close()
                        }
                    } catch (e: Exception) {
                        throw IOException("cannot read model" + dataSource.location, e)
                    }
                }
                modelData
            } catch (e: IOException) {
                LOG.error("Exception raised during load", e)
                throw ModelLoadException("Exception during load", emptyList(), e)
            }
        }