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

com.networknt.kafka.producer.ProduceRequest Maven / Gradle / Ivy

package com.networknt.kafka.producer;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.networknt.kafka.entity.EmbeddedFormat;

import java.util.List;
import java.util.Objects;
import java.util.Optional;

public class ProduceRequest {
    @JsonProperty("keyFormat")
    Optional keyFormat;
    @JsonProperty("keySchema")
    Optional keySchema;
    @JsonProperty("keySchemaId")
    Optional keySchemaId;
    @JsonProperty("keySchemaVersion")
    Optional keySchemaVersion;
    @JsonProperty("keySchemaSubject")
    Optional keySchemaSubject;

    @JsonProperty("valueFormat")
    Optional valueFormat;
    @JsonProperty("valueSchema")
    Optional valueSchema;
    @JsonProperty("valueSchemaId")
    Optional valueSchemaId;
    @JsonProperty("valueSchemaVersion")
    Optional valueSchemaVersion;
    @JsonProperty("valueSchemaSubject")
    Optional valueSchemaSubject;

    @JsonProperty("records")
    List records;

    public ProduceRequest() {
    }

    public ProduceRequest(Optional keyFormat,
                          Optional keySchema,
                          Optional keySchemaId,
                          Optional keySchemaVersion,
                          Optional keySchemaSubject,
                          Optional valueFormat,
                          Optional valueSchema,
                          Optional valueSchemaId,
                          Optional valueSchemaVersion,
                          Optional valueSchemaSubject,
                          List records) {
        this.keyFormat = keyFormat;
        this.keySchema = keySchema;
        this.keySchemaId = keySchemaId;
        this.keySchemaVersion = keySchemaVersion;
        this.keySchemaSubject = keySchemaSubject;
        this.valueFormat = valueFormat;
        this.valueSchema = valueSchema;
        this.valueSchemaId = valueSchemaId;
        this.valueSchemaVersion = valueSchemaVersion;
        this.valueSchemaSubject = valueSchemaSubject;
        this.records = records;
    }


    public static ProduceRequest create(
            EmbeddedFormat keyFormat,
            String keySchema,
            Integer keySchemaId,
            Integer keySchemaVersion,
            String keySchemaSubject,
            EmbeddedFormat valueFormat,
            String valueSchema,
            Integer valueSchemaId,
            Integer valueSchemaVersion,
            String valueSchemaSubject,
            List records) {
        return new ProduceRequest(
                Optional.ofNullable(keyFormat),
                Optional.ofNullable(keySchema),
                Optional.ofNullable(keySchemaId),
                Optional.ofNullable(keySchemaVersion),
                Optional.ofNullable(keySchemaSubject),
                Optional.ofNullable(valueFormat),
                Optional.ofNullable(valueSchema),
                Optional.ofNullable(valueSchemaId),
                Optional.ofNullable(valueSchemaVersion),
                Optional.ofNullable(valueSchemaSubject),
                records);
    }

    @JsonCreator
    static ProduceRequest fromJson(
            @JsonProperty("records") List records,
            @JsonProperty("keyFormat") EmbeddedFormat keyFormat,
            @JsonProperty("keySchemaId") Integer keySchemaId,
            @JsonProperty("keySchema") String keySchema,
            @JsonProperty("keySchemaVersion") Integer keySchemaVersion,
            @JsonProperty("keySchemaSubject") String keySchemaSubject,
            @JsonProperty("valueFormat") EmbeddedFormat valueFormat,
            @JsonProperty("valueSchemaId") Integer valueSchemaId,
            @JsonProperty("valueSchema") String valueSchema,
            @JsonProperty("valueSchemaVersion") Integer valueSchemaVersion,
            @JsonProperty("valueSchemaSubject") String valueSchemaSubject
            ) {
        return create(
                keyFormat,
                keySchema,
                keySchemaId,
                keySchemaVersion,
                keySchemaSubject,
                valueFormat,
                valueSchema,
                valueSchemaId,
                valueSchemaVersion,
                valueSchemaSubject,
                records != null ? records : List.of()
        );
    }

    public Optional getKeyFormat() {
        return keyFormat;
    }

    public void setKeyFormat(Optional keyFormat) {
        this.keyFormat = keyFormat;
    }

    public Optional getKeySchema() {
        return keySchema;
    }

    public void setKeySchema(Optional keySchema) {
        this.keySchema = keySchema;
    }

    public Optional getKeySchemaId() {
        return keySchemaId;
    }

    public void setKeySchemaId(Optional keySchemaId) {
        this.keySchemaId = keySchemaId;
    }

    public Optional getKeySchemaVersion() {
        return keySchemaVersion;
    }

    public void setKeySchemaVersion(Optional keySchemaVersion) {
        this.keySchemaVersion = keySchemaVersion;
    }

    public Optional getKeySchemaSubject() {
        return keySchemaSubject;
    }

    public void setKeySchemaSubject(Optional keySchemaSubject) {
        this.keySchemaSubject = keySchemaSubject;
    }

    public Optional getValueFormat() {
        return valueFormat;
    }

    public void setValueFormat(Optional valueFormat) {
        this.valueFormat = valueFormat;
    }

    public Optional getValueSchema() {
        return valueSchema;
    }

    public void setValueSchema(Optional valueSchema) {
        this.valueSchema = valueSchema;
    }

    public Optional getValueSchemaId() {
        return valueSchemaId;
    }

    public void setValueSchemaId(Optional valueSchemaId) {
        this.valueSchemaId = valueSchemaId;
    }

    public Optional getValueSchemaVersion() {
        return valueSchemaVersion;
    }

    public void setValueSchemaVersion(Optional valueSchemaVersion) {
        this.valueSchemaVersion = valueSchemaVersion;
    }

    public Optional getValueSchemaSubject() {
        return valueSchemaSubject;
    }

    public void setValueSchemaSubject(Optional valueSchemaSubject) {
        this.valueSchemaSubject = valueSchemaSubject;
    }

    public List getRecords() {
        return records;
    }

    public void setRecords(List records) {
        this.records = records;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        ProduceRequest that = (ProduceRequest) o;
        return Objects.equals(keyFormat, that.keyFormat) && Objects.equals(keySchema, that.keySchema) && Objects.equals(keySchemaId, that.keySchemaId) && Objects.equals(keySchemaVersion, that.keySchemaVersion) && Objects.equals(keySchemaSubject, that.keySchemaSubject) && Objects.equals(valueFormat, that.valueFormat) && Objects.equals(valueSchema, that.valueSchema) && Objects.equals(valueSchemaId, that.valueSchemaId) && Objects.equals(valueSchemaVersion, that.valueSchemaVersion) && Objects.equals(valueSchemaSubject, that.valueSchemaSubject) && Objects.equals(records, that.records);
    }

    @Override
    public int hashCode() {
        return Objects.hash(keyFormat, keySchema, keySchemaId, keySchemaVersion, keySchemaSubject, valueFormat, valueSchema, valueSchemaId, valueSchemaVersion, valueSchemaSubject, records);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy