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