From 769e315f6c26ea0403056f557d06ffca3ed02db2 Mon Sep 17 00:00:00 2001 From: Julian Dehne <julian.dehne@uni-potsdam.de> Date: Mon, 23 Jul 2018 12:24:56 +0200 Subject: [PATCH] feat: added better logging to activities Test --- .../unipotsdam/gf/assignments/Assignee.java | 15 ++++ .../gf/assignments/NotImplementedLogger.java | 69 +++++++++++++++++++ .../gf/config/GFDatabaseConfig.java | 4 +- .../gf/interfaces/ICommunication.java | 5 +- .../gf/interfaces/IGroupFinding.java | 1 + .../unipotsdam/gf/interfaces/IJournal.java | 13 ++-- .../gf/interfaces/IPeerAssessment.java | 3 +- .../service/PeerAssessmentDummy.java | 5 +- .../service/CommunicationDummyService.java | 27 +++++--- .../groupfinding/DummyGroupfinding.java | 16 +++-- .../gf/modules/journal/DummyJournalImpl.java | 23 ++++--- .../peer2peerfeedback/DummyFeedback.java | 8 ++- .../DummyResearchReportManagement.java | 11 ++- .../ResearchReportManagement.java | 10 +-- 14 files changed, 163 insertions(+), 47 deletions(-) create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/assignments/Assignee.java create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/assignments/NotImplementedLogger.java diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/assignments/Assignee.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/assignments/Assignee.java new file mode 100644 index 00000000..3e3df152 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/assignments/Assignee.java @@ -0,0 +1,15 @@ +package unipotsdam.gf.assignments; + + public enum Assignee { + AXEL, + CHRISTIAN, + KATHARINA, + LUDWIG, + MARTIN, + MIRJAM, + QUARK, + SVEN, + THOMAS + + +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/assignments/NotImplementedLogger.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/assignments/NotImplementedLogger.java new file mode 100644 index 00000000..67e379f9 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/assignments/NotImplementedLogger.java @@ -0,0 +1,69 @@ +package unipotsdam.gf.assignments; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import unipotsdam.gf.modules.communication.view.CommunicationView; +import unipotsdam.gf.modules.researchreport.ResearchReportManagement; + +import java.util.HashMap; +import java.util.concurrent.ConcurrentHashMap; + +public class NotImplementedLogger { + + private static final Logger log = LoggerFactory.getLogger(NotImplementedLogger.class); + private static final ConcurrentHashMap<String, Boolean> messagesSend = new ConcurrentHashMap<String, Boolean>(); + + public static synchronized void logAssignment(Assignee assignee, Class element) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(assignee.name()); + stringBuilder.append(": Please implement "); + stringBuilder.append(element); + String result = stringBuilder.toString(); + + if (!getMessageMap().keySet().contains(result)) { + log.info(result); + } + messagesSend.put(result, true); + } + + public static synchronized void logAssignment(Assignee assignee, Class element, String fakeMessage) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(assignee.name()); + stringBuilder.append(": Please implement "); + stringBuilder.append(element + "\n"); + stringBuilder.append("process: " + fakeMessage + "\n"); + String result = stringBuilder.toString(); + + if (!getMessageMap().keySet().contains(result)) { + log.info(result); + } + messagesSend.put(result, true); + } + + + + public static void logAssignment(Assignee assignee, Class className, String method, String fakeMessage) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(assignee.name()); + stringBuilder.append(": Please implement "); + stringBuilder.append(className.getCanonicalName()); + stringBuilder.append(":"); + stringBuilder.append(method); + stringBuilder.append("\n"); + stringBuilder.append(fakeMessage); + String result = stringBuilder.toString(); + + if (!getMessageMap().keySet().contains(result)) { + log.info(result); + } + messagesSend.put(result, true); + } + + public static synchronized ConcurrentHashMap<String, Boolean> getMessageMap() { + if (messagesSend == null) { + return new ConcurrentHashMap<String, Boolean>(); + } + return messagesSend; + } + +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFDatabaseConfig.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFDatabaseConfig.java index 25290510..cefe2e28 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFDatabaseConfig.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFDatabaseConfig.java @@ -7,7 +7,7 @@ public class GFDatabaseConfig { public static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; public static final String DB_URL = "jdbc:mysql://localhost"; // Database credentials - public static final String USER = "root"; - public static final String PASS = ""; + public static final String USER = "root2"; + public static final String PASS = "voyager2"; public static final String DB_NAME = "fltrail"; } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java index 3370fa65..2705893f 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java @@ -2,6 +2,7 @@ package unipotsdam.gf.interfaces; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.modules.communication.model.Message; import unipotsdam.gf.modules.communication.model.chat.ChatMessage; import unipotsdam.gf.modules.communication.model.chat.ChatRoom; @@ -23,7 +24,7 @@ public interface ICommunication { List<ChatMessage> getChatHistory(String roomId); - boolean sendMessageToChat(Message message, String roomId); + boolean sendMessageToChat(Message message, String roomId) ; /** * endpoint: https://rocket.chat/docs/developer-guides/rest-api/groups/create/ @@ -45,7 +46,7 @@ public interface ICommunication { */ boolean addUserToChatRoom(String roomId, User user); - boolean removeUserFromChatRoom(User user, String roomId); + boolean removeUserFromChatRoom(User user, String roomId) ; /** * endpoint: https://rocket.chat/docs/developer-guides/rest-api/groups/settopic/ diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IGroupFinding.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IGroupFinding.java index f776d8f2..9b7f6705 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IGroupFinding.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IGroupFinding.java @@ -2,6 +2,7 @@ package unipotsdam.gf.interfaces; import unipotsdam.gf.core.management.group.Group; import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.modules.groupfinding.GroupFormationMechanism; import unipotsdam.gf.modules.groupfinding.GroupfindingCriteria; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java index 8f11eec4..6630d9f8 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IJournal.java @@ -3,6 +3,7 @@ package unipotsdam.gf.interfaces; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; import unipotsdam.gf.modules.journal.model.Journal; import unipotsdam.gf.modules.researchreport.ResearchReport; @@ -22,27 +23,27 @@ public interface IJournal { * @param student StudentIdentifier * @return the journal as String (may change) */ - String exportJournal (StudentIdentifier student); + String exportJournal (StudentIdentifier student) ; /** * check if all students have prepared their portfolios to be evaluated * @return * @param project */ - Boolean getPortfoliosForEvaluationPrepared(Project project); + Boolean getPortfoliosForEvaluationPrepared(Project project) ; /** * find out, who hasn't prepared their portfolio for evaluation and send message or highlight in view * @param project */ - void assignMissingPortfolioTasks(Project project); + void assignMissingPortfolioTasks(Project project) ; /** * after user has uploaded a journal entry this function is called * @param journalEntry * @param student */ - void uploadJournalEntry(Journal journalEntry, User student); + void uploadJournalEntry(Journal journalEntry, User student) ; /** * persist final portfolio for assessment @@ -53,12 +54,12 @@ public interface IJournal { * @param presentation */ void uploadFinalPortfolio(Project project, List<Journal> journalEntries, ResearchReport finalResearchReport, File - presentation, User user); + presentation, User user) ; /** * * @param project * @return */ - HTML getFinalPortfolioForAssessment(Project project, User user); + HTML getFinalPortfolioForAssessment(Project project, User user) ; } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java index 07ccd75f..e204835e 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java @@ -1,5 +1,6 @@ package unipotsdam.gf.interfaces; +import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.modules.assessment.QuizAnswer; import unipotsdam.gf.modules.assessment.controller.model.*; @@ -32,7 +33,7 @@ public interface IPeerAssessment { * * @param studentAndQuiz */ - void createQuiz(StudentAndQuiz studentAndQuiz); + void createQuiz(StudentAndQuiz studentAndQuiz) ; /** * calculate grades for everyone in a list. diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java index 368c39df..fced4060 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java @@ -1,5 +1,7 @@ package unipotsdam.gf.modules.assessment.controller.service; +import unipotsdam.gf.assignments.Assignee; +import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.interfaces.IPeerAssessment; import unipotsdam.gf.modules.assessment.QuizAnswer; import unipotsdam.gf.modules.assessment.controller.model.*; @@ -67,7 +69,7 @@ public class PeerAssessmentDummy implements IPeerAssessment { @Override public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) { - + NotImplementedLogger.logAssignment(Assignee.AXEL, IPeerAssessment.class); } @Override @@ -81,6 +83,7 @@ public class PeerAssessmentDummy implements IPeerAssessment { @Override public void createQuiz(StudentAndQuiz studentAndQuiz) { + NotImplementedLogger.logAssignment(Assignee.AXEL, PeerAssessmentDummy.class); } @Override diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java index c9c17f71..1aa5c32f 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java @@ -4,6 +4,8 @@ import unipotsdam.gf.config.Constants; import unipotsdam.gf.core.management.Management; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.assignments.Assignee; +import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.interfaces.ICommunication; import unipotsdam.gf.modules.communication.model.Message; import unipotsdam.gf.modules.communication.model.chat.ChatMessage; @@ -39,7 +41,8 @@ public class CommunicationDummyService implements ICommunication { @Override public boolean sendMessageToChat(Message message, String roomId) { - return true; + NotImplementedLogger.logAssignment(Assignee.MARTIN, CommunicationDummyService.class); + return false; } @Override @@ -52,18 +55,22 @@ public class CommunicationDummyService implements ICommunication { } @Override - public boolean addUserToChatRoom(String roomId, User user) { - return true; + public boolean addUserToChatRoom(String roomId, User user) { + NotImplementedLogger.logAssignment(Assignee.MARTIN, CommunicationDummyService.class, "addUserToChatRoom"); + return false; } @Override - public boolean removeUserFromChatRoom(User user, String roomId) { - return true; + public boolean removeUserFromChatRoom(User user, String roomId) { + NotImplementedLogger.logAssignment(Assignee.MARTIN, CommunicationDummyService.class, "removing user from chat " + + "room"); + return false; } @Override public boolean setChatRoomTopic(String roomId, String topic) { - return true; + NotImplementedLogger.logAssignment(Assignee.MARTIN, CommunicationDummyService.class, "setting chat room topic"); + return false; } @Override @@ -102,15 +109,17 @@ public class CommunicationDummyService implements ICommunication { } @Override - public void sendSingleMessage(Message message, User user) { + public void sendSingleMessage(Message message, User user) { // TODO implement as email or directed message, popup after login or whatever - System.out.println("sending email with message: "+ message.getMessage() + " to: "+ user.getEmail()); + String message2 = "sending email with message: "+ message.getMessage() + " to: "+ user.getEmail(); + NotImplementedLogger.logAssignment(Assignee.MARTIN, CommunicationDummyService.class, message2); } @Override public void sendMessageToUsers(Project project, String message) { // TODO implement as email or directed message, popup after login or whatever - System.out.println("sending email with message: "+ message + " to: "+ project.getId()); + String message2 = "sending email with message: "+ message + " to: "+ project.getId(); + NotImplementedLogger.logAssignment(Assignee.MARTIN, CommunicationDummyService.class, message2); } // TODO: remove after done implementing diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/DummyGroupfinding.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/DummyGroupfinding.java index 1afe5314..c7f3f457 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/DummyGroupfinding.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/DummyGroupfinding.java @@ -2,29 +2,33 @@ package unipotsdam.gf.modules.groupfinding; import unipotsdam.gf.core.management.group.Group; import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.assignments.Assignee; +import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.interfaces.IGroupFinding; +import java.util.ArrayList; import java.util.List; public class DummyGroupfinding implements IGroupFinding { @Override - public void selectGroupfindingCriteria(GroupfindingCriteria groupfindingCriteria) { - + public void selectGroupfindingCriteria(GroupfindingCriteria groupfindingCriteria) { + NotImplementedLogger.logAssignment(Assignee.MIRJAM, IGroupFinding.class); } @Override public void persistGroups( - List<Group> groupComposition, Project project) { - + List<Group> groupComposition, Project project){ + NotImplementedLogger.logAssignment(Assignee.MIRJAM, IGroupFinding.class); } @Override public List<Group> getGroups(Project project) { - return null; + NotImplementedLogger.logAssignment(Assignee.MIRJAM, IGroupFinding.class); + return new ArrayList<>(); } @Override public void formGroups(GroupFormationMechanism groupFindingMechanism) { - + NotImplementedLogger.logAssignment(Assignee.MIRJAM, IGroupFinding.class); } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/DummyJournalImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/DummyJournalImpl.java index ea5bc7e4..6ea1ea35 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/DummyJournalImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/DummyJournalImpl.java @@ -4,6 +4,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.assignments.Assignee; +import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.interfaces.IJournal; import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; import unipotsdam.gf.modules.journal.model.Journal; @@ -19,39 +21,38 @@ public class DummyJournalImpl implements IJournal { private Logger log = LoggerFactory.getLogger(DummyJournalImpl.class); @Override - public String exportJournal(StudentIdentifier student) { - // TODO Impl was macht das hier? - + public String exportJournal(StudentIdentifier student) { + NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class); return null; } @Override - public Boolean getPortfoliosForEvaluationPrepared(Project project) { - - log.debug("checking fake constraints for the portfolio evaluation"); + public Boolean getPortfoliosForEvaluationPrepared(Project project) { + NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class); return false; } @Override public void assignMissingPortfolioTasks(Project project) { - log.debug("assigning fake MissingPortfolioTasks"); + NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class); } @Override public void uploadJournalEntry(Journal journalEntry, User student) { - + NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class); } @Override public void uploadFinalPortfolio( Project project, List<Journal> journalEntries, ResearchReport finalResearchReport, File presentation, - User user) { - + User user) { + NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class); } @Override public HTML getFinalPortfolioForAssessment( - Project project, User user) { + Project project, User user) { + NotImplementedLogger.logAssignment(Assignee.THOMAS, IJournal.class); return null; } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java index c24769c3..b8098beb 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/peer2peerfeedback/DummyFeedback.java @@ -3,6 +3,8 @@ package unipotsdam.gf.modules.peer2peerfeedback; import org.mockito.Mockito; import uk.co.jemos.podam.api.PodamFactory; import uk.co.jemos.podam.api.PodamFactoryImpl; +import unipotsdam.gf.assignments.Assignee; +import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.interfaces.Feedback; @@ -49,13 +51,15 @@ public class DummyFeedback implements Feedback { @Override public Boolean checkFeedbackConstraints(Project project) { // TODO implement cornstaints - System.out.println("Checking fake constraints"); + NotImplementedLogger.logAssignment(Assignee.KATHARINA, Feedback.class, "check Feedback constraints", + "checking feedback constraints "); return missingTaskAssigned; } @Override public void assigningMissingFeedbackTasks(Project project) { - System.out.println("assigning fake tasks"); + NotImplementedLogger.logAssignment(Assignee.KATHARINA, Feedback.class, "assigningMissingFeedbackTasks", + "assigning feedback tasks "); missingTaskAssigned = true; } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/DummyResearchReportManagement.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/DummyResearchReportManagement.java index 7f7c0967..b383fe36 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/DummyResearchReportManagement.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/DummyResearchReportManagement.java @@ -4,6 +4,8 @@ import uk.co.jemos.podam.api.PodamFactory; import uk.co.jemos.podam.api.PodamFactoryImpl; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.assignments.Assignee; +import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.interfaces.Feedback; import javax.inject.Inject; @@ -37,24 +39,27 @@ public class DummyResearchReportManagement implements ResearchReportManagement { } @Override - public boolean updateResearchReport(ResearchReport researchReport) { + public boolean updateResearchReport(ResearchReport researchReport) { + NotImplementedLogger.logAssignment(Assignee.QUARK, ResearchReportManagement.class, null, "updateResearchReport"); return false; } @Override - public boolean deleteReport(ResearchReport researchReport) { + public boolean deleteReport(ResearchReport researchReport) { + NotImplementedLogger.logAssignment(Assignee.QUARK, ResearchReportManagement.class); return false; } @Override public File getResearchReport(ResearchReport researchReport) { + NotImplementedLogger.logAssignment(Assignee.QUARK, ResearchReportManagement.class); return null; } @Override public void createFinalResearchReport( ResearchReport researchReport, Project project, User student) { - + NotImplementedLogger.logAssignment(Assignee.QUARK, ResearchReportManagement.class); } @Override diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/ResearchReportManagement.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/ResearchReportManagement.java index edcce596..c2226c52 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/ResearchReportManagement.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/researchreport/ResearchReportManagement.java @@ -2,6 +2,7 @@ package unipotsdam.gf.modules.researchreport; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.interfaces.Feedback; import java.io.File; @@ -31,14 +32,14 @@ public interface ResearchReportManagement { * @param researchReport Name of the Report * @return Returns if the report is updated */ - boolean updateResearchReport(ResearchReport researchReport); + boolean updateResearchReport(ResearchReport researchReport) ; /** * Delete a File * * @param researchReport Name of the Report */ - boolean deleteReport(ResearchReport researchReport); + boolean deleteReport(ResearchReport researchReport) ; /** @@ -46,7 +47,7 @@ public interface ResearchReportManagement { * @param researchReport Name of the Report * @return Returns the Report */ - File getResearchReport(ResearchReport researchReport); + File getResearchReport(ResearchReport researchReport) ; /** @@ -57,7 +58,8 @@ public interface ResearchReportManagement { * @param project * @param student */ - void createFinalResearchReport(ResearchReport researchReport, Project project, User student); + void createFinalResearchReport(ResearchReport researchReport, Project project, User student) + ; /** * the dependency to feedback should be settable externally for test reasons -- GitLab