aboutsummaryrefslogtreecommitdiff
path: root/src/portfolio1/Programme.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/portfolio1/Programme.java')
-rw-r--r--src/portfolio1/Programme.java87
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();
+ }
+}