com.fasterxml.jackson.datatype.guava.ser.GuavaUnwrappingOptionalBeanPropertyWriter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jackson-datatype-guava Show documentation
Show all versions of jackson-datatype-guava Show documentation
Add-on datatype-support module for Jackson (https://github.com/FasterXML/jackson) that handles
Guava (http://code.google.com/p/guava-libraries/) types (currently mostly just collection ones)
package com.fasterxml.jackson.datatype.guava.ser;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.io.SerializedString;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.BeanPropertyWriter;
import com.fasterxml.jackson.databind.ser.impl.UnwrappingBeanPropertyWriter;
import com.fasterxml.jackson.databind.util.NameTransformer;
import com.google.common.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);
}
}