| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package nju.seec.helper.vo.question;
- import lombok.Data;
- import lombok.NonNull;
- import nju.seec.helper.enums.ExceptionType;
- import nju.seec.helper.enums.QuestionType;
- import nju.seec.helper.exception.HelperException;
- import java.util.Date;
- import java.util.Set;
- /**
- * @author XuShengTao
- * <p>
- * updated by cst
- */
- @Data
- public abstract class BaseQuestionVO {
- protected String id;
- protected QuestionType type;
- protected String stem;
- protected String analysis;
- protected String keyPoints;
- protected Set<String> tags;
- protected Set<String> knowledgeId;
- private Date lastModified;
- public static BaseQuestionVO convertBokQuestionToVO(@NonNull BokQuestion bokQuestion, boolean withAnswer) {
- switch (bokQuestion.getType()) {
- case "choice":
- return new ChoiceQuestionVO(bokQuestion, withAnswer);
- case "true_false":
- return new TrueOrFalseQuestionVO(bokQuestion, withAnswer);
- default:
- throw HelperException.of(ExceptionType.ERROR, "无法解析该题目");
- }
- }
- public BaseQuestionVO(BokQuestion bokQuestion) {
- this.id = bokQuestion.getId();
- this.stem = bokQuestion.getStem();
- this.keyPoints = bokQuestion.getKeyPoints();
- this.tags = bokQuestion.getTags();
- this.knowledgeId = bokQuestion.getKnowledgeId();
- this.lastModified = bokQuestion.getLastModified();
- }
- /**
- * 检查答案是否正确
- *
- * @param answer 答案
- * @return 是否正确
- */
- public abstract boolean pass(Object answer);
- }
|