diff options
author | Jonas Smedegaard <dr@jones.dk> | 2025-05-01 02:15:59 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2025-05-01 02:18:01 +0200 |
commit | 94f7348c379f16036e67dce1ad94be274fc84ec8 (patch) | |
tree | 8c268fc147e275efc020a4fec963d7feb5f6ef9c /src/portfolio1/Programme.java | |
parent | a17f4b5b8279488e5c9682b31f0c2d40a6080fbb (diff) |
add/update build and zip generation routines
Diffstat (limited to 'src/portfolio1/Programme.java')
-rw-r--r-- | src/portfolio1/Programme.java | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/src/portfolio1/Programme.java b/src/portfolio1/Programme.java new file mode 100644 index 0000000..8847c89 --- /dev/null +++ b/src/portfolio1/Programme.java @@ -0,0 +1,87 @@ +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(); + } +} |