aboutsummaryrefslogtreecommitdiff
path: root/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Storage.java
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2025-04-30 23:04:31 +0200
committerJonas Smedegaard <dr@jones.dk>2025-04-30 23:06:21 +0200
commitfc937e3eafe20daf65c4e6784a9e7fd038a1b8c4 (patch)
treef5a3215e7f07b64c1773c726ca2632043e031553 /src/dk.biks.bachelorizer/dk/biks/bachelorizer/Storage.java
parent2aef5be440dc9ecb1a84c6c4da250ae3b8db0356 (diff)
add abstract class Storage
Diffstat (limited to 'src/dk.biks.bachelorizer/dk/biks/bachelorizer/Storage.java')
-rw-r--r--src/dk.biks.bachelorizer/dk/biks/bachelorizer/Storage.java70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Storage.java b/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Storage.java
new file mode 100644
index 0000000..95e5851
--- /dev/null
+++ b/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Storage.java
@@ -0,0 +1,70 @@
+// SPDX-FileCopyrightText: 2025 Jonas Smedegaard <dr@jones.dk>
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+package dk.biks.bachelorizer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/// Bachelorizer - reference storage model
+abstract class Storage {
+
+ /// default constructor
+ // (declared explicitly only to silence javadoc)
+ Storage() { }
+
+ /// initialization as needed
+ abstract void initialize();
+
+ /// add student
+ ///
+ /// @param name Name of student
+ public abstract void addStudent(String name);
+
+ /// get student name
+ ///
+ /// @return name of student
+ public abstract String getStudentName();
+
+ /// resolve activity index from name
+ ///
+ /// @param name activity name
+ /// @return index of activity as integer
+ abstract int getActivityIndeks(String name);
+
+ /// insert activity into participation
+ ///
+ /// @param activityIndex index of activity
+ abstract void addParticipation(int activityIndex);
+
+ /// list currently participating activities
+ ///
+ /// @param program programme name
+ /// @return names of participating activities
+ abstract ArrayList<String> getParticipation(String program);
+
+ /// purge participation choices
+ abstract void clearParticipation();
+
+ /// list activities within a program
+ ///
+ /// @param program programme name
+ /// @return names of contained activities
+ abstract ArrayList<String> selectProgram(String program);
+
+ /// sum of ECTS points under the given category
+ ///
+ /// @param program programme name
+ /// @return ECTS points as String
+ abstract String getSumEcts(String program);
+
+ /// list of available subject modules
+ ///
+ /// @return names of all subject modules as list of strings
+ abstract List<String> getAllSubjects();
+
+ /// list of available activities
+ ///
+ /// @return names of all activities as list of strings
+ abstract ArrayList<String> getAllActivities();
+}