package org.cytoscape.rest.internal.serializer; import java.io.IOException; import java.util.List; import org.cytoscape.model.CyIdentifiable; import org.cytoscape.model.CyRow; import org.cytoscape.model.CyTable; import org.cytoscape.rest.internal.resource.JsonTags; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; public class TableSerializer extends JsonSerializer<CyTable> { @Override public Class<CyTable> handledType() { return CyTable.class; } @Override public void serialize(CyTable table, JsonGenerator generator, SerializerProvider provider) throws IOException, JsonProcessingException { generator.useDefaultPrettyPrinter(); generator.writeStartObject(); generator.writeNumberField(CyIdentifiable.SUID, table.getSUID()); generator.writeStringField(JsonTags.TITLE, table.getTitle()); generator.writeBooleanField(JsonTags.PUBLIC, table.isPublic()); generator.writeStringField(JsonTags.MUTABLE, table.getMutability().name()); generator.writeStringField(JsonTags.PRIMARY_KEY, table.getPrimaryKey().getName()); final List<CyRow> rows = table.getAllRows(); generator.writeObjectField(JsonTags.ROWS, rows); generator.writeEndObject(); } }