package org.gbif.api.jackson; import org.gbif.dwc.terms.Term; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.map.JsonSerializer; import org.codehaus.jackson.map.SerializationConfig.Feature; import org.codehaus.jackson.map.SerializerProvider; /** * Serializes list of maps of terms values. */ public class TermMapListSerializer extends JsonSerializer<List<Map<Term, String>>> { @Override public void serialize(List<Map<Term, String>> value, JsonGenerator jgen, SerializerProvider provider) throws IOException { if ((value == null || value.isEmpty()) && provider.getConfig().isEnabled(Feature.WRITE_EMPTY_JSON_ARRAYS)) { jgen.writeStartArray(); jgen.writeEndArray(); } else { jgen.writeStartArray(); for (Map<Term, String> extension : value) { jgen.writeStartObject(); for (Entry<Term, String> entry : extension.entrySet()) { jgen.writeStringField(entry.getKey().qualifiedName(), entry.getValue()); } jgen.writeEndObject(); } jgen.writeEndArray(); } } }