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