io.prestosql.jdbc.$internal.jackson.datatype.guava.ser.GuavaUnwrappingOptionalBeanPropertyWriter Maven / Gradle / Ivy
package io.prestosql.jdbc.$internal.jackson.datatype.guava.ser;
import io.prestosql.jdbc.$internal.jackson.core.JsonGenerator;
import io.prestosql.jdbc.$internal.jackson.core.io.SerializedString;
import io.prestosql.jdbc.$internal.jackson.databind.SerializerProvider;
import io.prestosql.jdbc.$internal.jackson.databind.ser.BeanPropertyWriter;
import io.prestosql.jdbc.$internal.jackson.databind.ser.impl.UnwrappingBeanPropertyWriter;
import io.prestosql.jdbc.$internal.jackson.databind.util.NameTransformer;
import io.prestosql.jdbc.$internal.guava.base.Optional;
public class GuavaUnwrappingOptionalBeanPropertyWriter extends UnwrappingBeanPropertyWriter
{
private static final long serialVersionUID = 1L;
public GuavaUnwrappingOptionalBeanPropertyWriter(BeanPropertyWriter base,
NameTransformer transformer) {
super(base, transformer);
}
protected GuavaUnwrappingOptionalBeanPropertyWriter(UnwrappingBeanPropertyWriter base,
NameTransformer transformer, SerializedString name) {
super(base, transformer, name);
}
@Override
protected UnwrappingBeanPropertyWriter _new(NameTransformer transformer, SerializedString newName)
{
return new GuavaUnwrappingOptionalBeanPropertyWriter(this, transformer, newName);
}
@Override
public void serializeAsField(Object bean, JsonGenerator gen, SerializerProvider prov) throws Exception
{
if (_nullSerializer == null) {
Object value = get(bean);
if (value == null || Optional.absent().equals(value)) {
return;
}
}
super.serializeAsField(bean, gen, prov);
}
}