From 97b5444159a1aed193a5969888e8b34e9f797233 Mon Sep 17 00:00:00 2001 From: Timo Bryant Date: Thu, 4 Jan 2024 12:06:38 +0100 Subject: [PATCH] fix gitignore --- .gitignore | 2 +- .../de/itkl/core_api/interfaces/assets/Assets.kt | 15 +++++++++++++++ .../interfaces/assets/FileProcessorBackend.kt | 16 ++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/assets/Assets.kt create mode 100644 libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/assets/FileProcessorBackend.kt diff --git a/.gitignore b/.gitignore index 5973a06..ddf8d1c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ .gradle build .idea -assets \ No newline at end of file +/assets \ No newline at end of file diff --git a/libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/assets/Assets.kt b/libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/assets/Assets.kt new file mode 100644 index 0000000..e36149b --- /dev/null +++ b/libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/assets/Assets.kt @@ -0,0 +1,15 @@ +package de.itkl.core_api.interfaces.assets + +import de.itkl.core_api.interfaces.Resource +import kotlinx.coroutines.flow.Flow +import java.util.function.Consumer + +interface Assets : Flow { + suspend fun store(resource: Resource) + suspend fun retrieve(name: String): Resource? + suspend fun delete(name: String) + + suspend fun exists(name: String): Boolean { + return retrieve(name) != null + } +} \ No newline at end of file diff --git a/libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/assets/FileProcessorBackend.kt b/libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/assets/FileProcessorBackend.kt new file mode 100644 index 0000000..5ed6592 --- /dev/null +++ b/libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/assets/FileProcessorBackend.kt @@ -0,0 +1,16 @@ +package de.itkl.core_api.interfaces.assets + +import de.itkl.core_api.interfaces.FileProcessor +import de.itkl.core_api.interfaces.FileProcessor2 +import de.itkl.core_api.interfaces.Resource + +/** + * Executes a [FileProcessor2] on a [Resource]. It decides if and when + * the [FileProcessor2.process] should be called and what should happen with the result + */ +interface FileProcessorBackend { + suspend fun process( + resource: Resource, + assets: Assets, + fileProcessor: FileProcessor2) +} \ No newline at end of file