package org.handwerkszeug.riak.transport.rest.internal; import java.io.IOException; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.JsonSerializer; import org.codehaus.jackson.map.SerializerProvider; import org.handwerkszeug.riak.model.Erlang; import org.handwerkszeug.riak.model.Function; import org.handwerkszeug.riak.model.JavaScript; /** * @author taichi */ public class FunctionJsonSerializer extends JsonSerializer<Function> { @Override public void serialize(Function value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeStartObject(); if (value instanceof JavaScript) { JavaScript js = (JavaScript) value; serialize(js, jgen, provider); } if (value instanceof Erlang) { Erlang e = (Erlang) value; serialize(e, jgen, provider); } jgen.writeEndObject(); } protected void serialize(JavaScript function, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeStringField("name", function.getName()); } protected void serialize(Erlang function, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeStringField("mod", function.getModule()); jgen.writeStringField("fun", function.getFunction()); } }