All Downloads are FREE. Search and download functionalities are using the official Maven repository.

se.ansman.kotshi.KotshiJsonAdapterFactory.kt Maven / Gradle / Ivy

package se.ansman.kotshi

/**
 * Annotation to be applied on an abstract class that implements
 * [JsonAdapter.Factory][com.squareup.moshi.JsonAdapter.Factory] to tell Kotshi to generate a factory containing
 * all adapters in this module.
 *
 * Example:
 * ```kotlin
 * @KotshiJsonAdapterFactory
 * abstract class ApplicationJsonAdapterFactory : JsonAdapter.Factory {
 *     companion object {
 *         val INSTANCE = KotshiApplicationJsonAdapterFactory()
 *     }
 * }
 * ```
 *
 * @param useAdaptersForPrimitives A flag to enable or disable the use of adapters on a module basis. Since using
 *                                 adapters is worse for performance don't enable it unless you need it. This flag can
 *                                 be overridden in each adapter using [JsonSerializable.useAdaptersForPrimitives].
 *
 */
@Target(AnnotationTarget.CLASS)
@MustBeDocumented
@Retention(AnnotationRetention.SOURCE)
annotation class KotshiJsonAdapterFactory(
        val useAdaptersForPrimitives: Boolean = false
)




© 2015 - 2025 Weber Informatics LLC | Privacy Policy