package io.vertx.reactivex.kafka.client.producer;
import io.vertx.reactivex.RxHelper;
import io.vertx.reactivex.ObservableHelper;
import io.vertx.reactivex.FlowableHelper;
import io.vertx.reactivex.impl.AsyncResultMaybe;
import io.vertx.reactivex.impl.AsyncResultSingle;
import io.vertx.reactivex.impl.AsyncResultCompletable;
import io.vertx.reactivex.WriteStreamObserver;
import io.vertx.reactivex.WriteStreamSubscriber;
import java.util.Map;
import java.util.Set;
import java.util.List;
import java.util.Iterator;
import java.util.function.Function;
import java.util.stream.Collectors;
import io.vertx.core.Handler;
import io.vertx.core.AsyncResult;
import io.vertx.core.json.JsonObject;
import io.vertx.core.json.JsonArray;
import io.vertx.lang.rx.RxGen;
import io.vertx.lang.rx.TypeArg;
import io.vertx.lang.rx.MappingIterator;
@RxGen(io.vertx.kafka.client.producer.KafkaProducerRecord.class)
public class KafkaProducerRecord<K,V> {
@Override
public String toString() {
return delegate.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
KafkaProducerRecord that = (KafkaProducerRecord) o;
return delegate.equals(that.delegate);
}
@Override
public int hashCode() {
return delegate.hashCode();
}
public static final TypeArg<KafkaProducerRecord> __TYPE_ARG = new TypeArg<>( obj -> new KafkaProducerRecord((io.vertx.kafka.client.producer.KafkaProducerRecord) obj),
KafkaProducerRecord::getDelegate
);
private final io.vertx.kafka.client.producer.KafkaProducerRecord<K,V> delegate;
public final TypeArg<K> __typeArg_0;
public final TypeArg<V> __typeArg_1;
public KafkaProducerRecord(io.vertx.kafka.client.producer.KafkaProducerRecord delegate) {
this.delegate = delegate;
this.__typeArg_0 = TypeArg.unknown(); this.__typeArg_1 = TypeArg.unknown(); }
public KafkaProducerRecord(Object delegate, TypeArg<K> typeArg_0, TypeArg<V> typeArg_1) {
this.delegate = (io.vertx.kafka.client.producer.KafkaProducerRecord)delegate;
this.__typeArg_0 = typeArg_0;
this.__typeArg_1 = typeArg_1;
}
public io.vertx.kafka.client.producer.KafkaProducerRecord getDelegate() {
return delegate;
}
private static final TypeArg<io.vertx.reactivex.kafka.client.producer.KafkaHeader> TYPE_ARG_0 = new TypeArg<io.vertx.reactivex.kafka.client.producer.KafkaHeader>(o1 -> io.vertx.reactivex.kafka.client.producer.KafkaHeader.newInstance((io.vertx.kafka.client.producer.KafkaHeader)o1), o1 -> o1.getDelegate());
public static <K, V> io.vertx.reactivex.kafka.client.producer.KafkaProducerRecord<K, V> create(String topic, K key, V value, Long timestamp, Integer partition) {
io.vertx.reactivex.kafka.client.producer.KafkaProducerRecord<K, V> ret = io.vertx.reactivex.kafka.client.producer.KafkaProducerRecord.newInstance((io.vertx.kafka.client.producer.KafkaProducerRecord)io.vertx.kafka.client.producer.KafkaProducerRecord.create(topic, key, value, timestamp, partition), TypeArg.unknown(), TypeArg.unknown());
return ret;
}
public static <K, V> io.vertx.reactivex.kafka.client.producer.KafkaProducerRecord<K, V> create(String topic, K key, V value) {
io.vertx.reactivex.kafka.client.producer.KafkaProducerRecord<K, V> ret = io.vertx.reactivex.kafka.client.producer.KafkaProducerRecord.newInstance((io.vertx.kafka.client.producer.KafkaProducerRecord)io.vertx.kafka.client.producer.KafkaProducerRecord.create(topic, key, value), TypeArg.unknown(), TypeArg.unknown());
return ret;
}
public static <K, V> io.vertx.reactivex.kafka.client.producer.KafkaProducerRecord<K, V> create(String topic, V value) {
io.vertx.reactivex.kafka.client.producer.KafkaProducerRecord<K, V> ret = io.vertx.reactivex.kafka.client.producer.KafkaProducerRecord.newInstance((io.vertx.kafka.client.producer.KafkaProducerRecord)io.vertx.kafka.client.producer.KafkaProducerRecord.create(topic, value), TypeArg.unknown(), TypeArg.unknown());
return ret;
}
public String topic() {
String ret = delegate.topic();
return ret;
}
public K key() {
K ret = (K)__typeArg_0.wrap(delegate.key());
return ret;
}
public V value() {
V ret = (V)__typeArg_1.wrap(delegate.value());
return ret;
}
public Long timestamp() {
Long ret = delegate.timestamp();
return ret;
}
public Integer partition() {
Integer ret = delegate.partition();
return ret;
}
public io.vertx.reactivex.kafka.client.producer.KafkaProducerRecord<K, V> (String key, String value) {
delegate.addHeader(key, value);
return this;
}
public io.vertx.reactivex.kafka.client.producer.KafkaProducerRecord<K, V> (String key, io.vertx.reactivex.core.buffer.Buffer value) {
delegate.addHeader(key, value.getDelegate());
return this;
}
public io.vertx.reactivex.kafka.client.producer.KafkaProducerRecord<K, V> (io.vertx.reactivex.kafka.client.producer.KafkaHeader header) {
delegate.addHeader(header.getDelegate());
return this;
}
public io.vertx.reactivex.kafka.client.producer.KafkaProducerRecord<K, V> (List<io.vertx.reactivex.kafka.client.producer.KafkaHeader> headers) {
delegate.addHeaders(headers.stream().map(elt -> elt.getDelegate()).collect(Collectors.toList()));
return this;
}
public List<io.vertx.reactivex.kafka.client.producer.KafkaHeader> () {
if (cached_0 != null) {
return cached_0;
}
List<io.vertx.reactivex.kafka.client.producer.KafkaHeader> ret = delegate.headers().stream().map(elt -> io.vertx.reactivex.kafka.client.producer.KafkaHeader.newInstance((io.vertx.kafka.client.producer.KafkaHeader)elt)).collect(Collectors.toList());
cached_0 = ret;
return ret;
}
private List<io.vertx.reactivex.kafka.client.producer.KafkaHeader> cached_0;
public static <K,V> KafkaProducerRecord<K,V> newInstance(io.vertx.kafka.client.producer.KafkaProducerRecord arg) {
return arg != null ? new KafkaProducerRecord<K,V>(arg) : null;
}
public static <K,V> KafkaProducerRecord<K,V> newInstance(io.vertx.kafka.client.producer.KafkaProducerRecord arg, TypeArg<K> __typeArg_K, TypeArg<V> __typeArg_V) {
return arg != null ? new KafkaProducerRecord<K,V>(arg, __typeArg_K, __typeArg_V) : null;
}
}