blob: 8847c897f448b91df5a12d86e4f3f8c6dde49dcd (
plain)
- import java.util.ArrayList;
- import java.util.Iterator;
- public class Programme {
- static ArrayList<Activity> activities = new ArrayList<>();
- public Programme() {
- // Reset the activities list when a new Programme is created
- activities.clear();
- }
- // Performs a check to see if the programme is valid
- public boolean isValid() {
- //Initializes variables we need to test
- int sumProject = 0;
- int sumCourse = 0;
- int sumBasicCourse = 0;
- int countSubjectModuleProject = 0;
- int sumSubjectModuleCourse = 0;
- int countBachelorProject = 0;
- int countBasicProject = 0;
- int sumElectiveCourse = 0;
- //The program looks through every activity in the programme list and checks for specific classes
- for (Activity activity : activities) {
- String activityString = activity.toString();
- // Check for specific types based on toString() output
- if (activityString.startsWith("Basic Course:")) {
- sumBasicCourse += activity.getEcts();
- sumCourse += activity.getEcts();
- } else if (activityString.startsWith("Subject Module Course:")) {
- sumSubjectModuleCourse += activity.getEcts();
- sumCourse += activity.getEcts();
- } else if (activityString.startsWith("Elective Course:")) {
- sumElectiveCourse += activity.getEcts();
- sumCourse += activity.getEcts();
- } else if (activityString.startsWith("Course:")) {
- sumCourse += activity.getEcts();
- } else if (activityString.startsWith("Bachelor Project:")) {
- countBachelorProject += 1;
- sumProject += activity.getEcts();
- } else if (activityString.startsWith("Subject Module Project:")) {
- countSubjectModuleProject++;
- sumProject += activity.getEcts();
- } else if (activityString.startsWith("Basic Project:")) {
- countBasicProject++;
- sumProject += activity.getEcts();
- } else if (activityString.startsWith("Project:")) {
- sumProject += activity.getEcts();
- }
- }
- //It returns a boolean depending on the parameters are correct
- /* A valid programme must have activities from two subject modules,
- three basic projects, a bachelor project,
- and a further 50 ECTS of courses where at least 40 ECTS are basic courses.
- In a valid programme no activity can appear twice */
- return (
- sumCourse == 90
- && sumProject == 90
- && sumBasicCourse == 40
- && countSubjectModuleProject == 2
- && sumSubjectModuleCourse == 40
- && countBachelorProject == 1);
- }
- public void add(Activity... activitiesArray) {
- for (Activity e : activitiesArray) {
- this.activities.add(e);
- }
- }
- public String toString() {
- StringBuilder ret = new StringBuilder();
- Iterator<Activity> it = activities.iterator();
- while (it.hasNext()) {
- ret.append(it.next());
- if (it.hasNext()) {
- ret.append(System.lineSeparator());
- }
- }
- return ret.toString();
- }
- }
|