From 2b6efbc6187e97e9e2e41aba26a4f8a8b3d07641 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20S=C3=A4ume?= Date: Wed, 15 May 2024 00:27:10 +0200 Subject: [PATCH] NOTICKET: Add Main Javadoc --- src/main/java/de/hitec/nhplus/Main.java | 27 +++- .../nhplus/datastorage/ConnectionBuilder.java | 6 +- .../java/de/hitec/nhplus/datastorage/Dao.java | 27 ++-- .../hitec/nhplus/datastorage/DaoFactory.java | 14 +- .../de/hitec/nhplus/datastorage/DaoImp.java | 77 ++++++++--- .../de/hitec/nhplus/fixtures/Fixture.java | 18 +-- .../de/hitec/nhplus/fixtures/Fixtures.java | 4 +- .../nhplus/fixtures/MedicationFixture.java | 7 +- .../hitec/nhplus/fixtures/NurseFixture.java | 6 + .../hitec/nhplus/fixtures/PatientFixture.java | 6 + .../nhplus/fixtures/TreatmentFixture.java | 6 + .../nhplus/main/MainWindowController.java | 18 +++ .../java/de/hitec/nhplus/main/Person.java | 6 + .../de/hitec/nhplus/utils/DateConverter.java | 21 +++ .../java/de/hitec/nhplus/utils/Validator.java | 127 ++++++++++++++---- 15 files changed, 280 insertions(+), 90 deletions(-) diff --git a/src/main/java/de/hitec/nhplus/Main.java b/src/main/java/de/hitec/nhplus/Main.java index 7827fc1..5a35686 100644 --- a/src/main/java/de/hitec/nhplus/Main.java +++ b/src/main/java/de/hitec/nhplus/Main.java @@ -1,7 +1,6 @@ package de.hitec.nhplus; import de.hitec.nhplus.datastorage.ConnectionBuilder; - import javafx.application.Application; import javafx.application.Platform; import javafx.fxml.FXMLLoader; @@ -12,18 +11,35 @@ import javafx.stage.Stage; import java.io.IOException; /** - * @author dominik.saeume@hmmh.ag + * The application main class, holding the {@link #main} entrypoint. + * + * @author Bernd Heideman + * @author Dominik Säume */ public class Main extends Application { private Stage primaryStage; + + /** + * The main entry point. + */ + public static void main(String[] args) { + launch(args); + } + + /** + * Implementation of the JavaFX start hook. + */ @Override public void start(Stage primaryStage) { this.primaryStage = primaryStage; - mainWindow(); + executeMainApplication(); } - public void mainWindow() { + /** + * Executes the main application. + */ + private void executeMainApplication() { try { FXMLLoader loader = new FXMLLoader(Main.class.getResource("/de/hitec/nhplus/main/MainWindowView.fxml")); TabPane pane = loader.load(); @@ -44,7 +60,4 @@ public class Main extends Application { } } - public static void main(String[] args) { - launch(args); - } } diff --git a/src/main/java/de/hitec/nhplus/datastorage/ConnectionBuilder.java b/src/main/java/de/hitec/nhplus/datastorage/ConnectionBuilder.java index 3945a3c..02e22c7 100644 --- a/src/main/java/de/hitec/nhplus/datastorage/ConnectionBuilder.java +++ b/src/main/java/de/hitec/nhplus/datastorage/ConnectionBuilder.java @@ -7,7 +7,7 @@ import java.sql.DriverManager; import java.sql.SQLException; /** - * The {@link DaoFactory} allows a safe connection to the Database. + * The {@link DaoFactory} allows a safe connection to the database. * * @author Bernd Heidemann * @author Dominik Säume @@ -21,7 +21,7 @@ public class ConnectionBuilder { private static Connection connection; /** - * @return A Thread-safe {@link Connection} to the Database. + * @return A thread-safe {@link Connection} to the database. */ synchronized public static Connection getConnection() { try { @@ -38,7 +38,7 @@ public class ConnectionBuilder { } /** - * Closes the Connection to the Database. + * Closes the connection to the database. */ synchronized public static void closeConnection() { try { diff --git a/src/main/java/de/hitec/nhplus/datastorage/Dao.java b/src/main/java/de/hitec/nhplus/datastorage/Dao.java index 8f70e87..1027953 100644 --- a/src/main/java/de/hitec/nhplus/datastorage/Dao.java +++ b/src/main/java/de/hitec/nhplus/datastorage/Dao.java @@ -4,47 +4,48 @@ import java.sql.SQLException; import java.util.List; /** - * {@link Dao} is the Abbreviation of Data-Access-Object. - * This Interface has the Basic Methods which are needed on any {@link Dao} to work as expected. + * {@link Dao} is the abbreviation for Data-Access-Object. + * This interface has the Basic Methods that are needed on any {@link Dao} to work as expected. * - * @param The Model for which that {@link Dao} is implemented. + * @param The model for which that {@link Dao} is implemented. * @author Bernd Heidemann * @author Dominik Säume * @version 1.0 - * @implSpec The Implementations should be added to the {@link DaoFactory}. + * @implSpec The implementations should be added to the {@link DaoFactory}. */ public interface Dao { /** - * Create a Database Entry from a Model object. + * Create a database entry from a model object. * - * @param t The Model instance. + * @param t The model instance. */ void create(T t) throws SQLException; /** - * Read a Database Entry to a Model object. + * Read a database entry to a model object. * - * @param id The ID of the Element in the Database. + * @param id The ID of the element in the database. + * @return a model instance of {@link T}. */ T read(int id) throws SQLException; /** - * @return All Database Entries as a {@link List} of Model instances + * @return All database entries as a {@link List} of model instances. */ List readAll() throws SQLException; /** - * Update the Database according to the Values of the Model object. + * Update the database according to the values of the model object. * - * @param t The Model instance. + * @param t The model instance. */ void update(T t) throws SQLException; /** - * Delete a Database Entry. + * Delete a database entry. * - * @param id The ID of the Element in the Database. + * @param id The ID of the element in the database. */ void delete(int id) throws SQLException; } diff --git a/src/main/java/de/hitec/nhplus/datastorage/DaoFactory.java b/src/main/java/de/hitec/nhplus/datastorage/DaoFactory.java index 1bdbab9..55851a9 100644 --- a/src/main/java/de/hitec/nhplus/datastorage/DaoFactory.java +++ b/src/main/java/de/hitec/nhplus/datastorage/DaoFactory.java @@ -6,7 +6,7 @@ import de.hitec.nhplus.patient.database.PatientDao; import de.hitec.nhplus.treatment.database.TreatmentDao; /** - * The {@link DaoFactory} is a Singleton({@link #getInstance}) which should be used to get {@link Dao}s. + * The {@link DaoFactory} is a singleton({@link #getInstance}) that should be used to get {@link Dao}s. * * @author Bernd Heidemann * @author Dominik Säume @@ -17,13 +17,13 @@ public class DaoFactory { private static DaoFactory instance; /** - * A Private Constructor according to the Singleton Pattern. + * A private constructor according to the singleton pattern. */ private DaoFactory() { } /** - * @return The Singleton Instance. + * @return The singleton instance of {@link DaoFactory}. */ public static DaoFactory getInstance() { if (DaoFactory.instance == null) { @@ -33,7 +33,7 @@ public class DaoFactory { } /** - * @return A new {@link TreatmentDao} Instance with a Database Connection. + * @return A new {@link TreatmentDao} instance with a database connection. * @see de.hitec.nhplus.treatment.Treatment Treatment */ public TreatmentDao createTreatmentDao() { @@ -41,7 +41,7 @@ public class DaoFactory { } /** - * @return A new {@link PatientDao} Instance with a Database Connection. + * @return A new {@link PatientDao} instance with a database connection. * @see de.hitec.nhplus.patient.Patient Patient */ public PatientDao createPatientDAO() { @@ -49,7 +49,7 @@ public class DaoFactory { } /** - * @return A new {@link NurseDao} Instance with a Database Connection. + * @return A new {@link NurseDao} instance with a database connection. * @see de.hitec.nhplus.nurse.Nurse Nurse */ public NurseDao createNurseDAO() { @@ -57,7 +57,7 @@ public class DaoFactory { } /** - * @return A new {@link MedicationDao} Instance with a Database Connection. + * @return A new {@link MedicationDao} instance with a database connection. * @see de.hitec.nhplus.medication.Medication Medication */ public MedicationDao createMedicationDAO() { diff --git a/src/main/java/de/hitec/nhplus/datastorage/DaoImp.java b/src/main/java/de/hitec/nhplus/datastorage/DaoImp.java index 0d3af03..6344e18 100644 --- a/src/main/java/de/hitec/nhplus/datastorage/DaoImp.java +++ b/src/main/java/de/hitec/nhplus/datastorage/DaoImp.java @@ -7,30 +7,30 @@ import java.sql.SQLException; import java.util.List; /** - * The {@link DaoImp} is a Generic Base Implementation of the {@link Dao}, - * which should fit most use cases. + * The {@link DaoImp} is a generic base implementation of the {@link Dao}, + * that should fit most use cases. * - * @param The Model for which that {@link Dao} is implemented. + * @param The model for which that {@link Dao} is implemented. * @author Bernd Heidemann * @author Dominik Säume * @version 1.0 - * @implSpec The Implementations should be added to the {@link DaoFactory}. + * @implSpec The implementations should be added to the {@link DaoFactory}. */ public abstract class DaoImp implements Dao { protected final Connection connection; /** - * @param connection The Database Connection to use - * @implSpec The Connection should be Received from the {@link ConnectionBuilder}. + * @param connection The database {@link Connection} to use. + * @implSpec The {@link Connection} should be received from the {@link ConnectionBuilder}. */ public DaoImp(Connection connection) { this.connection = connection; } /** - * Creates a new Database Entry from a Model object. + * Creates a new database entry from a model object. * - * @param t The Model instance. + * @param t The model instance. */ @Override public void create(T t) throws SQLException { @@ -38,9 +38,10 @@ public abstract class DaoImp implements Dao { } /** - * Read a Database Entry to a Model object. + * Read a database entry to a model object. * - * @param id The ID of the Element in the Database. + * @param id The ID of the element in the database. + * @return the model instance of type {@link T}, which was read. */ @Override public T read(int id) throws SQLException { @@ -53,7 +54,9 @@ public abstract class DaoImp implements Dao { } /** - * Read all Database Entries to a {@link List} of Model objects. + * Read all database entries to a {@link List} of model objects. + * + * @return a {@link List} of type {@link T} holding all database entries as model instances. */ @Override public List readAll() throws SQLException { @@ -61,9 +64,9 @@ public abstract class DaoImp implements Dao { } /** - * Update the Database according to the Values of the Model object. + * Update the database according to the values of the model object. * - * @param t The Model instance. + * @param t The model instance. */ @Override public void update(T t) throws SQLException { @@ -71,26 +74,62 @@ public abstract class DaoImp implements Dao { } /** - * Delete a Database Entry. + * Delete a database entry. * - * @param id The ID of the Element in the Database. + * @param id The ID of the element in the database. */ @Override public void delete(int id) throws SQLException { getDeleteStatement(id).executeUpdate(); } + /** + * @param result The {@link ResultSet} from execution of the statement received from {@link #getReadByIDStatement}. + * @return The model instance of type {@link T}. + * @implSpec This will be called in {@link #read}. + */ protected abstract T getInstanceFromResultSet(ResultSet result) throws SQLException; - protected abstract List getListFromResultSet(ResultSet result) throws SQLException; - - protected abstract PreparedStatement getCreateStatement(T t) throws SQLException; - + /** + * @param id The ID of the database entry to read. + * @return A {@link PreparedStatement} to read a specific entry by its ID. + * @implSpec This will be called in {@link #read}. + * The output of the execution will be used in {@link #getInstanceFromResultSet}. + */ protected abstract PreparedStatement getReadByIDStatement(int id) throws SQLException; + /** + * @param result The {@link ResultSet} from execution of the statement received from {@link #getReadAllStatement}. + * @return A {@link List} of type {@link T} holding all database entries as model instances. + * @implSpec This will be called in {@link #readAll}. + */ + protected abstract List getListFromResultSet(ResultSet result) throws SQLException; + + /** + * @return A {@link PreparedStatement} to read all entries of this model. + * @implSpec This will be called in {@link #readAll}. + * The output of the execution will be used in {@link #getListFromResultSet}. + */ protected abstract PreparedStatement getReadAllStatement() throws SQLException; + /** + * @param t The model instance of type {@link T} for which an entry should be created. + * @return a {@link PreparedStatement} which can be used to create a new database entry for the model instance. + * @implSpec This will be called in {@link #create}. + */ + protected abstract PreparedStatement getCreateStatement(T t) throws SQLException; + + /** + * @param t The model instance of type {@link T} for which the entry should be updated. + * @return a {@link PreparedStatement} which can be used to update the database entry for the model instance. + * @implSpec This will be called in {@link #update}. + */ protected abstract PreparedStatement getUpdateStatement(T t) throws SQLException; + /** + * @param id The ID of the database entry which should be deleted. + * @return a {@link PreparedStatement} which can be used to delete the database entry. + * @implSpec This will be called in {@link #delete}. + */ protected abstract PreparedStatement getDeleteStatement(int id) throws SQLException; } diff --git a/src/main/java/de/hitec/nhplus/fixtures/Fixture.java b/src/main/java/de/hitec/nhplus/fixtures/Fixture.java index 4a2e03d..5c2fa84 100644 --- a/src/main/java/de/hitec/nhplus/fixtures/Fixture.java +++ b/src/main/java/de/hitec/nhplus/fixtures/Fixture.java @@ -7,36 +7,36 @@ import java.sql.SQLException; import java.util.Map; /** - * A Fixture is a Class, which can be used to set up a specific set of Data. + * A fixture is a class, which can be used to set up a specific set of data. * - * @param The Model for which the {@link Fixture} is implemented. + * @param The model for which the {@link Fixture} is implemented. * @author Dominik Säume * @version 1.0 - * @implSpec The Implementations should be added to the {@link Fixtures#main}. + * @implSpec The implementations should be added to the {@link Fixtures#main}. */ public interface Fixture { /** - * Drop all Dependent Tables. + * Drop all dependent tables. * - * @param connection A Database {@link Connection}, which should be received from + * @param connection A database {@link Connection}, which should be received from * the {@link ConnectionBuilder#getConnection} * @implSpec Use {@code IF EXISTS}, to ensure that it doesn't throw an {@link Exception}. */ void dropTable(Connection connection) throws SQLException; /** - * Set up the Empty Tables with the Schema. + * Set up the empty tables with the schema. * - * @param connection A Database {@link Connection}, which should be received from + * @param connection A database {@link Connection}, which should be received from * the {@link ConnectionBuilder#getConnection} */ void setupTable(Connection connection) throws SQLException; /** - * Loads all Model specific Data to the Database. + * Loads all model specific data to the database. * - * @return A Map of Models with a {@link String} key, to be used by other {@link Fixture} + * @return A map of models with a {@link String} key, to be used by other {@link Fixture} * @implSpec The {@link de.hitec.nhplus.datastorage.Dao Dao} should be received * from {@link de.hitec.nhplus.datastorage.DaoFactory DaoFactory}. */ diff --git a/src/main/java/de/hitec/nhplus/fixtures/Fixtures.java b/src/main/java/de/hitec/nhplus/fixtures/Fixtures.java index d179ad5..faa0dab 100644 --- a/src/main/java/de/hitec/nhplus/fixtures/Fixtures.java +++ b/src/main/java/de/hitec/nhplus/fixtures/Fixtures.java @@ -7,7 +7,7 @@ import java.sql.Connection; import java.util.Map; /** - * A Class, Implementing an Entrypoint({@link #main}), for loading a Specific set of Data. + * A class, implementing an entrypoint({@link #main}), for loading a specific set of data. * * @author Dominik Säume * @version 1.0 @@ -15,7 +15,7 @@ import java.util.Map; public class Fixtures { /** - * An Entrypoint, for loading a Specific set of Data. + * An entrypoint, for loading a specific set of data. * * @param args unused. */ diff --git a/src/main/java/de/hitec/nhplus/fixtures/MedicationFixture.java b/src/main/java/de/hitec/nhplus/fixtures/MedicationFixture.java index 719e53c..7ad66fd 100644 --- a/src/main/java/de/hitec/nhplus/fixtures/MedicationFixture.java +++ b/src/main/java/de/hitec/nhplus/fixtures/MedicationFixture.java @@ -5,6 +5,7 @@ import de.hitec.nhplus.datastorage.DaoFactory; import de.hitec.nhplus.medication.Ingredient; import de.hitec.nhplus.medication.Medication; import de.hitec.nhplus.medication.database.MedicationDao; +import de.hitec.nhplus.treatment.Treatment; import java.io.InputStream; import java.nio.charset.StandardCharsets; @@ -12,7 +13,11 @@ import java.sql.Connection; import java.sql.SQLException; import java.util.*; - +/** + * {@link Fixture} for {@link Medication}. + * + * @author Dominik Säume + */ public class MedicationFixture implements Fixture { private static final String SCHEMA = "/de/hitec/nhplus/medication/database/Medication.sql"; private static final String INGREDIENT_SCHEMA = "/de/hitec/nhplus/medication/database/Medication_Ingredient.sql"; diff --git a/src/main/java/de/hitec/nhplus/fixtures/NurseFixture.java b/src/main/java/de/hitec/nhplus/fixtures/NurseFixture.java index 7c2d98a..3ef6972 100644 --- a/src/main/java/de/hitec/nhplus/fixtures/NurseFixture.java +++ b/src/main/java/de/hitec/nhplus/fixtures/NurseFixture.java @@ -4,6 +4,7 @@ import de.hitec.nhplus.Main; import de.hitec.nhplus.datastorage.DaoFactory; import de.hitec.nhplus.nurse.Nurse; import de.hitec.nhplus.nurse.database.NurseDao; +import de.hitec.nhplus.treatment.Treatment; import java.io.InputStream; import java.nio.charset.StandardCharsets; @@ -11,6 +12,11 @@ import java.sql.Connection; import java.sql.SQLException; import java.util.*; +/** + * {@link Fixture} for {@link Nurse}. + * + * @author Dominik Säume + */ public class NurseFixture implements Fixture { @Override public void dropTable(Connection connection) throws SQLException { diff --git a/src/main/java/de/hitec/nhplus/fixtures/PatientFixture.java b/src/main/java/de/hitec/nhplus/fixtures/PatientFixture.java index 372a832..529ee96 100644 --- a/src/main/java/de/hitec/nhplus/fixtures/PatientFixture.java +++ b/src/main/java/de/hitec/nhplus/fixtures/PatientFixture.java @@ -4,6 +4,7 @@ import de.hitec.nhplus.Main; import de.hitec.nhplus.datastorage.DaoFactory; import de.hitec.nhplus.patient.Patient; import de.hitec.nhplus.patient.database.PatientDao; +import de.hitec.nhplus.treatment.Treatment; import java.io.InputStream; import java.nio.charset.StandardCharsets; @@ -13,6 +14,11 @@ import java.util.*; import static de.hitec.nhplus.utils.DateConverter.convertStringToLocalDate; +/** + * {@link Fixture} for {@link Patient}. + * + * @author Dominik Säume + */ public class PatientFixture implements Fixture { @Override public void dropTable(Connection connection) throws SQLException { diff --git a/src/main/java/de/hitec/nhplus/fixtures/TreatmentFixture.java b/src/main/java/de/hitec/nhplus/fixtures/TreatmentFixture.java index cd2b7dc..4d00483 100644 --- a/src/main/java/de/hitec/nhplus/fixtures/TreatmentFixture.java +++ b/src/main/java/de/hitec/nhplus/fixtures/TreatmentFixture.java @@ -15,6 +15,12 @@ import java.util.*; import static de.hitec.nhplus.utils.DateConverter.convertStringToLocalDate; import static de.hitec.nhplus.utils.DateConverter.convertStringToLocalTime; + +/** + * {@link Fixture} for {@link Treatment}. + * + * @author Dominik Säume + */ public class TreatmentFixture implements Fixture { private final Map patientsByName; diff --git a/src/main/java/de/hitec/nhplus/main/MainWindowController.java b/src/main/java/de/hitec/nhplus/main/MainWindowController.java index 5c70576..1c67c4f 100644 --- a/src/main/java/de/hitec/nhplus/main/MainWindowController.java +++ b/src/main/java/de/hitec/nhplus/main/MainWindowController.java @@ -11,6 +11,12 @@ import javafx.scene.layout.BorderPane; import java.io.IOException; import java.util.Objects; +/** + * Controller for the main window of the application, which holds all tabs. + * + * @author Bernd Heideman + * @author Dominik Säume + */ public class MainWindowController { @FXML private TabPane mainTabPane; @@ -42,6 +48,9 @@ public class MainWindowController { medicationTab.setOnSelectionChanged(event -> loadMedicationPage()); } + /** + * Loads the patient page into its tab. + */ private void loadPatientPage() { try { BorderPane patientsPane = FXMLLoader.load( @@ -57,6 +66,9 @@ public class MainWindowController { } } + /** + * Loads the treatment page into its tab. + */ private void loadTreatmentsPage() { try { BorderPane treatmentsPane = FXMLLoader.load( @@ -72,6 +84,9 @@ public class MainWindowController { } } + /** + * Loads the nurse page into its tab. + */ private void loadNursePage() { try { BorderPane nursePane = FXMLLoader.load( @@ -87,6 +102,9 @@ public class MainWindowController { } } + /** + * Loads the medication page into its tab. + */ private void loadMedicationPage() { try { BorderPane medicationPane = FXMLLoader.load( diff --git a/src/main/java/de/hitec/nhplus/main/Person.java b/src/main/java/de/hitec/nhplus/main/Person.java index d91e2b1..9d97fc9 100644 --- a/src/main/java/de/hitec/nhplus/main/Person.java +++ b/src/main/java/de/hitec/nhplus/main/Person.java @@ -2,6 +2,12 @@ package de.hitec.nhplus.main; import javafx.beans.property.SimpleStringProperty; +/** + * A simple base model for a {@link Person} that can be extended. + * + * @author Bernd Heideman + * @author Dominik Säume + */ public abstract class Person { private final SimpleStringProperty firstName; private final SimpleStringProperty surName; diff --git a/src/main/java/de/hitec/nhplus/utils/DateConverter.java b/src/main/java/de/hitec/nhplus/utils/DateConverter.java index a4f43f9..c16bb83 100644 --- a/src/main/java/de/hitec/nhplus/utils/DateConverter.java +++ b/src/main/java/de/hitec/nhplus/utils/DateConverter.java @@ -4,23 +4,44 @@ import java.time.LocalDate; import java.time.LocalTime; import java.time.format.DateTimeFormatter; +/** + * A utility class that holds utility methods for date conversion. + * + * @author Bernd Heideman + */ public class DateConverter { private static final String DATE_FORMAT = "yyyy-MM-dd"; private static final String TIME_FORMAT = "HH:mm"; + /** + * @param date A date {@link String} in the format: yyyy-MM-dd. + * @return The converted date {@link String} as {@link LocalDate}. + */ public static LocalDate convertStringToLocalDate(String date) { return LocalDate.parse(date, DateTimeFormatter.ofPattern(DATE_FORMAT)); } + /** + * @param time A time {@link String} in the format: HH:mm. + * @return The converted time {@link String} as {@link LocalTime}. + */ public static LocalTime convertStringToLocalTime(String time) { return LocalTime.parse(time, DateTimeFormatter.ofPattern(TIME_FORMAT)); } + /** + * @param date A {@link LocalDate} which should be converted to a {@link String}. + * @return The converted {@link LocalDate} in the format: yyy-MM-dd. + */ public static String convertLocalDateToString(LocalDate date) { return date.format(DateTimeFormatter.ofPattern(DATE_FORMAT)); } + /** + * @param time A {@link LocalTime} which should be converted to a {@link String}. + * @return The converted {@link LocalTime} in the format: HH:mm. + */ public static String convertLocalTimeToString(LocalTime time) { return time.format(DateTimeFormatter.ofPattern(TIME_FORMAT)); } diff --git a/src/main/java/de/hitec/nhplus/utils/Validator.java b/src/main/java/de/hitec/nhplus/utils/Validator.java index 4fdddd9..7931700 100644 --- a/src/main/java/de/hitec/nhplus/utils/Validator.java +++ b/src/main/java/de/hitec/nhplus/utils/Validator.java @@ -5,17 +5,34 @@ import javafx.scene.control.Alert; import java.time.LocalDate; import java.time.LocalTime; -public class Validator -{ - public static void showValidationError(String type){ +/** + * A utility class for validating all kinds of data. + * + * @author Dominik Säume + * @author Ole Kück + */ +public class Validator { + + /** + * Shows a modal with a specific validation error. + * + * @param type The type for which a validation error should be shown as {@link String}. + */ + public static void showValidationError(String type) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Error"); alert.setHeaderText(null); alert.setContentText("Invalid " + type + " !"); alert.showAndWait(); } + + /** + * Validate that a {@link String} is a valid date. + * + * @param text The date {@link String} to validate. + */ public static boolean isValidDate(String text) { - if(text.isBlank()){ + if (text.isBlank()) { return false; } try { @@ -25,8 +42,14 @@ public class Validator } return true; } + + /** + * Validate that a {@link LocalDate} is a valid date for storage in the database. + * + * @param date The {@link LocalDate} to validate. + */ public static boolean isValidDate(LocalDate date) { - if(date == null){ + if (date == null) { return false; } try { @@ -36,21 +59,34 @@ public class Validator } return true; } - public static boolean isValidTime(String text){ - if(text.isBlank()){ + + /** + * Validate that a {@link String} is a valid time. + * + * @param text The time {@link String} to validate. + */ + public static boolean isValidTime(String text) { + if (text.isBlank()) { return false; } try { DateConverter.convertStringToLocalTime(text); - }catch (Exception exception){ + } catch (Exception exception) { return false; } return true; } - public static boolean isValidTimeRange(String start, String end){ - if( - !isValidTime(start) || !isValidTime(end) - ){ + + /** + * Validate that two time {@link String}s are a valid time range. + * + * @param start The starting time {@link String}. + * @param end The ending time {@link String}. + */ + public static boolean isValidTimeRange(String start, String end) { + if ( + !isValidTime(start) || !isValidTime(end) + ) { return false; } LocalTime startTime = DateConverter.convertStringToLocalTime(start); @@ -59,24 +95,57 @@ public class Validator } - public static boolean isValidDescription(String text) { - return !text.isBlank(); - } - public static boolean isValidFirstName(String text){ - return !text.isBlank(); - } - public static boolean isValidSurName(String text){ - return !text.isBlank(); - } - public static boolean isValidPhoneNumber(String text){ - return !text.isBlank(); - } - public static boolean isValidCareLevel(String text){ - return !text.isBlank(); - } - public static boolean isValidRoomNumber(String text){ + /** + * Validate that a {@link String} is a valid description. + * + * @param text The {@link String} to validate. + */ + public static boolean isValidDescription(String text) { return !text.isBlank(); } + /** + * Validate that a {@link String} is a valid first name. + * + * @param text The {@link String} to validate. + */ + public static boolean isValidFirstName(String text) { + return !text.isBlank(); + } + + /** + * Validate that a {@link String} is a valid surname. + * + * @param text The {@link String} to validate. + */ + public static boolean isValidSurName(String text) { + return !text.isBlank(); + } + + /** + * Validate that a {@link String} is a valid phone number. + * + * @param text The {@link String} to validate. + */ + public static boolean isValidPhoneNumber(String text) { + return !text.isBlank(); + } + + /** + * Validate that a {@link String} is a valid care level. + * + * @param text The {@link String} to validate. + */ + public static boolean isValidCareLevel(String text) { + return !text.isBlank(); + } + + /** + * Validate that a {@link String} is a valid room number. + * + * @param text The {@link String} to validate. + */ + public static boolean isValidRoomNumber(String text) { + return !text.isBlank(); + } } -