@Override public void serialize(UserMembershipInfo value, JsonGenerator g, boolean collapse) throws IOException, JsonGenerationException { if (!collapse) { g.writeStartObject(); } g.writeFieldName("access_type"); AccessLevel.Serializer.INSTANCE.serialize(value.accessType, g); g.writeFieldName("user"); UserInfo.Serializer.INSTANCE.serialize(value.user, g); if (value.permissions != null) { g.writeFieldName("permissions"); StoneSerializers.nullable(StoneSerializers.list(MemberPermission.Serializer.INSTANCE)) .serialize(value.permissions, g); } if (value.initials != null) { g.writeFieldName("initials"); StoneSerializers.nullable(StoneSerializers.string()).serialize(value.initials, g); } g.writeFieldName("is_inherited"); StoneSerializers.boolean_().serialize(value.isInherited, g); if (!collapse) { g.writeEndObject(); } }
@Override public UserMembershipInfo deserialize(JsonParser p, boolean collapsed) throws IOException, JsonParseException { UserMembershipInfo value; String tag = null; if (!collapsed) { expectStartObject(p); tag = readTag(p); } if (tag == null) { AccessLevel f_accessType = null; UserInfo f_user = null; List<MemberPermission> f_permissions = null; String f_initials = null; Boolean f_isInherited = false; while (p.getCurrentToken() == JsonToken.FIELD_NAME) { String field = p.getCurrentName(); p.nextToken(); if ("access_type".equals(field)) { f_accessType = AccessLevel.Serializer.INSTANCE.deserialize(p); } else if ("user".equals(field)) { f_user = UserInfo.Serializer.INSTANCE.deserialize(p); } else if ("permissions".equals(field)) { f_permissions = StoneSerializers.nullable( StoneSerializers.list(MemberPermission.Serializer.INSTANCE)) .deserialize(p); } else if ("initials".equals(field)) { f_initials = StoneSerializers.nullable(StoneSerializers.string()).deserialize(p); } else if ("is_inherited".equals(field)) { f_isInherited = StoneSerializers.boolean_().deserialize(p); } else { skipValue(p); } } if (f_accessType == null) { throw new JsonParseException(p, "Required field \"access_type\" missing."); } if (f_user == null) { throw new JsonParseException(p, "Required field \"user\" missing."); } value = new UserMembershipInfo(f_accessType, f_user, f_permissions, f_initials, f_isInherited); } else { throw new JsonParseException(p, "No subtype found that matches tag: \"" + tag + "\""); } if (!collapsed) { expectEndObject(p); } return value; }