protected void generateValueTypeSerialization(ValueType vt) {
onNewline(out);
printMethod(out, "public static final", getSerializedFormTypeName(vt), SERIALIZATION_METHOD_PREFIX
+ makeSafeValueTypeName(vt), makeArg(vt.getFullname(), "obj"));
startMethodBody(out);
if (vt.getExternalizationElements().size() == 1) {
print(out, "return (obj == null) ? null : ");
ExternalizationElement extElem = vt.getExternalizationElements().get(0);
ValueType extElemVt = extElem.getType();
print(out, applyExternalizationIfRequired(applyExternalizerTo(extElem, "obj"), extElemVt));
} else {
println(out, "if (obj == null) return null;");
println(out, "JsonObject json = new JsonObject();");
for (ExternalizationElement extElem : vt.getExternalizationElements()) {
print(out, "json.add(\"");
print(out, makePrettySlotName(extElem));
print(out, "\", JsonConverter.getJsonFor(");
print(out, applyExternalizationIfRequired(applyExternalizerTo(extElem, "obj"), extElem.getType()));
print(out, "));");
newline(out);
}
print(out, "return json");
}
print(out, ";");
endMethodBody(out);
}