package com.vst.service.impl;
import com.vst.dao.QuestionDao;
import com.vst.model.DocumentType;
import com.vst.model.Question;
import com.vst.model.internal.QuestionVisualType;
import com.vst.service.QuestionManager;
import java.util.List;
import java.util.ArrayList;
public class QuestionManagerImpl extends BaseManager implements QuestionManager {
private QuestionDao dao;
/**
* Set the Dao for communication with the data layer.
*
* @param dao
*/
public void setQuestionDao(QuestionDao dao) {
this.dao = dao;
}
public void setQuestionVisualType(Question question) {
QuestionVisualType questionVisualType = new QuestionVisualType();
if (question.getQuestionType().getQuestionTypeId().equals(new Integer(1)) && !question.isForObjectStructure()) {
questionVisualType.setQuestionTypeId(new Integer(1));
}
if (question.getQuestionType().getQuestionTypeId().equals(new Integer(1)) && question.isForObjectStructure()) {
questionVisualType.setQuestionTypeId(new Integer(2));
}
if (question.getQuestionType().getQuestionTypeId().equals(new Integer(0))) {
questionVisualType.setQuestionTypeId(new Integer(3));
}
question.setQuestionVisualType(questionVisualType);
}
public List getQuestionVisualList() {
List questionVisualTypeList = new ArrayList();
QuestionVisualType questionVisualType = new QuestionVisualType();
questionVisualType.setQuestionTypeId(new Integer(1));
questionVisualType.setQuestionTypeName("Анализ проектно-технической документации");
questionVisualTypeList.add(questionVisualType);
questionVisualType = new QuestionVisualType();
questionVisualType.setQuestionTypeId(new Integer(2));
questionVisualType.setQuestionTypeName("Характеристики обследованного объекта");
questionVisualTypeList.add(questionVisualType);
questionVisualType = new QuestionVisualType();
questionVisualType.setQuestionTypeId(new Integer(3));
questionVisualType.setQuestionTypeName("Конструктивные решения");
questionVisualTypeList.add(questionVisualType);
return questionVisualTypeList;
}
public boolean hasHint(String questionId) {
return dao.hasHint(questionId);
}
public void raisePriority(String questionId) {
Question curQuestion = getQuestion(questionId);
dao.raisePriority(curQuestion);
}
public void makeNotNull(Question question) {
if (question.getDocumentType() == null) {
question.setDocumentType(new DocumentType());
}
}
public List findQuestions(Question question) {
return dao.findQuestions(question);
}
public boolean hasQuestionForObjectDocumentation(){
return dao.hasQuestionForObjectDocumentation();
}
public boolean hasQuestionForConstruction(String constructionTypeId){
return dao.hasQuestionForConstruction(constructionTypeId);
}
/**
* @see com.vst.service.QuestionManager#getQuestions(com.vst.model.Question)
*/
public List getQuestions(final Question question) {
return dao.getQuestions(question);
}
public List getAllQuestions() {
return dao.getAllQuestions();
}
/**
* @see com.vst.service.QuestionManager#getQuestion(String questionId)
*/
public Question getQuestion(final String questionId) {
return dao.getQuestion(new Integer(questionId));
}
/**
* @see com.vst.service.QuestionManager#saveQuestion(Question question)
*/
public void saveQuestion(Question question) {
if (question.getQuestionPriority() == null) {
question.setQuestionPriority(dao.getMaxPriority());
}
dao.saveQuestion(question);
}
/**
* @see com.vst.service.QuestionManager#removeQuestion(String questionId)
*/
public boolean removeQuestion(final String questionId) {
if (!dao.isQuestionUsed(questionId)) {
dao.removeQuestion(new Integer(questionId));
return true;
}
return false;
}
public List getConnectedRefferences(final String questionId){
return dao.getConnectedRefferences(questionId);
}
}