package org.jboss.resteasy.test.providers.jackson2.jsonfilter.resource;
import java.io.IOException;
import javax.ws.rs.core.MultivaluedMap;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.fasterxml.jackson.databind.ser.FilterProvider;
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
import com.fasterxml.jackson.jaxrs.cfg.EndpointConfigBase;
import com.fasterxml.jackson.jaxrs.cfg.ObjectWriterModifier;
public class ObjectFilterModifierMultiple extends ObjectWriterModifier {
public ObjectFilterModifierMultiple() {
}
@Override
public ObjectWriter modify(EndpointConfigBase<?> endpoint,
MultivaluedMap<String, Object> httpHeaders, Object valueToWrite,
ObjectWriter w, JsonGenerator jg) throws IOException {
SimpleFilterProvider simpleFilterProvider= new SimpleFilterProvider();
simpleFilterProvider.addFilter("nameFilterAll", SimpleBeanPropertyFilter.serializeAll());
simpleFilterProvider.addFilter("nameFilterSerializeAllExcept", SimpleBeanPropertyFilter.serializeAllExcept("id"));
simpleFilterProvider.addFilter("nameFilterOutAllExcept", SimpleBeanPropertyFilter.filterOutAllExcept("personType"));
/*FilterProvider filterProvider = new SimpleFilterProvider().addFilter(
"nameFilter",
SimpleBeanPropertyFilter.filterOutAllExcept("name"));*/
FilterProvider filterProvider = simpleFilterProvider;
return w.with(filterProvider);
}
}