| package com.fasterxml.jackson.databind.ser.impl; |
| |
| import java.io.IOException; |
| |
| import com.fasterxml.jackson.core.*; |
| import com.fasterxml.jackson.databind.*; |
| import com.fasterxml.jackson.databind.ser.*; |
| import com.fasterxml.jackson.databind.ser.std.BeanSerializerBase; |
| |
| public class UnwrappingBeanSerializer |
| extends BeanSerializerBase |
| { |
| /* |
| /********************************************************** |
| /* Life-cycle: constructors |
| /********************************************************** |
| */ |
| |
| /** |
| * Constructor used for creating unwrapping instance of a |
| * standard <code>BeanSerializer</code> |
| */ |
| public UnwrappingBeanSerializer(BeanSerializerBase src, String prefix) { |
| super(src, prefix); |
| } |
| |
| /* |
| /********************************************************** |
| /* Life-cycle: factory methods, fluent factories |
| /********************************************************** |
| */ |
| |
| @Override |
| public JsonSerializer<Object> unwrappingSerializer(String prefix) { |
| /* !!! 13-Jan-2011, tatu: do we need to do something here? |
| * Would this affect multi-level unwrapping? |
| */ |
| return this; |
| } |
| |
| @Override |
| public boolean isUnwrappingSerializer() { |
| return true; // sure is |
| } |
| |
| /* |
| /********************************************************** |
| /* JsonSerializer implementation that differs between impls |
| /********************************************************** |
| */ |
| |
| /** |
| * Main serialization method that will delegate actual output to |
| * configured |
| * {@link BeanPropertyWriter} instances. |
| */ |
| @Override |
| public final void serialize(Object bean, JsonGenerator jgen, SerializerProvider provider) |
| throws IOException, JsonGenerationException |
| { |
| if (_propertyFilterId != null) { |
| serializeFieldsFiltered(bean, jgen, provider); |
| } else { |
| serializeFields(bean, jgen, provider); |
| } |
| } |
| |
| /* |
| /********************************************************** |
| /* Standard methods |
| /********************************************************** |
| */ |
| |
| @Override public String toString() { |
| return "UnwrappingBeanSerializer for "+handledType().getName(); |
| } |
| } |