package org.apache.ode.bpel.obj.serde;
import java.io.IOException;
import java.net.URI;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializerProvider;
public class KeyAsJsonSerializer extends JsonSerializer<Object> {
static ObjectMapper mapper = new ObjectMapper();
static {
mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
}
public static String URIPrefix = "_-_-java.net.URI_TYPE_HACKER";
@Override
public void serialize(Object value, JsonGenerator jgen,
SerializerProvider provider) throws IOException,
JsonProcessingException {
String json;
if (value instanceof URI){
json = URIPrefix + value;
}else{
json = mapper.writeValueAsString(value);
}
jgen.writeFieldName(json);
}
}