package me.eater.hefbrug.collector.impl import me.eater.hefbrug.collector.AbstractCollector import me.eater.hefbrug.executor.ExecutionContext import me.eater.hefbrug.definition.impl.PackageDefinition import me.eater.hefbrug.state.ExistenceStatus import me.eater.hefbrug.state.impl.PackageState class PackageCollector(context: ExecutionContext) : AbstractCollector(context) { override suspend fun collect(definition: PackageDefinition): PackageState { val pm = context.getPackageManager() return PackageState(definition.id).apply { name = definition.state.name status = if (pm.isInstalled(definition.state.name)) ExistenceStatus.Present else ExistenceStatus.Absent } } }