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

ext.SchemaExt.kt Maven / Gradle / Ivy

package io.holixon.axon.avro.serializer.ext

import io.holixon.avro.adapter.api.AvroAdapterApi.extractSchemaInfo
import io.holixon.avro.adapter.api.AvroSchemaInfo
import io.holixon.avro.adapter.api.AvroSchemaReadOnlyRegistry
import io.holixon.avro.adapter.api.AvroSchemaRevision
import io.holixon.avro.adapter.api.AvroSchemaWithId
import io.holixon.avro.adapter.common.AvroAdapterDefault
import org.apache.avro.Schema
import org.apache.avro.generic.GenericData
import org.apache.avro.specific.SpecificRecordBase

/**
 * Utils and extensions for avro's [Schema] class.
 */
object SchemaExt {

  /**
   * Retrieves schema revision.
   */
  val Schema.revision: AvroSchemaRevision?
    get() = AvroAdapterDefault.schemaRevisionResolver.apply(this).orElse(null)

  /**
   * Retrieves schema info.
   */
  val Schema.info: AvroSchemaInfo
    get() = extractSchemaInfo(AvroAdapterDefault.schemaRevisionResolver)

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy