private Vector<? extends Databasable> DoSearch( Class cl, String firstName, String lastName, Database db) { db.connect(); Vector<Databasable> searchresult = new Vector<Databasable>(); if (firstName == null) { if (lastName == null) { searchresult = null; } else { database.Search s = new database.Search(cl, "getSurName", "%" + lastName.toUpperCase() + "%") .setWildCardSearch(true) .setCaseSensitive(false); searchresult = db.readAll(s); } } else { if (lastName == null) { database.Search s = new database.Search(cl, "getFirstName", "%" + firstName.toUpperCase() + "%") .setWildCardSearch(true) .setCaseSensitive(false); searchresult = db.readAll(s); } else { database.Search s = new database.Search( cl, "getFirstName;getSurName", "%" + firstName.toUpperCase() + "%", "%" + lastName.toUpperCase() + "%") .setWildCardSearch(true) .setCaseSensitive(false); searchresult = db.readAll(s); } } db.disconnect(); return searchresult; }
@Override public String processRequest(RequestType type, HttpServletRequest request, Session session) { String response = replaceTags(template, "MASTERSERVLET", createLink(session)); String classtype = request.getParameter("type"); if (classtype == null) { response = replaceTags(response, "CALENDAR", ""); } else { if (classtype.equals("student")) { String result = request.getParameter("searchresult"); if (result == null) { // zoek op in de database met studenten Database db = getDB(); Vector<Student> searchresult = (Vector<Student>) DoSearch( Student.class, request.getParameter("firstname"), request.getParameter("lastname"), db); if ((searchresult == null) || (searchresult.isEmpty())) { response = replaceTags(response, "CALENDAR", "##search_nothingfound##"); } // als er maar 1 resultaat is, toon de kalender van de persoon else if (searchresult.size() == 1) { String link = CalendarTools.GeneratePHPiCalendarLink( searchresult.get(0), session.getAccount().getLanguage()); response = replaceTags(response, "CALENDAR", replaceTags(calendarTemplate, "LINK", link)); } else { response = replaceTags( response, "CALENDAR", replaceTags(scriptTemplate, "LINK", createLink(session) + "&type=student")); response = replaceTags( response, "SEARCHRESULTS", HTMLInterfaceTool.changeToDataTable("results", searchresult)); } } else // Er is geklikt op een rechtstreekse student waarvan het antwoord nu getoond moet // worden { // zoek op in de database met studenten Database db = getDB(); db.connect(); database.Search s = new database.Search(Student.class, "getStudentNumber", result); String link = CalendarTools.GeneratePHPiCalendarLink( db.<Student>read(s), session.getAccount().getLanguage()); response = replaceTags(response, "CALENDAR", replaceTags(calendarTemplate, "LINK", link)); } } else if (classtype.equals("educator")) { String result = request.getParameter("searchresult"); if (result == null) { Database db = getDB(); Vector<Educator> searchresult = (Vector<Educator>) DoSearch( Educator.class, request.getParameter("firstname"), request.getParameter("lastname"), db); if ((searchresult == null) || (searchresult.isEmpty())) { response = replaceTags(response, "CALENDAR", "##search_nothingfound##"); } else if (searchresult.size() == 1) { String link = CalendarTools.GeneratePHPiCalendarLink( searchresult.get(0), session.getAccount().getLanguage()); response = replaceTags(response, "CALENDAR", replaceTags(calendarTemplate, "LINK", link)); } else { response = replaceTags( response, "CALENDAR", replaceTags(scriptTemplate, "LINK", createLink(session) + "&type=educator")); response = replaceTags( response, "SEARCHRESULTS", HTMLInterfaceTool.changeToDataTable("results", searchresult)); } } else // Er is geklikt op een rechtstreekse student waarvan het antwoord nu getoond moet // worden { // zoek op in de database met studenten Database db = getDB(); db.connect(); database.Search s = new database.Search(Educator.class, "getEmployeeNumber", result); String link = CalendarTools.GeneratePHPiCalendarLink( db.<Educator>read(s), session.getAccount().getLanguage()); response = replaceTags(response, "CALENDAR", replaceTags(calendarTemplate, "LINK", link)); db.disconnect(); } } else if (classtype.equals("room")) { Database db = getDB(); db.connect(); database.Search s = new database.Search(Room.class, "getLocation", request.getParameter("roomnumber")); Room searchresult = db.read(s); db.disconnect(); if (searchresult == null) { response = replaceTags(response, "CALENDAR", "##search_nothingfound##"); } else { String link = CalendarTools.GeneratePHPiCalendarLink( searchresult, session.getAccount().getLanguage()); response = replaceTags(response, "CALENDAR", replaceTags(calendarTemplate, "LINK", link)); } } } return response; }