diff --git a/libraries/assetmanager/src/main/kotlin/de/itkl/assetmanager/implementation/FilesystemAssetManager.kt b/libraries/assetmanager/src/main/kotlin/de/itkl/assetmanager/implementation/FilesystemAssetManager.kt index aba83b3..f204492 100644 --- a/libraries/assetmanager/src/main/kotlin/de/itkl/assetmanager/implementation/FilesystemAssetManager.kt +++ b/libraries/assetmanager/src/main/kotlin/de/itkl/assetmanager/implementation/FilesystemAssetManager.kt @@ -21,7 +21,7 @@ import kotlin.io.path.exists import kotlin.io.path.outputStream private val Log = KotlinLogging.logger { } -class FilesystemAssetManager : AssetManager { +class FilesystemAssetManager: AssetManager { override suspend fun assets(name: String): Assets { val path = createAssetsPath(name) withContext(Dispatchers.IO) { @@ -38,7 +38,7 @@ class FilesystemAssetManager : AssetManager { } private fun createAssetsPath(name: String): Path { - return Paths.get("$name.assets.d").toAbsolutePath() + return Paths.get(name).parent.resolve("$name.assets.d").toAbsolutePath() } } diff --git a/libraries/assetmanager/src/main/kotlin/de/itkl/assetmanager/implementation/FilesystemProjectManager.kt b/libraries/assetmanager/src/main/kotlin/de/itkl/assetmanager/implementation/FilesystemProjectManager.kt index 8d3827b..1478fa7 100644 --- a/libraries/assetmanager/src/main/kotlin/de/itkl/assetmanager/implementation/FilesystemProjectManager.kt +++ b/libraries/assetmanager/src/main/kotlin/de/itkl/assetmanager/implementation/FilesystemProjectManager.kt @@ -48,6 +48,10 @@ class FilesystemProject( private val assetManager: AssetManager by inject() private val resourceFactory: ResourceFactory by inject() + override fun resolveName(name: String): String { + return basePath.resolve(name).toAbsolutePath().toString() + } + override suspend fun assets(documentName: String): Assets { return assetManager.assets(documentName) } diff --git a/libraries/assetmanager/src/main/kotlin/de/itkl/assetmanager/interfaces/Project.kt b/libraries/assetmanager/src/main/kotlin/de/itkl/assetmanager/interfaces/Project.kt index ca78725..95660db 100644 --- a/libraries/assetmanager/src/main/kotlin/de/itkl/assetmanager/interfaces/Project.kt +++ b/libraries/assetmanager/src/main/kotlin/de/itkl/assetmanager/interfaces/Project.kt @@ -10,7 +10,9 @@ interface Project { val name: String val displayName: String val documentNames: List - suspend fun assets(documentName: String): Assets + fun resolveName(name: String): String + suspend fun assets(documentName: String): Assets suspend fun resource(name: String): Resource? + } \ No newline at end of file diff --git a/libraries/textprocessing/src/main/kotlin/de/itkl/textprocessing/Corpus.kt b/libraries/textprocessing/src/main/kotlin/de/itkl/textprocessing/Corpus.kt index d9f4502..dc9ad74 100644 --- a/libraries/textprocessing/src/main/kotlin/de/itkl/textprocessing/Corpus.kt +++ b/libraries/textprocessing/src/main/kotlin/de/itkl/textprocessing/Corpus.kt @@ -29,6 +29,9 @@ class Corpus(private val project: Project): KoinComponent { private val resourceFactory: ResourceFactory by inject() suspend fun document(name: String): Document { - return Document(name, listOf(project.resource(name)!!)) + return Document( + project.resolveName(name), + listOf(project.resource(name)!!) + ) } } \ No newline at end of file