aboutsummaryrefslogtreecommitdiff
path: root/dk/abcdefghijklmnopqrstuvxyzæøå/bachelorizer/Main.java
blob: b69047ec11d6967c05d588016d64fe35a9a22154 (plain)
  1. package dk.abcdefghijklmnopqrstuvxyzæøå.bachelorizer;
  2. import java.util.Arrays;
  3. /// Bachelorizer - bachelor programme registrar
  4. ///
  5. /// SPDX-License-Identifier: GPL-3.0-or-later
  6. /// SPDX-FileCopyrightText: 2025 Jonas Smedegaard <dr@jones.dk>
  7. ///
  8. /// Tool for registering students
  9. /// for activities in their bachelor programme.
  10. ///
  11. /// Core class usable in several ways
  12. /// * as self-contained executable via method main()
  13. /// * embedded in a larger system by instantiating Bachelorizer()
  14. ///
  15. /// * v0.0.1-draft
  16. /// * initial release, as part of delivery "Portfolio 1"
  17. ///
  18. /// @version 0.0.1-draft
  19. /// @see <https://moodle.ruc.dk/mod/assign/view.php?id=523186>
  20. public class Main {
  21. /// Student name
  22. public String name;
  23. /// Student activity list
  24. public String[] activities;
  25. /// Main constructor
  26. ///
  27. /// @param args command-line arguments or default demo data
  28. public Main(final String[] args) {
  29. if (args.length > 0 && args[0] != null) {
  30. this.name = args[0];
  31. if (args.length > 1 && args[1] != null) {
  32. this.activities = Arrays.copyOfRange(
  33. args, 1, args.length);
  34. }
  35. }
  36. }
  37. /// JVM entry point
  38. ///
  39. /// @param args command-line arguments
  40. public static void main(String[] args) {
  41. if (args.length == 0)
  42. args = new String[] {
  43. "Jonas Smedegaard",
  44. "CS-SMC2",
  45. "CS-SMC3",
  46. };
  47. Main session = new Main(args);
  48. // minimal viable product
  49. System.out.printf("Hi %s%n",
  50. (session.name != null)
  51. ? session.name
  52. : "stranger");
  53. System.out.printf("You chose these activities: %s%n",
  54. (session.activities != null)
  55. ? Arrays.toString(session.activities)
  56. : "[nothing]");
  57. }
  58. }