Subversion Repositories bacoAlunos

Rev

Rev 206 | Rev 218 | 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
 
214 jmachado 43
    public List<CourseUnit> loadByCourse(long course, 1.5.0/docs/api/java/lang/String.html">String importYear)
44
    {
45
        return createCriteria().add(eq("importYear",importYear)).add(eq("course.id", course)).list();
46
    }
47
 
163 jmachado 48
    public CourseUnit loadBySigesCodeUnique(1.5.0/docs/api/java/lang/String.html">String sigesCode)
49
    {
202 jmachado 50
        return (CourseUnit) createCriteria().add(eq("code", sigesCode)).uniqueResult();
163 jmachado 51
    }
116 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)
54
    {
55
        return (CourseUnit) createCriteria().add(eq("code", sigesCode)).add(eq("courseCode", courseCode)).uniqueResult();
56
    }
163 jmachado 57
 
202 jmachado 58
    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)
59
    {
60
        return (CourseUnit) createCriteria().add(eq("code", sigesCode)).add(eq("courseCode", courseCode)).add(eq("semestre", semestre)).uniqueResult();
61
    }
163 jmachado 62
 
63
 
205 jmachado 64
    public int countCourseUnits(1.5.0/docs/api/java/lang/String.html">String query, SearchTypeEnum searchType)
65
    {
66
        Criterion c = DaoUtils.createSearchQuery(query,searchType,"objectives","name");
67
        return createCriteria().add(c).list().size();
68
    }
163 jmachado 69
 
205 jmachado 70
    public List<CourseUnit> search(1.5.0/docs/api/java/lang/String.html">String query, SearchTypeEnum searchTypeEnum, int maxUnits, int page)
71
    {
72
        Criterion c = DaoUtils.createSearchQuery(query, searchTypeEnum, "objectives", "name");
73
        Criteria criteria = createCriteria();
74
        criteria.add(c)
75
                .addOrder(Order.asc("name"))
76
                .setMaxResults(maxUnits)
77
                .setFirstResult(page * maxUnits);
78
        return criteria.list();
79
    }
202 jmachado 80
 
206 jmachado 81
    public int countCourseUnitsActualYear(1.5.0/docs/api/java/lang/String.html">String query, SearchTypeEnum searchType)
82
    {
83
        Criterion c = DaoUtils.createSearchQuery(query,searchType,"objectives","name");
84
        return createCriteria()
85
                .add(c)
86
                .add(eq("importYear", DatesUtils.getImportYear()))
87
                .list().size();
88
    }
89
 
90
    public List<CourseUnit> searchActualYear(1.5.0/docs/api/java/lang/String.html">String query, SearchTypeEnum searchTypeEnum, int maxUnits, int page)
91
    {
92
        Criterion c = DaoUtils.createSearchQuery(query, searchTypeEnum, "objectives", "name");
93
        Criteria criteria = createCriteria();
94
        criteria.add(c)
95
                .add(eq("importYear", DatesUtils.getImportYear()))
96
                .addOrder(Order.asc("name"))
97
                .setMaxResults(maxUnits)
98
                .setFirstResult(page * maxUnits);
99
        return criteria.list();
100
    }
101
 
205 jmachado 102
    public List<CourseUnit> loadMissingObjectives(long teacherId)
103
    {
104
        //todo falta a projeccao do teacher id
105
        return createCriteria()
206 jmachado 106
                .add(eq("importYear", DatesUtils.getImportYear()))
205 jmachado 107
                .add((or(isNull("objectives"),eq("objectives",""))))
108
                .createAlias("teachers", "th")
109
                .add(eq("th.id",teacherId))
110
                .list();
111
    }
112
 
214 jmachado 113
    public List<CourseUnit> loadMissingPrograms(long teacherId)
114
    {
115
        //todo falta a projeccao do teacher id
116
        return createCriteria()
117
                .add(eq("importYear", DatesUtils.getImportYear()))
118
                .add((or(isNull("programStreamId"),eq("programStreamId",""))))
119
                .createAlias("teachers", "th")
120
                .add(eq("th.id",teacherId))
121
                .list();
122
    }
123
 
124
 
125
    public List<CourseUnit> loadMissingObjectivesGivenCourse(long courseId)
126
    {
127
        return createCriteria()
128
                .createAlias("course", "c")
129
                .add(eq("c.id",courseId))
130
                .add(eq("importYear", DatesUtils.getImportYear()))
131
                .add((or(isNull("objectives"),eq("objectives",""))))
132
                .list();
133
    }
134
 
135
    public List<CourseUnit> loadMissingProgramGivenCourse(long courseId)
136
    {
137
        return createCriteria()
138
                .createAlias("course", "c")
139
                .add(eq("c.id",courseId))
140
                .add(eq("importYear", DatesUtils.getImportYear()))
141
                .add((or(isNull("programStreamId"),eq("programStreamId",""))))
142
                .list();
143
    }
144
 
145
        public List<CourseUnit> loadMissingObjectivesOrProgramGivenCourse(long courseId)
146
    {
147
        return createCriteria()
148
                .createAlias("course", "c")
149
                .add(eq("c.id",courseId))
150
                .add(eq("importYear", DatesUtils.getImportYear()))
151
                .add((or(or(isNull("objectives"),eq("objectives","")),or(isNull("programStreamId"),eq("programStreamId","")))))
152
                .list();
153
    }
206 jmachado 154
 
205 jmachado 155
 
156
 
157
 
206 jmachado 158
 
110 susana 159
}