diff options
author | Jonas Smedegaard <dr@jones.dk> | 2025-04-30 23:04:31 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2025-04-30 23:06:21 +0200 |
commit | fc937e3eafe20daf65c4e6784a9e7fd038a1b8c4 (patch) | |
tree | f5a3215e7f07b64c1773c726ca2632043e031553 /src/dk.biks.bachelorizer/dk/biks | |
parent | 2aef5be440dc9ecb1a84c6c4da250ae3b8db0356 (diff) |
add abstract class Storage
Diffstat (limited to 'src/dk.biks.bachelorizer/dk/biks')
4 files changed, 79 insertions, 9 deletions
diff --git a/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Controller.java b/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Controller.java index 64eeabc..532ac58 100644 --- a/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Controller.java +++ b/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Controller.java @@ -16,7 +16,7 @@ import javafx.scene.control.TextArea; class Controller { /// Storage model - private Database store; + private Storage store; /// UI model private UI ui; @@ -27,7 +27,7 @@ class Controller { /// Parameters passed on command-line and in JNLP file private List<String> parameters; - /// clear the participation database at program launch + /// clear the participation choices at program launch void initialize() { store.initialize(); } @@ -38,7 +38,7 @@ class Controller { /// @param ui UI model /// @param view Application view Controller( - final Database store, final UI ui, final Window view + final Storage store, final UI ui, final Window view ) { this.store = store; this.ui = ui; diff --git a/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Database.java b/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Database.java index f746649..f814b92 100644 --- a/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Database.java +++ b/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Database.java @@ -11,10 +11,10 @@ import java.util.List; import com.example.portfolio2.MyDB; -/// Bachelorizer - database model +/// Bachelorizer - database storage model /// /// This model handles all interaction with the database. -class Database { +class Database extends Storage { /// database singleton private MyDB db = new MyDB(); @@ -32,7 +32,7 @@ class Database { clearParticipation(); } - /// Add student + /// add student /// /// @param name Name of student // TODO: replace this dummy placeholder with database query @@ -40,7 +40,7 @@ class Database { student = new Person(name); } - /// Get student name + /// get student name /// /// @return name of student // TODO: replace this dummy placeholder with database query @@ -84,7 +84,7 @@ class Database { "name"); } - /// purge participation database + /// purge participation choices void clearParticipation() { db.cmd("DELETE FROM participation"); } 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(); +} diff --git a/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Window.java b/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Window.java index ba3033a..2da85b3 100644 --- a/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Window.java +++ b/src/dk.biks.bachelorizer/dk/biks/bachelorizer/Window.java @@ -46,7 +46,7 @@ public final class Window extends Application { + "-fx-padding: 10"; /// Storage model - private Database store = new Database(); + private Storage store = new Database(); /// UI model /// |