Subversion Repositories bacoAlunos

Rev

Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.domain.dao.impl;

import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.criterion.*;
import java.util.List;
import static org.hibernate.criterion.Restrictions.*;

/**
 * @author: Duarte Santos
 * @date: 09-05-2011
 * @time: 23:46
 * @email: a12564 [at] estgp [dot] pt
 */


public class SurveyQuestionAnswerDaoImpl extends SurveyQuestionAnswerDao
{
    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(SurveyQuestionAnswerDaoImpl.class);

    public static SurveyQuestionAnswerDaoImpl getInstance()
    {
        if(myInstance == null)
            myInstance = new SurveyQuestionAnswerDaoImpl();
        return (SurveyQuestionAnswerDaoImpl) myInstance;
    }

    public int countAnswers(long candidateId, long nodeId)
    {
        Criteria c = createCriteria()
                        .createAlias("candidateAnswer","qca")
                        .createAlias("response","r")
                        .add(eq("qca.id",candidateId))
                        .add(eq("r.structuralNode.id",nodeId));
        return c.list().size();
    }

    public 5+0%2Fdocs%2Fapi+List">List loadForCsv(long surveyId)
    {
        Criteria c = createCriteria()
                        .createAlias("response","r")
                        .createAlias("r.owner","u")
                        .createAlias("candidateAnswer","qca")
                        .createAlias("qca.questionItem","qi")
                        .createAlias("qi.question","q")
                        .createAlias("q.survey","s")
                        .add(eq("s.id",surveyId))
                        .setProjection(Projections.projectionList()
                            .add(Projections.property("r.id"))
                            .add(Projections.property("s.id"))
                            .add(Projections.property("s.title"))
                            .add(Projections.property("q.id"))
                            .add(Projections.property("q.labelpt"))
                            .add(Projections.property("qi.id"))
                            .add(Projections.property("qi.labelpt"))
                            .add(Projections.property("qca.id"))
                            .add(Projections.property("qca.labelpt"))
                            .add(Projections.property("textAnswer"))
                            .add(Projections.property("u.id"))
                            .add(Projections.property("u.username"))
                        )
                        .addOrder(Order.asc("u.id"))
                        .addOrder(Order.asc("qca.id"))
                        .addOrder(Order.asc("qi.id"))
                        .addOrder(Order.asc("q.id"))
                        .addOrder(Order.asc("s.id"))
                        .addOrder(Order.asc("r.id"));
        return c.list();
    }
}