From fc937e3eafe20daf65c4e6784a9e7fd038a1b8c4 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Wed, 30 Apr 2025 23:04:31 +0200 Subject: add abstract class Storage --- .../dk/biks/bachelorizer/Storage.java | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/dk.biks.bachelorizer/dk/biks/bachelorizer/Storage.java (limited to 'src/dk.biks.bachelorizer/dk/biks/bachelorizer/Storage.java') 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 +// 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 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 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 getAllSubjects(); + + /// list of available activities + /// + /// @return names of all activities as list of strings + abstract ArrayList getAllActivities(); +} -- cgit v1.2.3