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 | } |