NOTICKET: Finish Javadoc for de.hitec.nhplus.datastorage
All checks were successful
Quality Check / Linting Check (push) Successful in 12s
Quality Check / Javadoc Check (push) Successful in 20s

Signed-off-by: Dominik Säume <Dominik.Saeume@hmmh.de>
This commit is contained in:
Dominik Säume 2024-05-12 23:48:53 +02:00
parent 9de598ef67
commit 0ea3d92cc0
Signed by: SZUT-Dominik
GPG key ID: 67D15BB250B41E7C
3 changed files with 52 additions and 12 deletions

View file

@ -18,7 +18,7 @@ public interface Dao<T> {
/**
* Create a Database Entry from a Model object.
*
* @param t The Model instance.
* @param t The Model-Instance.
*/
void create(T t) throws SQLException;
@ -26,18 +26,19 @@ public interface Dao<T> {
* Read a Database Entry to a Model object.
*
* @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<T> readAll() throws SQLException;
/**
* 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;

View file

@ -23,7 +23,7 @@ public class DaoFactory {
}
/**
* @return The Singleton Instance.
* @return The Singleton Instance of {@link DaoFactory}.
*/
public static DaoFactory getInstance() {
if (DaoFactory.instance == null) {

View file

@ -20,8 +20,8 @@ public abstract class DaoImp<T> implements Dao<T> {
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;
@ -30,7 +30,7 @@ public abstract class DaoImp<T> implements Dao<T> {
/**
* 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 {
@ -41,6 +41,7 @@ public abstract class DaoImp<T> implements Dao<T> {
* Read a Database Entry to a Model object.
*
* @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 {
@ -54,6 +55,8 @@ public abstract class DaoImp<T> implements Dao<T> {
/**
* 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<T> readAll() throws SQLException {
@ -63,7 +66,7 @@ public abstract class DaoImp<T> implements Dao<T> {
/**
* 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 {
@ -80,17 +83,53 @@ public abstract class DaoImp<T> implements Dao<T> {
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<T> 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<T> 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;
}