aboutsummaryrefslogtreecommitdiff
path: root/src/com.example.portfolio2/com/example/portfolio2/Model.java
blob: 950b4f488cbd38a229f13c786a386a6001da3eb8 (plain)
  1. package com.example.portfolio2;
  2. import java.util.ArrayList;
  3. class Model{ // The model handles all interactions with the database
  4. MyDB db=new MyDB();
  5. Model(){}
  6. void initialize() { // When running the program, it clears the participation database
  7. clearParticipation();
  8. }
  9. int getActivityIndeks(String name) { // Returns the integer value of the activity's index
  10. if(name ==null) return -1;
  11. ArrayList<String> result = db.query("select indeks from activity a where name is '"+name+"';", "indeks");
  12. return Integer.parseInt(result.getFirst());
  13. }
  14. void addParticipation(int activityIndex) { // Inserts the given activity into participation using the activity's index
  15. db.cmd("insert into participation values(123, "+activityIndex+");");
  16. }
  17. ArrayList<String> getParticipation(String program) { // Returns all activity names from activities currently in participation
  18. return db.query("select name from participation p inner join activity a on p.indeks = a.indeks where program is '" + program + "';", "name");
  19. }
  20. void clearParticipation() { // Removes all entries in the participation database
  21. db.cmd("delete from participation");
  22. }
  23. ArrayList<String> selectProgram(String program) { // Returns an arraylist of activities within the given program
  24. return db.query("select name from activity where program is '" + program + "';", "name");
  25. }
  26. String getSumEcts(String program){ // Returns the sum of ECTS points under the given category from the student as a string
  27. if(program==null)return "0";
  28. ArrayList<String> result = db.query("select sum(activity.ects) as total_ects,student.name from student left outer join participation on student.studid = participation.studid inner join activity on participation.indeks = activity.indeks where program is '"+program+"' group by student.studid ;", "total_ects");
  29. if (result.isEmpty()) return "0";
  30. return result.getFirst();
  31. }
  32. ArrayList<String> getAllActivities() {
  33. return db.query("select name from activity;", "name");
  34. }
  35. }