package pt.estgp.estgweb.services.surveys;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.*;
import pt.utl.ist.berserk.logic.serviceManager.IService;
import java.util.Date;
import java.util.List;
/**
* @author: Duarte Santos
* @date: 05-08-2011
* @time: 17:06
* @email: a12564 [at] estgp [dot] pt
*/
public class InsertSurveyAnswersService
implements IService
{
private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger =
1.5.0/docs/api/java/util/logging/Logger.html">Logger.
getLogger(InsertSurveyAnswersService.
class);
private LoadSurveyService loadSurveyService =
new LoadSurveyService
();
public SurveyView run
(long responseId, SurveyView surveyView, UserSession userSession
)
{
SurveyResponse response = DaoFactory.
getSurveyResponseDaoImpl().
load(responseId
);
if(response.
isAnswered()) return null;
for(SurveyQuestionView qView : surveyView.
getQuestions())
{
for(SurveyQuestionItemView iView : qView.
getItems())
{
for(SurveyQuestionCandidateAnswerView cView : iView.
getCandidates())
{
for(SurveyQuestionAnswerView aView : cView.
getAnswers())
{
if(aView.
getId() <= 0
)
{
SurveyQuestionAnswerImpl a = DomainObjectFactory.
createSurveyQuestionAnswerImpl();
aView.
persistViewInObject(a
);
SurveyQuestionCandidateAnswerImpl c =
(SurveyQuestionCandidateAnswerImpl
) DaoFactory.
getSurveyQuestionCandidateAnswerDaoImpl().
load(cView.
getId());
a.
setCandidateAnswer(c
);
a.
setResponse(response
);
DaoFactory.
getSurveyQuestionAnswerDaoImpl().
save(a
);
}
}
}
}
}
response.
setDate(new 5+0%2Fdocs%2Fapi+Date">Date());
response.
setAnswered(true);
logger.
info("Answer inserted to survey with id: "+surveyView.
getId());
return loadSurveyService.
run(surveyView.
getId(), userSession
);
}
}