From 43e0534a12c6044fad7a36bcb6e45cfafa1c58da Mon Sep 17 00:00:00 2001 From: Florian Lambers <fl462057@fh-muenster.de> Date: Mon, 8 Nov 2021 18:12:17 +0100 Subject: [PATCH] added wrapper classes --- .../migration/FlowChangeWrapper.java | 2 + .../rest/service/change/ChangeController.java | 85 ++++++++++++++++++- .../src/main/resources/migration.yaml | 1 + 3 files changed, 87 insertions(+), 1 deletion(-) diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/FlowChangeWrapper.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/FlowChangeWrapper.java index 29bcbd5..43f943a 100644 --- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/FlowChangeWrapper.java +++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/FlowChangeWrapper.java @@ -87,6 +87,8 @@ public class FlowChangeWrapper { dto.setFlowElement(flowElementDTO); MigrationResultDTO migrationResultDTO = new MigrationResultDTO(); + migrationResultDTO.setPriority(this.getMigrationResult().getPriority()); + migrationResultDTO.setPriority(this.getMigrationResult().getPriority()); migrationResultDTO.setStatus(this.getMigrationResult().getStatus().name()); diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java index bff32a1..dfdf51a 100644 --- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java +++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java @@ -135,10 +135,93 @@ public class ChangeController { // } matchingFlows = compareFlows(newFlowsElements, oldFlowsElements); -// System.out.println(matchingFlows); + System.out.println(matchingFlows); return "false"; } + private List<List<String>> compareFlows(List<List<String>> newFlowsElements, List<List<String>> oldFlowsElements) { + + + List <Integer> checkedFlowsOld = new ArrayList <Integer>(); + + List <String> checkedElements = new ArrayList <String>(); + + + //an Stelle [x][0] ist neuer Flow, [x][1] alter Flow, [x][2] Gemeinsamkeiten, [x][3] Unterschiede + String [][] matchingFlows = new String [newFlowsElements.size()][4]; + + + int currentNewFlow = 0; + + for (List newFlow: newFlowsElements) { + + int currentOldFlow = 0; + + + for (List oldFlow: oldFlowsElements) { + int similarities = 0; + int differences = 0; + + if(checkedFlowsOld.contains(currentOldFlow)); + + else { + + for (Object newFlowElement: newFlow) { + if((newFlowElement.toString().contains("Flow_"+currentNewFlow)&& newFlowElement.toString().length()==6) || checkedElements.contains(newFlowElement.toString())) {} + + else { + + for (Object oldFlowElement: oldFlow) { + + if((oldFlowElement.toString().contains("Flow_"+currentOldFlow)&& oldFlowElement.toString().length()==6) || checkedElements.contains(oldFlowElement.toString())) {} + + else { + if(newFlowElement.equals(oldFlowElement)) { + similarities++; + checkedElements.add(newFlowElement.toString()); + + } + + } + } + } + } + } + //berechnen der Elemente, die aus dem alten und neuen Flow nicht zueinander gepasst haben + differences = oldFlow.size()-similarities + newFlow.size()-similarities; + +// System.out.println("Neuer Flow: "+ currentNewFlow+ " ; alter Flow: "+currentOldFlow+" ; similarities: "+similarities + " ; difference: "+ differences); + + // falls aktuell übprüfte Flow alt und neu Kombination die meisten Gemeinsamkeiten haben oder noch nichts in matchingFlows gespeichert wurde + if(matchingFlows[currentNewFlow][2]==null || Integer.parseInt(matchingFlows[currentNewFlow][2])<similarities || + (Integer.parseInt(matchingFlows[currentNewFlow][2])==similarities && Integer.parseInt(matchingFlows[currentNewFlow][3])> differences)) { + +// System.out.println(currentNewFlow +" "+ currentOldFlow +" "+ similarities+ " "+ differences); + + matchingFlows[currentNewFlow][0] = "Flow_"+currentNewFlow; + matchingFlows[currentNewFlow][1] = "Flow_"+currentOldFlow; + matchingFlows[currentNewFlow][2] = Integer.toString(similarities); + matchingFlows[currentNewFlow][3] = Integer.toString(differences); +// System.out.println("checked: "+checkedElements + " "+ checkedElements.size()); + + } + checkedElements = new ArrayList <String>(); + + currentOldFlow++; + + } + + currentNewFlow++; + } + + for (int i=0; i<newFlowsElements.size();i++) { + System.out.println(matchingFlows[i][0]+" "+matchingFlows[i][1]+" "+matchingFlows[i][2]+" "+matchingFlows[i][3]); + + } + return null; + } + + @RequestMapping(path = "/project/{projectId}/migration/changes", method = RequestMethod.GET) public MigrationResultWrapperDTO detectChanges(@PathVariable(required = true) Long projectId) { //Annahme: Flows stimmen überein diff --git a/Testgenerator/src/main/resources/migration.yaml b/Testgenerator/src/main/resources/migration.yaml index 7ba751b..8781b0b 100644 --- a/Testgenerator/src/main/resources/migration.yaml +++ b/Testgenerator/src/main/resources/migration.yaml @@ -27,3 +27,4 @@ activity: priority: 0 manualTask: status: GREEN + priority: 0 \ No newline at end of file -- GitLab