Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
package com.couchbase.client.deps.com.fasterxml.jackson.databind.ser.impl;
import com.couchbase.client.deps.com.fasterxml.jackson.core.JsonGenerator;
import com.couchbase.client.deps.com.fasterxml.jackson.databind.JsonSerializer;
import com.couchbase.client.deps.com.fasterxml.jackson.databind.SerializerProvider;
import com.couchbase.client.deps.com.fasterxml.jackson.databind.ser.BeanPropertyWriter;
import com.couchbase.client.deps.com.fasterxml.jackson.databind.util.NameTransformer;
/**
* Decorated {@link BeanPropertyWriter} that will filter out properties
* that are not to be included in currently active JsonView.
*/
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 BeanPropertyWriter _delegate;
protected final Class _view;
protected SingleView(BeanPropertyWriter delegate, Class view)
{
super(delegate);
_delegate = delegate;
_view = view;
}
@Override
public SingleView rename(NameTransformer transformer) {
return new SingleView(_delegate.rename(transformer), _view);
}
@Override
public void assignSerializer(JsonSerializer