From 5e82d80182c48bf82625014bd2f4442a18e1e297 Mon Sep 17 00:00:00 2001 From: D_Boldyrev Date: Tue, 11 Mar 2025 17:03:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=97=20Kotlin7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- .../ru/kotlin/homework/network/NetworkLogger.kt | 12 +++++++++++- .../ru/kotlin/homework/network/NetworkResponse.kt | 6 +++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index e145486..25ea3ae 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.jetbrains.kotlin.jvm' version '1.9.10' + id 'org.jetbrains.kotlin.jvm' version '1.9.23' } test { diff --git a/src/main/kotlin/ru/kotlin/homework/network/NetworkLogger.kt b/src/main/kotlin/ru/kotlin/homework/network/NetworkLogger.kt index a5f33c5..2bb61e0 100644 --- a/src/main/kotlin/ru/kotlin/homework/network/NetworkLogger.kt +++ b/src/main/kotlin/ru/kotlin/homework/network/NetworkLogger.kt @@ -30,6 +30,10 @@ class ErrorLogger { println("Error at $date: ${error.message}") } } + + fun dump(): List> { + return errors + } } fun processThrowables(logger: ErrorLogger) { @@ -42,7 +46,7 @@ fun processThrowables(logger: ErrorLogger) { logger.dumpLog() } -fun processApiErrors(apiExceptionLogger: ErrorLogger) { +fun processApiErrors(apiExceptionLogger: ErrorLogger) { apiExceptionLogger.log(Success("Success")) Thread.sleep(100) apiExceptionLogger.log(Success(Circle)) @@ -60,5 +64,11 @@ fun main() { println("Processing Api:") processApiErrors(logger) + + val dmp = logger.dump() + println("Список ошибок:") + dmp.forEach { (date, error) -> + println("Error at $date: ${error.message}") + } } diff --git a/src/main/kotlin/ru/kotlin/homework/network/NetworkResponse.kt b/src/main/kotlin/ru/kotlin/homework/network/NetworkResponse.kt index 3018c40..ee72332 100644 --- a/src/main/kotlin/ru/kotlin/homework/network/NetworkResponse.kt +++ b/src/main/kotlin/ru/kotlin/homework/network/NetworkResponse.kt @@ -9,19 +9,19 @@ import java.time.LocalDateTime /** * Network result */ -sealed class NetworkResponse { +sealed class NetworkResponse { val responseDateTime: LocalDateTime = LocalDateTime.now() } /** * Network success */ -data class Success(val resp: T): NetworkResponse() +class Success(val resp: T): NetworkResponse() /** * Network error */ -data class Failure(val error: R): NetworkResponse() +data class Failure(val error: R): NetworkResponse() val s1 = Success("Message") val r11: NetworkResponse = s1