diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/Filterer.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/Filterer.kt index c194d00c5..cd8dc64c2 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/Filterer.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/Filterer.kt @@ -20,7 +20,7 @@ package de.staropensource.engine.logging -import de.staropensource.engine.logging.type.Filter +import de.staropensource.engine.logging.implementable.Filter import de.staropensource.engine.logging.type.Call /** diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/LoggerConfiguration.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/LoggerConfiguration.kt index 14a5fd2cb..92216a920 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/LoggerConfiguration.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/LoggerConfiguration.kt @@ -23,7 +23,7 @@ package de.staropensource.engine.logging import de.staropensource.engine.logging.implementation.SOSLSv2FormatBuilder import de.staropensource.engine.logging.type.ChannelSettings import de.staropensource.engine.logging.type.Feature -import de.staropensource.engine.logging.type.FormatBuilder +import de.staropensource.engine.logging.implementable.FormatBuilder import de.staropensource.engine.logging.type.Level import de.staropensource.engine.logging.type.OperationMode import kotlinx.datetime.TimeZone diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/Processor.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/Processor.kt index 61166a18d..4c6f0b6a0 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/Processor.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/Processor.kt @@ -26,7 +26,7 @@ import de.staropensource.engine.logging.implementation.SOSLSv2FormatBuilder import de.staropensource.engine.logging.type.Call import de.staropensource.engine.logging.type.ChannelSettings import de.staropensource.engine.logging.type.Feature -import de.staropensource.engine.logging.type.FormatBuilder +import de.staropensource.engine.logging.implementable.FormatBuilder import de.staropensource.engine.logging.type.OperationMode import kotlin.reflect.full.primaryConstructor @@ -75,8 +75,8 @@ class Processor private constructor() { * following steps: * 1. build the log format * 2. update message - * 3. format the finalized format using the configured [de.staropensource.engine.logging.type.Formatter] - * 4. pass the finalized format to the configured [de.staropensource.engine.logging.type.Adapter]. + * 3. format the finalized format using the configured [de.staropensource.engine.logging.implementable.Formatter] + * 4. pass the finalized format to the configured [de.staropensource.engine.logging.implementable.Adapter]. * * Invoked by the configured * [ThreadingHandler]. diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/type/Adapter.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/Adapter.kt similarity index 86% rename from logging/src/main/kotlin/de/staropensource/engine/logging/type/Adapter.kt rename to logging/src/main/kotlin/de/staropensource/engine/logging/implementable/Adapter.kt index 31422687b..d19a4424f 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/type/Adapter.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/Adapter.kt @@ -18,7 +18,9 @@ * along with this program. If not, see . */ -package de.staropensource.engine.logging.type +package de.staropensource.engine.logging.implementable + +import de.staropensource.engine.logging.type.Call /** * Handles processed log calls. @@ -29,7 +31,7 @@ interface Adapter { /** * Handles the processed log call. * - * @param call original [Call] + * @param call original [de.staropensource.engine.logging.type.Call] * @param format finalized log format (print this!) * @since v1-alpha10 */ diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/type/Filter.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/Filter.kt similarity index 92% rename from logging/src/main/kotlin/de/staropensource/engine/logging/type/Filter.kt rename to logging/src/main/kotlin/de/staropensource/engine/logging/implementable/Filter.kt index ff731744d..e51bc4b8b 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/type/Filter.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/Filter.kt @@ -18,7 +18,9 @@ * along with this program. If not, see . */ -package de.staropensource.engine.logging.type +package de.staropensource.engine.logging.implementable + +import de.staropensource.engine.logging.type.Call /** * Provides methods for filtering log calls. diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/FormatBuilder.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/FormatBuilder.kt new file mode 100644 index 000000000..bef69a8de --- /dev/null +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/FormatBuilder.kt @@ -0,0 +1,84 @@ +/* + * STAROPENSOURCE ENGINE SOURCE FILE + * Copyright (c) 2024 The StarOpenSource Engine Authors + * Licensed under the GNU Affero General Public License v3 + * with an exception allowing classpath linking. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package de.staropensource.engine.logging.implementable + +import de.staropensource.engine.logging.type.Call +import de.staropensource.engine.logging.type.Feature + +/** + * Builds log formats. + * + * @param call [de.staropensource.engine.logging.type.Call] to build a format for + * @since v1-alpha10 + */ +abstract class FormatBuilder(protected val call: Call) { + /** + * Contains all enabled features. + * + * @since v1-alpha10 + */ + protected val enabledFeatures: MutableSet = mutableSetOf() + + /** + * Contains the message. + * + * @since v1-alpha10 + */ + var message: String = "no message has been defined, this is a bug" + + /** + * Returns a set of all enabled enabledFeatures. + * + * @return set of enabled enabledFeatures + * @since v1-alpha10 + */ + fun getFeatures(): Set { + return enabledFeatures.toSet() + } + + /** + * Adds the specified feature to the format. + * + * @param feature feature to add + * @since v1-alpha10 + */ + fun addFeature(feature: Feature) { + enabledFeatures.add(feature) + } + + /** + * Removes the specified feature from the format. + * + * @param feature feature to remove + * @since v1-alpha10 + */ + fun removeFeature(feature: Feature) { + enabledFeatures.remove(feature) + } + + /** + * Returns the finalized format. + * + * @return finalized format + * @since v1-alpha10 + */ + abstract override fun toString(): String +} diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/type/Formatter.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/Formatter.kt similarity index 97% rename from logging/src/main/kotlin/de/staropensource/engine/logging/type/Formatter.kt rename to logging/src/main/kotlin/de/staropensource/engine/logging/implementable/Formatter.kt index f0040f446..1a67f059a 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/type/Formatter.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/Formatter.kt @@ -18,7 +18,7 @@ * along with this program. If not, see . */ -package de.staropensource.engine.logging.type +package de.staropensource.engine.logging.implementable /** * Provides log format formatting. diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/type/OneCycleFormatter.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/OneCycleFormatter.kt similarity index 97% rename from logging/src/main/kotlin/de/staropensource/engine/logging/type/OneCycleFormatter.kt rename to logging/src/main/kotlin/de/staropensource/engine/logging/implementable/OneCycleFormatter.kt index 848f15b56..7fe638f29 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/type/OneCycleFormatter.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/OneCycleFormatter.kt @@ -18,7 +18,7 @@ * along with this program. If not, see . */ -package de.staropensource.engine.logging.type +package de.staropensource.engine.logging.implementable /** * Performs message formatting in one cycle. diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/type/TwoCycleFormatter.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/TwoCycleFormatter.kt similarity index 97% rename from logging/src/main/kotlin/de/staropensource/engine/logging/type/TwoCycleFormatter.kt rename to logging/src/main/kotlin/de/staropensource/engine/logging/implementable/TwoCycleFormatter.kt index 2a28894f5..c7f6546b1 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/type/TwoCycleFormatter.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/TwoCycleFormatter.kt @@ -18,7 +18,7 @@ * along with this program. If not, see . */ -package de.staropensource.engine.logging.type +package de.staropensource.engine.logging.implementable /** * Performs message formatting in two cycles. diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/package-info.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/package-info.kt new file mode 100644 index 000000000..bcdf4ecdd --- /dev/null +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/implementable/package-info.kt @@ -0,0 +1,26 @@ +/* + * STAROPENSOURCE ENGINE SOURCE FILE + * Copyright (c) 2024 The StarOpenSource Engine Authors + * Licensed under the GNU Affero General Public License v3 + * with an exception allowing classpath linking. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +/** + * Interfaces and abstract classes. + * + * @since v1-alpha10 + */ +package de.staropensource.engine.logging.implementable diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/NoOperationFormatter.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/NoOperationFormatter.kt index d3d37d41f..79eba3f86 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/NoOperationFormatter.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/NoOperationFormatter.kt @@ -20,7 +20,7 @@ package de.staropensource.engine.logging.implementation -import de.staropensource.engine.logging.type.OneCycleFormatter +import de.staropensource.engine.logging.implementable.OneCycleFormatter /** * Swallows all formatting tags diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/PrintlnAdapter.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/PrintlnAdapter.kt index 39291c9d6..1c8a12f31 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/PrintlnAdapter.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/PrintlnAdapter.kt @@ -20,7 +20,7 @@ package de.staropensource.engine.logging.implementation -import de.staropensource.engine.logging.type.Adapter +import de.staropensource.engine.logging.implementable.Adapter import de.staropensource.engine.logging.type.Call /** diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/SOSLSv2FormatBuilder.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/SOSLSv2FormatBuilder.kt index da6df9f62..304fc9e2d 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/SOSLSv2FormatBuilder.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/SOSLSv2FormatBuilder.kt @@ -24,7 +24,7 @@ import de.staropensource.engine.logging.Logger import de.staropensource.engine.logging.LoggerConfiguration import de.staropensource.engine.logging.type.Call import de.staropensource.engine.logging.type.Feature -import de.staropensource.engine.logging.type.FormatBuilder +import de.staropensource.engine.logging.implementable.FormatBuilder import de.staropensource.engine.logging.type.Level import kotlinx.datetime.Clock import kotlinx.datetime.LocalDateTime diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/TwoCycleFormatterImpl.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/TwoCycleFormatterImpl.kt index 015b74649..5bf740755 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/TwoCycleFormatterImpl.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/implementation/TwoCycleFormatterImpl.kt @@ -20,7 +20,7 @@ package de.staropensource.engine.logging.implementation -import de.staropensource.engine.logging.type.TwoCycleFormatter +import de.staropensource.engine.logging.implementable.TwoCycleFormatter /** * A [TwoCycleFormatter] implementation providing @@ -40,7 +40,7 @@ import de.staropensource.engine.logging.type.TwoCycleFormatter * - `ATTRIBUTE:` (example `ATTRIBUTE:BOLD`) * * @see TwoCycleFormatter - * @see de.staropensource.engine.logging.type.Formatter + * @see de.staropensource.engine.logging.implementable.Formatter * @since v1-alpha10 */ abstract class TwoCycleFormatterImpl: TwoCycleFormatter() { diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/type/ChannelSettings.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/type/ChannelSettings.kt index 80a962b39..469cbd981 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/type/ChannelSettings.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/type/ChannelSettings.kt @@ -1,5 +1,7 @@ package de.staropensource.engine.logging.type +import de.staropensource.engine.logging.implementable.Adapter +import de.staropensource.engine.logging.implementable.Formatter import de.staropensource.engine.logging.implementation.NoOperationFormatter import de.staropensource.engine.logging.implementation.PrintlnAdapter diff --git a/logging/src/main/kotlin/de/staropensource/engine/logging/type/FormatBuilder.kt b/logging/src/main/kotlin/de/staropensource/engine/logging/type/FormatBuilder.kt index 1f7cc1d63..978735ddf 100644 --- a/logging/src/main/kotlin/de/staropensource/engine/logging/type/FormatBuilder.kt +++ b/logging/src/main/kotlin/de/staropensource/engine/logging/type/FormatBuilder.kt @@ -20,62 +20,3 @@ package de.staropensource.engine.logging.type -/** - * Builds log formats. - * - * @param call [Call] to build a format for - * @since v1-alpha10 - */ -abstract class FormatBuilder(protected val call: Call) { - /** - * Contains all enabled features. - * - * @since v1-alpha10 - */ - protected val enabledFeatures: MutableSet = mutableSetOf() - - /** - * Contains the message. - * - * @since v1-alpha10 - */ - var message: String = "no message has been defined, this is a bug" - - /** - * Returns a set of all enabled enabledFeatures. - * - * @return set of enabled enabledFeatures - * @since v1-alpha10 - */ - fun getFeatures(): Set { - return enabledFeatures.toSet() - } - - /** - * Adds the specified feature to the format. - * - * @param feature feature to add - * @since v1-alpha10 - */ - fun addFeature(feature: Feature) { - enabledFeatures.add(feature) - } - - /** - * Removes the specified feature from the format. - * - * @param feature feature to remove - * @since v1-alpha10 - */ - fun removeFeature(feature: Feature) { - enabledFeatures.remove(feature) - } - - /** - * Returns the finalized format. - * - * @return finalized format - * @since v1-alpha10 - */ - abstract override fun toString(): String -}