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); }