package org.jetbrains.dokka import org.jetbrains.dokka.utilities.DokkaLogger import java.util.function.BiConsumer /** * Accessed with reflection */ @Suppress("unused") class DokkaBootstrapImpl : DokkaBootstrap { class DokkaProxyLogger(val consumer: BiConsumer) : DokkaLogger { override var warningsCount: Int = 0 override var errorsCount: Int = 0 override fun debug(message: String) { consumer.accept("debug", message) } override fun info(message: String) { consumer.accept("info", message) } override fun progress(message: String) { consumer.accept("progress", message) } override fun warn(message: String) { consumer.accept("warn", message).also { warningsCount++ } } override fun error(message: String) { consumer.accept("error", message).also { errorsCount++ } } } private lateinit var generator: DokkaGenerator fun configure(logger: DokkaLogger, configuration: DokkaConfigurationImpl) { generator = DokkaGenerator(configuration, logger) } override fun configure(serializedConfigurationJSON: String, logger: BiConsumer) = configure( DokkaProxyLogger(logger), DokkaConfigurationImpl(serializedConfigurationJSON) ) override fun generate() = generator.generate() }