@Override public FileMemberRemoveActionResult deserialize(JsonParser p) throws IOException, JsonParseException { FileMemberRemoveActionResult value; boolean collapsed; String tag; if (p.getCurrentToken() == JsonToken.VALUE_STRING) { collapsed = true; tag = getStringValue(p); p.nextToken(); } else { collapsed = false; expectStartObject(p); tag = readTag(p); } if (tag == null) { throw new JsonParseException(p, "Required field missing: " + TAG_FIELD); } else if ("success".equals(tag)) { MemberAccessLevelResult fieldValue = null; fieldValue = MemberAccessLevelResult.Serializer.INSTANCE.deserialize(p, true); value = FileMemberRemoveActionResult.success(fieldValue); } else if ("member_error".equals(tag)) { FileMemberActionError fieldValue = null; expectField("member_error", p); fieldValue = FileMemberActionError.Serializer.INSTANCE.deserialize(p); value = FileMemberRemoveActionResult.memberError(fieldValue); } else { value = FileMemberRemoveActionResult.OTHER; skipFields(p); } if (!collapsed) { expectEndObject(p); } return value; }