org.codehaus.jackson.map.ser.FilteredBeanPropertyWriter Maven / Gradle / Ivy
Go to download
Data Mapper package is a high-performance data binding package
built on Jackson JSON processor
package org.codehaus.jackson.map.ser;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.SerializerProvider;
/**
* Decorated {@link BeanPropertyWriter} that will filter out
* properties that are not to be included in currently active
* JsonView.
*
* @since 1.4
*/
public abstract class FilteredBeanPropertyWriter
{
public static BeanPropertyWriter constructViewBased(BeanPropertyWriter base, Class[] viewsToIncludeIn)
{
if (viewsToIncludeIn.length == 1) {
return new SingleView(base, viewsToIncludeIn[0]);
}
return new MultiView(base, viewsToIncludeIn);
}
/*
/**********************************************************
/* Concrete sub-classes
/**********************************************************
*/
private final static class SingleView
extends BeanPropertyWriter
{
protected final Class _view;
protected SingleView(BeanPropertyWriter base, Class view) {
super(base);
_view = view;
}
protected SingleView(SingleView fromView, JsonSerializer