package com.syzton.sunread.dto.exam; import org.apache.commons.lang.builder.ToStringBuilder; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.syzton.sunread.model.exam.Answer; @JsonTypeInfo(use=JsonTypeInfo.Id.NAME,include=JsonTypeInfo.As.PROPERTY,property="typeName") @JsonSubTypes({@JsonSubTypes.Type(value=ObjectiveAnswerDTO.class,name="objective"),@JsonSubTypes.Type(value=SubjectiveAnswerDTO.class,name="subjective")}) public abstract class AnswerDTO { private Long id; private QuestionDTO questionDTO; public QuestionDTO getQuestionDTO() { return questionDTO; } public void setQuestionId(QuestionDTO questionDTO) { this.questionDTO = questionDTO; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public abstract Answer OTD(); @Override public String toString() { return ToStringBuilder.reflectionToString(this); } }