Subversion Repositories bacoAlunos

Rev

Rev 1328 | Rev 1403 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1326 jmachado 1
package pt.estgp.estgweb.services.questionarios;
2
 
3
import pt.estgp.estgweb.domain.*;
4
import pt.estgp.estgweb.domain.dao.DaoFactory;
5
import pt.estgp.estgweb.domain.views.QuestionarioView;
6
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException;
7
import pt.utl.ist.berserk.logic.serviceManager.IService;
8
 
9
import java.util.List;
10
 
11
/**
12
 * Created by jorgemachado on 21/03/16.
13
 */
14
public class QuestionariosService implements IService
15
{
16
 
17
    //NEW QUESTIONARIOS COME BY THIS SERVICE
18
    public QuestionarioImpl newQuestionarioForm(QuestionarioImpl qform, UserSession userSession) throws NotAuthorizedException
19
    {
20
        if(qform.getQuestionarioHistoryDrive().getId() > 0)
21
        {
22
            QuestionarioHistoryDrive hist = DaoFactory.getQuestionarioHistoryDriveDaoImpl().load(qform.getQuestionarioHistoryDrive().getId());
23
            qform.setQuestionarioHistoryDrive(hist);
24
        }
25
        else
26
        {
27
            qform.setQuestionarioHistoryDrive(null);
28
        }
29
        DaoFactory.getQuestionarioDaoImpl().save(qform);
30
        return qform;
31
    }
32
    public QuestionarioImpl saveQuestionarioForm(QuestionarioImpl qform, UserSession userSession, QuestionarioImpl questionarioCleared) throws NotAuthorizedException {
33
        if(qform.getQuestionarioHistoryDrive().getId() > 0)
34
        {
35
            QuestionarioHistoryDrive hist = DaoFactory.getQuestionarioHistoryDriveDaoImpl().load(qform.getQuestionarioHistoryDrive().getId());
36
            qform.setQuestionarioHistoryDrive(hist);
37
        }
38
        else
39
        {
40
            qform.setQuestionarioHistoryDrive(null);
41
        }
42
        Questionario qPersistent = questionarioCleared;
43
        if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_FORM.name()))
44
        {
45
            QuestionarioView qv = new QuestionarioView(qform);
46
            if(questionarioCleared.isClear((UserSessionImpl) userSession, QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_ANSWER_PROCESSOR.name()))
47
            {
48
                qv.persistAnswersProcessor(qPersistent);
49
            }
50
            qv.persistViewInObjectForm(qPersistent);
51
            qPersistent.setQuestionarioHistoryDrive(qform.getQuestionarioHistoryDrive());
52
        }
53
        else
54
            throw new NotAuthorizedException("Não pode alterar o formulário porque o questionário está num estado avançado");
55
 
56
        return loadInit(questionarioCleared);
57
    }
58
 
59
    public QuestionarioImpl setAssignDetailsState(long id, UserSession userSession, QuestionarioImpl questionarioCleared) throws NotAuthorizedException {
60
 
61
        if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SET_STATE_ASSIGNATION_DETAILS.name()))
62
        {
63
            questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNATION_DETAILS);
1329 jmachado 64
            questionarioCleared.getiAnswersProcessorClass().startAfetacoes(questionarioCleared);
1326 jmachado 65
        }
66
        else
67
            throw new NotAuthorizedException("Não alterar o questionário para este estado neste momento");
68
 
69
        return loadInit(questionarioCleared);
70
    }
71
    /**
72
     * Questionario comes already cleared from Filter
73
     * @param questionarioId
74
     * @param questionarioCleared
75
     * @param userSession
76
     * @return
77
     */
78
    public QuestionarioImpl loadQuestionario(long questionarioId,UserSession userSession,QuestionarioImpl questionarioCleared)
79
    {
80
        return loadInit(questionarioCleared);
81
    }
82
 
83
    /**
84
     * just to load proxys
85
     * @param questionarioCleared
86
     * @return
87
     */
88
    private QuestionarioImpl loadInit(QuestionarioImpl questionarioCleared)
89
    {
90
        questionarioCleared.getDescription();//to load proxy just in case
91
        if(questionarioCleared.getQuestionarioHistoryDrive() != null)
92
            questionarioCleared.getQuestionarioHistoryDrive().getCodeName();
1328 jmachado 93
        IAnswersProcessor processor = questionarioCleared.getiAnswersProcessorClass();
94
        processor.initQuestionarioAfetacoesVariables(questionarioCleared);
1326 jmachado 95
        return questionarioCleared;
96
    }
1328 jmachado 97
 
1329 jmachado 98
    public void loadInit(List<QuestionarioImpl> questionarioCleared)
1326 jmachado 99
    {
100
        for(QuestionarioImpl q: questionarioCleared)
101
        {
1328 jmachado 102
            loadInit(q);
1326 jmachado 103
        }
104
    }
105
 
106
 
1329 jmachado 107
 
1326 jmachado 108
    public void deleteQuestionario(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared)
109
    {
110
        if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_DELETE.name()))
111
        {
112
            DaoFactory.getQuestionarioDaoImpl().delete(questionarioCleared);
113
        }
114
    }
115
 
116
}