com.arakelian.elastic.jackson.OmitObsoleteJsonSerializer Maven / Gradle / Ivy
package com.arakelian.elastic.jackson;
import java.io.IOException;
import java.util.Set;
import com.arakelian.elastic.Views.Elastic;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.google.common.collect.Sets;
public class OmitObsoleteJsonSerializer extends JsonSerializer {
private final Class clazz;
private final Set> obsolete;
@SafeVarargs
public OmitObsoleteJsonSerializer(final Class clazz, final Class extends Elastic>... obsolete) {
this.clazz = clazz;
this.obsolete = Sets.newHashSet(obsolete);
}
@Override
public boolean isEmpty(final SerializerProvider provider, final T value) {
final Class> activeView = provider.getActiveView();
if (isObsolete(activeView)) {
return true;
}
return false;
}
protected boolean isObsolete(final Class> activeView) {
return obsolete.contains(activeView);
}
@Override
public void serialize(final T value, final JsonGenerator gen, final SerializerProvider serializers)
throws IOException {
final Class> activeView = serializers.getActiveView();
if (isObsolete(activeView)) {
return;
}
// pass through to default serializer
final JsonSerializer © 2015 - 2025 Weber Informatics LLC | Privacy Policy