aboutsummaryrefslogtreecommitdiff
path: root/src/portfolio1/Programme.java
blob: 8847c897f448b91df5a12d86e4f3f8c6dde49dcd (plain)
  1. import java.util.ArrayList;
  2. import java.util.Iterator;
  3. public class Programme {
  4. static ArrayList<Activity> activities = new ArrayList<>();
  5. public Programme() {
  6. // Reset the activities list when a new Programme is created
  7. activities.clear();
  8. }
  9. // Performs a check to see if the programme is valid
  10. public boolean isValid() {
  11. //Initializes variables we need to test
  12. int sumProject = 0;
  13. int sumCourse = 0;
  14. int sumBasicCourse = 0;
  15. int countSubjectModuleProject = 0;
  16. int sumSubjectModuleCourse = 0;
  17. int countBachelorProject = 0;
  18. int countBasicProject = 0;
  19. int sumElectiveCourse = 0;
  20. //The program looks through every activity in the programme list and checks for specific classes
  21. for (Activity activity : activities) {
  22. String activityString = activity.toString();
  23. // Check for specific types based on toString() output
  24. if (activityString.startsWith("Basic Course:")) {
  25. sumBasicCourse += activity.getEcts();
  26. sumCourse += activity.getEcts();
  27. } else if (activityString.startsWith("Subject Module Course:")) {
  28. sumSubjectModuleCourse += activity.getEcts();
  29. sumCourse += activity.getEcts();
  30. } else if (activityString.startsWith("Elective Course:")) {
  31. sumElectiveCourse += activity.getEcts();
  32. sumCourse += activity.getEcts();
  33. } else if (activityString.startsWith("Course:")) {
  34. sumCourse += activity.getEcts();
  35. } else if (activityString.startsWith("Bachelor Project:")) {
  36. countBachelorProject += 1;
  37. sumProject += activity.getEcts();
  38. } else if (activityString.startsWith("Subject Module Project:")) {
  39. countSubjectModuleProject++;
  40. sumProject += activity.getEcts();
  41. } else if (activityString.startsWith("Basic Project:")) {
  42. countBasicProject++;
  43. sumProject += activity.getEcts();
  44. } else if (activityString.startsWith("Project:")) {
  45. sumProject += activity.getEcts();
  46. }
  47. }
  48. //It returns a boolean depending on the parameters are correct
  49. /* A valid programme must have activities from two subject modules,
  50. three basic projects, a bachelor project,
  51. and a further 50 ECTS of courses where at least 40 ECTS are basic courses.
  52. In a valid programme no activity can appear twice */
  53. return (
  54. sumCourse == 90
  55. && sumProject == 90
  56. && sumBasicCourse == 40
  57. && countSubjectModuleProject == 2
  58. && sumSubjectModuleCourse == 40
  59. && countBachelorProject == 1);
  60. }
  61. public void add(Activity... activitiesArray) {
  62. for (Activity e : activitiesArray) {
  63. this.activities.add(e);
  64. }
  65. }
  66. public String toString() {
  67. StringBuilder ret = new StringBuilder();
  68. Iterator<Activity> it = activities.iterator();
  69. while (it.hasNext()) {
  70. ret.append(it.next());
  71. if (it.hasNext()) {
  72. ret.append(System.lineSeparator());
  73. }
  74. }
  75. return ret.toString();
  76. }
  77. }