blob: 7ab3c7dd05c13811ab5c13e29c85ed573561b977 [file] [log] [blame]
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();
}
}