@Override public List<ClassSchedule> findNextClasses() { List<ClassSchedule> lstAux; Calendar cal = Calendar.getInstance(); int weekDay = cal.get(Calendar.DAY_OF_WEEK); int hour = cal.get(Calendar.HOUR_OF_DAY); String query = "week_day = " + "(SELECT MIN(week_day) FROM CLASS_SCHEDULE WHERE " + "(week_day == ? AND end_hour > ?) OR " + "(week_day > ?))"; /* * Pegando depois do dia atual * ex: Hoje é quarta, vou procurar a partir de quinta */ lstAux = Lists.newArrayList( ClassSchedule.find( ClassSchedule.class, query, Integer.toString(weekDay), Integer.toString(hour), Integer.toString(weekDay))); /* * Se não encontrei, quer dizer que depois daquele dia não há mais aulas na semana * Por tanto, vou procurar de novo, mas apartir do dia semana * Ex: Hoje é sexta, não tenho aula sábado, vou procurar a partir de domingo */ if (lstAux.size() == 0) { lstAux = Lists.newArrayList( ClassSchedule.find( ClassSchedule.class, query, Integer.toString(1), Integer.toString(hour), Integer.toString(1))); } return lstAux; }
@Override public ClassSchedule findBySubjectAndDateTime( Subject subject, int weekDay, Time start, Time end) { List<ClassSchedule> classes = ClassSchedule.find( ClassSchedule.class, "subject = ? and week_day = ? " + "and start_hour = ? and start_minute = ? " + "and end_hour = ? and end_minute = ?", Long.toString(subject.getId()), Integer.toString(weekDay), Integer.toString(start.getHour()), Integer.toString(start.getMinute()), Integer.toString(end.getHour()), Integer.toString(end.getMinute())); if (classes.size() > 0) return classes.get(0); return null; }
@Override public boolean anyClassThisSchoolYear(SchoolYear schoolYear) { return ClassSchedule.count( ClassSchedule.class, "semester = ?", new String[] {schoolYear.toString()}) > 0; }
@Override public List<ClassSchedule> findClassesOfDay(int weekDay) { return Lists.newArrayList( ClassSchedule.find(ClassSchedule.class, "week_day = ?", Integer.toString(weekDay))); }
@Override public List<ClassSchedule> findBySchoolYear(SchoolYear schoolYear) { return Lists.newArrayList( ClassSchedule.find(ClassSchedule.class, "semester = ?", schoolYear.toString())); }
@Override public List<ClassSchedule> findAll() { return Lists.newArrayList(ClassSchedule.findAll(ClassSchedule.class)); }
@Override public void deleteAll() { ClassSchedule.deleteAll(ClassSchedule.class); ClassSchedule.executeQuery("delete from sqlite_sequence where name='CLASS_SCHEDULE';"); }
@Override public long saveClassSchedule(ClassSchedule classSchedule) { return classSchedule.save(); }