com.adgear.anoa.write.AbstractRecordWriter Maven / Gradle / Ivy
package com.adgear.anoa.write;
import com.adgear.anoa.Anoa;
import com.adgear.anoa.AnoaHandler;
import com.fasterxml.jackson.core.JsonGenerator;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.util.function.Function;
import java.util.function.Supplier;
abstract class AbstractRecordWriter extends AbstractWriter {
final Function encoder(Supplier supplier) {
return (R record) -> {
G jacksonGenerator = supplier.get();
try {
write(record, jacksonGenerator);
} catch (IOException e) {
throw new UncheckedIOException(e);
}
return jacksonGenerator;
};
}
final Function encoderStrict(Supplier supplier) {
return (R record) -> {
G jacksonGenerator = supplier.get();
try {
writeStrict(record, jacksonGenerator);
} catch (IOException e) {
throw new UncheckedIOException(e);
}
return jacksonGenerator;
};
}
final Function, Anoa> encoder(
AnoaHandler anoaHandler,
Supplier supplier) {
return anoaHandler.functionChecked((R record) -> {
G jacksonGenerator = supplier.get();
write(record, jacksonGenerator);
return jacksonGenerator;
});
}
final Function, Anoa> encoderStrict(
AnoaHandler anoaHandler,
Supplier supplier) {
return anoaHandler.functionChecked((R record) -> {
G jacksonGenerator = supplier.get();
writeStrict(record, jacksonGenerator);
return jacksonGenerator;
});
}
final WriteConsumer writeConsumer(JsonGenerator jacksonGenerator) {
return new WriteConsumer() {
@Override
public void acceptChecked(R record) throws IOException {
write(record, jacksonGenerator);
}
@Override
public void flush() throws IOException {
jacksonGenerator.flush();
}
};
}
final WriteConsumer writeConsumerStrict(JsonGenerator jacksonGenerator) {
return new WriteConsumer() {
@Override
public void acceptChecked(R record) throws IOException {
writeStrict(record, jacksonGenerator);
}
@Override
public void flush() throws IOException {
jacksonGenerator.flush();
}
};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy