GuavaUnwrappingOptionalBeanPropertyWriter.java
package tools.jackson.datatype.guava.ser;
import tools.jackson.core.JsonGenerator;
import tools.jackson.core.io.SerializedString;
import tools.jackson.databind.SerializationContext;
import tools.jackson.databind.ser.BeanPropertyWriter;
import tools.jackson.databind.ser.bean.UnwrappingBeanPropertyWriter;
import tools.jackson.databind.util.NameTransformer;
import com.google.common.base.Optional;
public class GuavaUnwrappingOptionalBeanPropertyWriter extends UnwrappingBeanPropertyWriter
{
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 serializeAsProperty(Object bean, JsonGenerator gen, SerializationContext ctxt)
throws Exception
{
if (_nullSerializer == null) {
Object value = get(bean);
if (value == null || Optional.absent().equals(value)) {
return;
}
}
super.serializeAsProperty(bean, gen, ctxt);
}
}