Subversion Repositories bacoAlunos

Rev

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

Rev Author Line No. Line
110 susana 1
package pt.estgp.estgweb.domain.dao.impl;
2
 
116 jmachado 3
import pt.estgp.estgweb.domain.CourseUnit;
205 jmachado 4
import pt.estgp.estgweb.domain.Blog;
206 jmachado 5
import pt.estgp.estgweb.domain.TeacherImpl;
205 jmachado 6
import pt.estgp.estgweb.domain.dao.DaoUtils;
7
import pt.estgp.estgweb.services.common.SearchTypeEnum;
206 jmachado 8
import pt.estgp.estgweb.utils.DatesUtils;
116 jmachado 9
import static org.hibernate.criterion.Restrictions.*;
205 jmachado 10
import org.hibernate.criterion.Criterion;
11
import org.hibernate.criterion.Order;
12
import org.hibernate.Criteria;
116 jmachado 13
 
125 fvelez 14
import java.util.List;
15
import java.util.Set;
16
 
110 susana 17
/**
18
 * @author Jorge Machado
19
 * @date 28/Fev/2008
20
 * @time 2:51:06
21
 * @see pt.estgp.estgweb.domain.dao.impl
22
 */
23
public class CourseUnitDaoImpl extends CourseUnitDao
24
{
25
 
26
 
202 jmachado 27
    private CourseUnitDaoImpl()
28
    {
110 susana 29
    }
30
 
31
    public static CourseUnitDaoImpl getInstance()
32
    {
33
        if (myInstance == null)
34
            myInstance = new CourseUnitDaoImpl();
35
        return (CourseUnitDaoImpl) myInstance;
36
    }
37
 
125 fvelez 38
    public List<CourseUnit> loadBySigesCode(1.5.0/docs/api/java/lang/String.html">String sigesCode)
116 jmachado 39
    {
202 jmachado 40
        return createCriteria().add(eq("code", sigesCode)).list();
116 jmachado 41
    }
202 jmachado 42
 
163 jmachado 43
    public CourseUnit loadBySigesCodeUnique(1.5.0/docs/api/java/lang/String.html">String sigesCode)
44
    {
202 jmachado 45
        return (CourseUnit) createCriteria().add(eq("code", sigesCode)).uniqueResult();
163 jmachado 46
    }
116 jmachado 47
 
202 jmachado 48
    public CourseUnit loadBySigesCodeUnique(1.5.0/docs/api/java/lang/String.html">String sigesCode, 1.5.0/docs/api/java/lang/String.html">String courseCode)
49
    {
50
        return (CourseUnit) createCriteria().add(eq("code", sigesCode)).add(eq("courseCode", courseCode)).uniqueResult();
51
    }
163 jmachado 52
 
202 jmachado 53
    public CourseUnit loadBySigesCodeUnique(1.5.0/docs/api/java/lang/String.html">String sigesCode, 1.5.0/docs/api/java/lang/String.html">String courseCode, 1.5.0/docs/api/java/lang/String.html">String semestre)
54
    {
55
        return (CourseUnit) createCriteria().add(eq("code", sigesCode)).add(eq("courseCode", courseCode)).add(eq("semestre", semestre)).uniqueResult();
56
    }
163 jmachado 57
 
58
 
205 jmachado 59
    public int countCourseUnits(1.5.0/docs/api/java/lang/String.html">String query, SearchTypeEnum searchType)
60
    {
61
        Criterion c = DaoUtils.createSearchQuery(query,searchType,"objectives","name");
62
        return createCriteria().add(c).list().size();
63
    }
163 jmachado 64
 
205 jmachado 65
    public List<CourseUnit> search(1.5.0/docs/api/java/lang/String.html">String query, SearchTypeEnum searchTypeEnum, int maxUnits, int page)
66
    {
67
        Criterion c = DaoUtils.createSearchQuery(query, searchTypeEnum, "objectives", "name");
68
        Criteria criteria = createCriteria();
69
        criteria.add(c)
70
                .addOrder(Order.asc("name"))
71
                .setMaxResults(maxUnits)
72
                .setFirstResult(page * maxUnits);
73
        return criteria.list();
74
    }
202 jmachado 75
 
206 jmachado 76
    public int countCourseUnitsActualYear(1.5.0/docs/api/java/lang/String.html">String query, SearchTypeEnum searchType)
77
    {
78
        Criterion c = DaoUtils.createSearchQuery(query,searchType,"objectives","name");
79
        return createCriteria()
80
                .add(c)
81
                .add(eq("importYear", DatesUtils.getImportYear()))
82
                .list().size();
83
    }
84
 
85
    public List<CourseUnit> searchActualYear(1.5.0/docs/api/java/lang/String.html">String query, SearchTypeEnum searchTypeEnum, int maxUnits, int page)
86
    {
87
        Criterion c = DaoUtils.createSearchQuery(query, searchTypeEnum, "objectives", "name");
88
        Criteria criteria = createCriteria();
89
        criteria.add(c)
90
                .add(eq("importYear", DatesUtils.getImportYear()))
91
                .addOrder(Order.asc("name"))
92
                .setMaxResults(maxUnits)
93
                .setFirstResult(page * maxUnits);
94
        return criteria.list();
95
    }
96
 
205 jmachado 97
    public List<CourseUnit> loadMissingObjectives(long teacherId)
98
    {
99
        //todo falta a projeccao do teacher id
100
        return createCriteria()
206 jmachado 101
                .add(eq("importYear", DatesUtils.getImportYear()))
205 jmachado 102
                .add((or(isNull("objectives"),eq("objectives",""))))
103
                .createAlias("teachers", "th")
104
                .add(eq("th.id",teacherId))
105
                .list();
106
    }
107
 
206 jmachado 108
 
205 jmachado 109
 
110
 
111
 
206 jmachado 112
 
110 susana 113
}