Files
Lab5-Prog/src/main/kotlin/commands/UpdateCommand.kt
T
2026-04-02 22:17:00 +03:00

40 lines
1.3 KiB
Kotlin

package commands
import collection.CollectionManager
import input.HumanBeingBuilder
import input.IOManager
import java.util.UUID
/**
* Обновляет элемент коллекции по его id.
* Синтаксис: update <uuid>
* Новые поля вводятся интерактивно через [HumanBeingBuilder].
*/
class UpdateCommand(
private val manager: CollectionManager,
private val inputManager: IOManager,
) : Command {
override val name = "update"
override val description = "обновить элемент по id: update <uuid>"
override fun execute(args: List<String>) {
if (args.isEmpty()) {
inputManager.print("[Ошибка] Укажите id элемента. Пример: update <uuid>")
return
}
val id = try {
UUID.fromString(args[0])
} catch (e: IllegalArgumentException) {
inputManager.print("[Ошибка] Некорректный UUID: '${args[0]}'")
return
}
if (manager.getById(id) == null) {
inputManager.print("[Ошибка] Элемент с id '$id' не найден.")
return
}
val updated = HumanBeingBuilder(inputManager).build()
manager.update(id, updated)
inputManager.print("Элемент обновлён.")
}
}