From b1cba8b7ae7860b73bef6a5760235acba33dd866 Mon Sep 17 00:00:00 2001 From: usbharu Date: Thu, 2 May 2024 11:16:24 +0900 Subject: [PATCH] =?UTF-8?q?doc:=20=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../owl/producer/api/OwlProducerBuilder.kt | 22 +++++++++++++++++++ .../producer/api/OwlProducerBuilderConfig.kt | 9 ++++++++ .../owl/producer/api/OwlProducerConfig.kt | 4 ++++ .../defaultimpl/DefaultOwlProducerConfig.kt | 19 ++++++++++++++++ 4 files changed, 54 insertions(+) diff --git a/owl/producer/api/src/main/kotlin/dev/usbharu/owl/producer/api/OwlProducerBuilder.kt b/owl/producer/api/src/main/kotlin/dev/usbharu/owl/producer/api/OwlProducerBuilder.kt index 4d1c21ab..0678266e 100644 --- a/owl/producer/api/src/main/kotlin/dev/usbharu/owl/producer/api/OwlProducerBuilder.kt +++ b/owl/producer/api/src/main/kotlin/dev/usbharu/owl/producer/api/OwlProducerBuilder.kt @@ -16,9 +16,31 @@ package dev.usbharu.owl.producer.api +/** + * [OwlProducer]を作成するビルダー + * + * @param P 作成する[OwlProducer] + * @param T [OwlProducer]の構成 + */ interface OwlProducerBuilder

{ + /** + * 現在の構成を返します + * + * @return 現在の構成 + */ fun config(): T + + /** + * 構成を適用します + * + * @param owlProducerConfig 適用する構成 + */ fun apply(owlProducerConfig: T) + /** + * 適用されている構成を使用して[OwlProducer]のインスタンスを作成します。 + * + * @return 作成された[OwlProducer] + */ fun build(): P } \ No newline at end of file diff --git a/owl/producer/api/src/main/kotlin/dev/usbharu/owl/producer/api/OwlProducerBuilderConfig.kt b/owl/producer/api/src/main/kotlin/dev/usbharu/owl/producer/api/OwlProducerBuilderConfig.kt index 2b6548f0..97d77812 100644 --- a/owl/producer/api/src/main/kotlin/dev/usbharu/owl/producer/api/OwlProducerBuilderConfig.kt +++ b/owl/producer/api/src/main/kotlin/dev/usbharu/owl/producer/api/OwlProducerBuilderConfig.kt @@ -16,6 +16,15 @@ package dev.usbharu.owl.producer.api +/** + * [OwlProducerBuilder]と[OwlProducerConfig]を使用して[OwlProducer]のインスタンスを作成します。 + * + * @param P 作成する[OwlProducer] + * @param T 作成に使用する[OwlProducerBuilder] + * @param C 構成 + * @param owlProducerBuilder 作成に使用する[OwlProducerBuilder] + * @param configBlock 構成 + */ fun

, C : OwlProducerConfig> OWL( owlProducerBuilder: T, configBlock: C.() -> Unit diff --git a/owl/producer/api/src/main/kotlin/dev/usbharu/owl/producer/api/OwlProducerConfig.kt b/owl/producer/api/src/main/kotlin/dev/usbharu/owl/producer/api/OwlProducerConfig.kt index 557547ce..b9f51498 100644 --- a/owl/producer/api/src/main/kotlin/dev/usbharu/owl/producer/api/OwlProducerConfig.kt +++ b/owl/producer/api/src/main/kotlin/dev/usbharu/owl/producer/api/OwlProducerConfig.kt @@ -16,5 +16,9 @@ package dev.usbharu.owl.producer.api +/** + * [OwlProducer]の構成 + * + */ interface OwlProducerConfig { } \ No newline at end of file diff --git a/owl/producer/default/src/main/kotlin/dev/usbharu/owl/producer/defaultimpl/DefaultOwlProducerConfig.kt b/owl/producer/default/src/main/kotlin/dev/usbharu/owl/producer/defaultimpl/DefaultOwlProducerConfig.kt index a5eaddf6..ced2695f 100644 --- a/owl/producer/default/src/main/kotlin/dev/usbharu/owl/producer/defaultimpl/DefaultOwlProducerConfig.kt +++ b/owl/producer/default/src/main/kotlin/dev/usbharu/owl/producer/defaultimpl/DefaultOwlProducerConfig.kt @@ -20,9 +20,28 @@ import dev.usbharu.owl.common.property.PropertySerializerFactory import dev.usbharu.owl.producer.api.OwlProducerConfig import io.grpc.Channel +/** + * デフォルトの[dev.usbharu.owl.producer.api.OwlProducer]の構成 + * + */ class DefaultOwlProducerConfig : OwlProducerConfig { + /** + * gRPCで使用する[Channel] + */ lateinit var channel: Channel + + /** + * プロデューサー名 + */ lateinit var name: String + + /** + * プロデューサーのホスト名 + */ lateinit var hostname: String + + /** + * [dev.usbharu.owl.common.property.PropertyValue]のシリアライズに使用するファクトリ + */ lateinit var propertySerializerFactory: PropertySerializerFactory } \ No newline at end of file