package nebula.data.json;
import nebula.data.Entity;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonParser;
class BasicTypeFieldSerializer extends DefaultFieldSerializer<Object> {
public BasicTypeFieldSerializer(String fieldName, String frontName, DefaultTypeAdapter<?> dataDealer) {
super(fieldName, frontName);
this.dataDealer = dataDealer;
}
public DefaultTypeAdapter<?> dataDealer;
@Override
public void input(JsonParser in, Entity parent, Object now) throws Exception {
Object newly = dataDealer.readFrom(in, frontName);
if (newly != null && !newly.equals(now)) {
parent.put(fieldName, newly);
}
}
@Override
public void inputWithoutCheck(JsonParser in, Entity parent) throws Exception {
Object newly = dataDealer.readFrom(in, frontName);
parent.put(fieldName, newly);
}
@Override
public void output(JsonGenerator out, Object value) throws Exception {
dataDealer.writeTo(frontName, value, out);
}
}