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)
}
}