this.clz = clz;
}
abstract Object toJavaObj(T value) throws IOException;
@Override
public void serialize(T value, JsonGenerator gen, SerializerProvider provider) throws IOException {
<BUG>if (compact) {</BUG>
gen.writeObject(toJavaObj(value));
<BUG>} else {
gen.writeStartObject();
gen.writeFieldName("@class");
gen.writeString(clz.getCanonicalName());
gen.writeFieldName("@data");
gen.writeObject(toJavaObj(value));
gen.writeEndObject();</BUG>
}

this.clz = clz;
}
abstract Object toJavaObj(T value) throws IOException;
@Override
public void serialize(T value, JsonGenerator gen, SerializerProvider provider) throws IOException {
gen.writeObject(toJavaObj(value));
