package ciai; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import ciai.model.Course; import ciai.model.Degree; import ciai.model.Evaluation; import ciai.model.Grades; import ciai.model.Professor; import ciai.model.Student; public class Database { /* * Evaluation[] tests = { new Evaluation(0,"MidTerm",'0',12,0.5, * "24/07/2017", "09:00"), new Evaluation(1,"Final Test",'0',13,0.5, * "25/07/2017", "10:00") }; * * Evaluation[] assignments = { new Evaluation(2,"Assginment 1",'3',16,0.2, * "28/07/2017", "09:00"), new Evaluation(3,"Assginment 2",'3',6,0.3, * "29/07/2017", "12:00") }; * * Evaluation[] exams = { new Evaluation(4,"Exam",'1',13,1, "30/07/2017", * "13:00"), }; * * Evaluation[] labSessions = { new * Evaluation(5,"Pratical Lab Session 1",'2',12,0.15, "31/07/2017", * "14:00"), new Evaluation(6,"Pratical Lab Session 2",'2',13,0.15, * "01/08/2017", "17:00") }; */ ArrayList tests = new ArrayList( Arrays.asList(new Evaluation(0, "MidTerm", '0', 12, 0.5, "24/07/2017", "09:00"), new Evaluation(1, "Final Test", '0', 13, 0.5, "25/07/2017", "10:00"))); ArrayList assignments = new ArrayList( Arrays.asList(new Evaluation(2, "Assginment 1", '3', 16, 0.2, "28/07/2017", "09:00"), new Evaluation(3, "Assginment 2", '3', 6, 0.3, "29/07/2017", "12:00"))); ArrayList exams = new ArrayList( Arrays.asList(new Evaluation(4, "Exam", '1', 13, 1, "30/07/2017", "13:00"))); ArrayList labSessions = new ArrayList( Arrays.asList(new Evaluation(5, "Pratical Lab Session 1", '2', 12, 0.15, "31/07/2017", "14:00"), new Evaluation(6, "Pratical Lab Session 2", '2', 13, 0.15, "01/08/2017", "17:00"))); Grades grades = new Grades(tests, assignments, exams, labSessions, 13); Grades grades1 = new Grades(tests, assignments, exams, labSessions, 14); Grades grades2 = new Grades(tests, assignments, exams, labSessions, 12); Grades grades3 = new Grades(tests, assignments, exams, labSessions, 11); Professor[] professors = { new Professor(1, "manuelp", "Manuel Pinheiro", "Informática", "Professor", "http://alfa.di.uminho.pt/~jacome/images/myFoto.jpg", "manuelp@campus.fct.unl.pt"), new Professor(2, "andrep", "Andre Pinheiro", "Informática", "Professor", "http://alfa.di.uminho.pt/~jacome/images/myFoto.jpg", "manuelp@campus.fct.unl.pt"), new Professor(3, "pedrop", "Pedro Pinheiro", "Informática", "Assistant", "http://alfa.di.uminho.pt/~jacome/images/myFoto.jpg", "manuelp@campus.fct.unl.pt") }; Course[] finishedCourses = { new Course("IN0001", "Introdução à Programação", "Primeira cadeira em que o aluno pode programar", 6, professors), new Course("IN0002", "Análise Matemática IE", "Primeira cadeira que vais repetir", 6, professors), new Course("IN0003", "Algoritmos e Estruturas de Dados", "Aprendes a programar estruturas de dados", 9, professors), new Course("IN0004", "Análise Matemática IIE", "Segunda cadeira que vais repetir", 6, professors), new Course("IN0005", "Inteligência Artifical", "Um boa cadeira", 6, professors), new Course("IN0006", "Redes e Computadores", "Um boa cadeira", 6, professors), }; Course[] currentCourses = { new Course("IN0007", "Análise e Desenho de Algoritmos", "Primeira cadeira em que o aluno pode programar", 6, professors), new Course("IN0008", "Sistemas Distribuidos", "Primeira cadeira que vais repetir", 6, professors), new Course("IN0009", "Fundamentos e Sistemas de Operação", "Primeira cadeira em que o aluno pode programar", 6, professors), new Course("IN0010", "Probabilidade e Estatística", "Primeira cadeira que vais repetir", 6, professors), }; Course[] allCourses = { new Course("IN0001", "Introdução à Programação", "Primeira cadeira em que o aluno pode programar", 6, professors), new Course("IN0002", "Análise Matemática IE", "Primeira cadeira que vais repetir", 6, professors), new Course("IN0003", "Algoritmos e Estruturas de Dados", "Aprendes a programar estruturas de dados", 9, professors), new Course("IN0004", "Análise Matemática IIE", "Segunda cadeira que vais repetir", 6, professors), new Course("IN0005", "Inteligência Artifical", "Um boa cadeira", 6, professors), new Course("IN0006", "Redes e Computadores", "Um boa cadeira", 6, professors), new Course("IN0007", "Análise e Desenho de Algoritmos", "Primeira cadeira em que o aluno pode programar", 6, professors), new Course("IN0008", "Sistemas Distribuidos", "Primeira cadeira que vais repetir", 6, professors), new Course("IN0009", "Fundamentos e Sistemas de Operação", "Primeira cadeira em que o aluno pode programar", 6, professors), new Course("IN0010", "Probabilidade e Estatística", "Primeira cadeira que vais repetir", 6, professors), }; Degree[] degrees = { new Degree(0, "Mestrado Integrado em Engenharia Informática", 300, 5, allCourses), new Degree(1, "Licenciatura em Engenharia Física", 180, 3, allCourses), new Degree(2, "Licenciatura em Engenharia do Ambiente", 180, 3, allCourses), new Degree(3, "Mestrado Integrado em Engenharia Civil", 300, 5, allCourses), new Degree(4, "Mestrado Integrado em Engenharia Biomédica", 300, 5, allCourses), new Degree(5, "Mestrado Engenharia Electrotécnica e de Computadores", 300, 5, allCourses), new Degree(6, "Mestrado Engenharia e Gestão Industrial", 300, 5, allCourses), new Degree(7, "Licenciatura em Engenharia Informática de Materiais", 300, 3, allCourses), new Degree(8, "Mestrado Integrado em Engenharia Mecânica", 300, 5, allCourses), new Degree(9, "Mestrado Integrado em Engenharia de Micro e Nanotecnologias", 300, 5, allCourses), new Degree(1, "Mestrado Integrado em Engenharia Química e Bioquímica", 300, 5, allCourses), }; Student[] students1 = { new Student(0, "Pedro Simão", 23193, "https://scontent-mad1-1.xx.fbcdn.net/v/t1.0-9/11224667_10153625904504752_7169508433273767793_n.jpg?oh=59ee1edd350331b71481e97c25f6e2a9&oe=589EED3E", "psimao93@gmail.com", "p.simao@campus.fct.unl.pt", "Quinta da Saudade Lisboa", "Msc Computer Science", finishedCourses, currentCourses, grades), new Student(1, "André Correia", 43193, "https://scontent-mad1-1.xx.fbcdn.net/v/t1.0-9/10923518_891887160843553_607503240695549615_n.jpg?oh=a0ecb94c1e2cfae6ea8268ec4ce8f293&oe=589EB3E1", "mariacouto@gmail.com", "m.couto@campus.fct.unl.pt", "Quinta das Palmeiras Monte de Caparica", "Msc Biochemistry", finishedCourses, currentCourses, grades1), new Student(2, "Antonio Couto", 33193, "https://scontent-mad1-1.xx.fbcdn.net/v/t1.0-9/11224667_10153625904504752_7169508433273767793_n.jpg?oh=59ee1edd350331b71481e97c25f6e2a9&oe=589EED3E", "antoniocouto@gmail.com", "a.couto@campus.fct.unl.pt", "Quinta das Flores Monte de Caparica", "Msc Maths", finishedCourses, currentCourses, grades2), new Student(3, "Ana Couto", 23293, "https://scontent-mad1-1.xx.fbcdn.net/v/t1.0-9/11224667_10153625904504752_7169508433273767793_n.jpg?oh=59ee1edd350331b71481e97c25f6e2a9&oe=589EED3E", "anacouto@gmail.com", "a.couto@campus.fct.unl.pt", "Avenida da Liberdade 125 Lisboa", "Msc Computer Science", finishedCourses, currentCourses, grades3), new Student(4, "Joana Couto", 33194, "https://scontent-mad1-1.xx.fbcdn.net/v/t1.0-9/11224667_10153625904504752_7169508433273767793_n.jpg?oh=59ee1edd350331b71481e97c25f6e2a9&oe=589EED3E", "joanacouto@gmail.com", "jo.couto@campus.fct.unl.pt", "Urbanização do Sol 29 Seixal", "Msc Geology", finishedCourses, currentCourses, grades) }; ArrayList students = new ArrayList(Arrays.asList( new Student(0, "Pedro Simão", 23193, "https://scontent-mad1-1.xx.fbcdn.net/v/t1.0-9/11224667_10153625904504752_7169508433273767793_n.jpg?oh=59ee1edd350331b71481e97c25f6e2a9&oe=589EED3E", "psimao93@gmail.com", "p.simao@campus.fct.unl.pt", "Quinta da Saudade Lisboa", "Msc Computer Science", finishedCourses, currentCourses, grades), new Student(1, "André Correia", 43193, "https://scontent-mad1-1.xx.fbcdn.net/v/t1.0-9/10923518_891887160843553_607503240695549615_n.jpg?oh=a0ecb94c1e2cfae6ea8268ec4ce8f293&oe=589EB3E1", "mariacouto@gmail.com", "m.couto@campus.fct.unl.pt", "Quinta das Palmeiras Monte de Caparica", "Msc Biochemistry", finishedCourses, currentCourses, grades1), new Student(2, "Antonio Couto", 33193, "https://scontent-mad1-1.xx.fbcdn.net/v/t1.0-9/11224667_10153625904504752_7169508433273767793_n.jpg?oh=59ee1edd350331b71481e97c25f6e2a9&oe=589EED3E", "antoniocouto@gmail.com", "a.couto@campus.fct.unl.pt", "Quinta das Flores Monte de Caparica", "Msc Maths", finishedCourses, currentCourses, grades2), new Student(3, "Ana Couto", 23293, "https://scontent-mad1-1.xx.fbcdn.net/v/t1.0-9/11224667_10153625904504752_7169508433273767793_n.jpg?oh=59ee1edd350331b71481e97c25f6e2a9&oe=589EED3E", "anacouto@gmail.com", "a.couto@campus.fct.unl.pt", "Avenida da Liberdade 125 Lisboa", "Msc Computer Science", finishedCourses, currentCourses, grades3), new Student(4, "Joana Couto", 33194, "https://scontent-mad1-1.xx.fbcdn.net/v/t1.0-9/11224667_10153625904504752_7169508433273767793_n.jpg?oh=59ee1edd350331b71481e97c25f6e2a9&oe=589EED3E", "joanacouto@gmail.com", "jo.couto@campus.fct.unl.pt", "Urbanização do Sol 29 Seixal", "Msc Geology", finishedCourses, currentCourses, grades))); public Degree[] getDegrees() { return degrees; } public Course[] getCourses() { return currentCourses; } public List getStudents() { return students; } public Professor getProfessor(int id) { for (Professor p : professors) { if (p.getId() == id) { return p; } } return null; } public Student getStudent(int number) { for (Student ss : students) { if (ss.getNumber() == number) { return ss; } } return null; } public Boolean editStudent(int number, String address, String email) { boolean edited = false; for (Student ss : students) { if (ss.getNumber() == number) { ss.setAddress(address); ss.setPersonal_Email(email); edited = true; } } return edited; } public Boolean editProfessor(int id, String email, String name) { boolean edited = false; for (Professor pp : professors) { if (pp.getId() == id) { pp.setEmail(email); pp.setName(name); edited = true; } } return edited; } public Course getCourse(String id) { for (Course ss : currentCourses) { if (ss.getCourse_number().equals(id)) { return ss; } } return null; } public List getEvaluations() { List eval = new ArrayList(); eval.addAll(tests); eval.addAll(exams); eval.addAll(labSessions); eval.addAll(assignments); return eval; } public boolean removeStudentFromCourse(int number) { Student remove_student = null; for (Student s : students) { if (s.getNumber() == number) remove_student = s; } return students.remove(remove_student); } public boolean removeTestOrExamFromCourse(int id) { Evaluation remove_eval_t = null; Evaluation remove_eval_e = null; for (Evaluation t : tests) { if (t.getId() == id) { remove_eval_t = t; } } for (Evaluation e : exams) { if (e.getId() == id) { remove_eval_e = e; } } return tests.remove(remove_eval_t) || exams.remove(remove_eval_e); } public boolean removeProjectFromCourse(int id) { Evaluation removed_assign = null; for (Evaluation a : assignments) { if (a.getId() == id) { removed_assign = a; } } return assignments.remove(removed_assign); } public boolean removeLabSessionFromCourse(int id) { Evaluation removed_lab = null; for (Evaluation l : labSessions) { if (l.getId() == id) { removed_lab = l; } } return labSessions.remove(removed_lab); } public boolean addStudent(int number, String name, String email, Course course) { Course[] courses = new Course[1]; courses[0] = course; Student s = new Student(number, name, number, "", email, email, "", "", null, courses, null); return students.add(s); } public boolean addCourseEvaluation(String name, String type, int i, double w, String date, String time) { if (type.equals("0")) { return tests.add(new Evaluation(tests.get(tests.size() - 1).getId() + 1, name, '0', 0, w, date, time)); } else if (type.equals("1")) { return exams.add(new Evaluation(exams.get(exams.size() - 1).getId() + 1, name, '1', 0, w, date, time)); } else if (type.equals("2")) { return labSessions.add( new Evaluation(labSessions.get(labSessions.size() - 1).getId() + 1, name, '2', 0, w, date, time)); } else if (type.equals("3")) { return assignments.add( new Evaluation(assignments.get(assignments.size() - 1).getId() + 1, name, '3', 0, w, date, time)); } return false; } public boolean editCourseEvaluation(String name, String type, int i, double w, String date, String time, String evalid) { Evaluation e = getEval(evalid, type); if (e != null) { e.setData(date); e.setName(name); e.setTime(time); e.setWeight(w); return true; } return false; } private Evaluation getEval(String id, String type) { ArrayList searchin = null; int evalId = Integer.parseInt(id); if (type.equals("0")) { searchin = tests; } else if (type.equals("1")) { searchin = exams; } else if (type.equals("2")) { searchin = labSessions; } else if (type.equals("3")) { searchin = assignments; } for (Evaluation e : searchin) { if (e.getId() == evalId) { return e; } } return null; } }