Skip to content
Snippets Groups Projects
Commit fc8bea4b authored by Florian Lambers's avatar Florian Lambers
Browse files

added activity flags

parent 79532522
No related branches found
No related tags found
No related merge requests found
......@@ -2,43 +2,31 @@ package de.fhmuenster.masterthesis.Testgenerator.migration;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import javax.annotation.PostConstruct;
import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import de.fhmuenster.masterthesis.Testgenerator.rest.dto.MigrationResultWrapperDTO;
import de.fhmuenster.masterthesis.Testgenerator.rest.service.change.ChangeService;
import de.fhmuenster.masterthesis.Testgenerator.rest.service.test.TestService;
import de.fhmuenster.masterthesis.Testgenerator.yaml.MigrationResultStatus;
import de.fhmuenster.masterthesis.Testgenerator.yaml.MigrationYaml;
import de.fhmuenster.masterthesis.Testgenerator.yaml.YamlReader;
import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLSerializer;
import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement;
import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference;
import de.fhmuenster.masterthesis.testgeneratorDSL.ManualTaskFlowElement;
import de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement;
import de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement;
import de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement;
import de.fhmuenster.masterthesis.testgeneratorDSL.BusinessRuleTaskFlowElement;
import de.fhmuenster.masterthesis.testgeneratorDSL.Flag;
import de.fhmuenster.masterthesis.utils.TestgeneratorDSLUtils;
import org.camunda.bpm.model.bpmn.instance.SequenceFlow;
import org.camunda.bpm.model.bpmn.instance.ServiceTask;
import org.camunda.bpm.model.bpmn.instance.ManualTask;
@Service
public class MigrationService {
private MigrationYaml yaml;
@Autowired
private ChangeService changeService;
......@@ -54,7 +42,6 @@ public class MigrationService {
//Annahme: Flows sind identisch
MigrationResultWrapper migrationResultWrapper = new MigrationResultWrapper();
List<FlowChangeWrapper> result = new ArrayList<>();
// 1. Schritt: Prüfen, ob in einem Flow neue Elemente hinzugekommen sind
List<FlowChangeWrapper> activityAddActionResults = detectActivityAddActions(oldDSL.getFlows(), newDSL.getFlows());
......@@ -65,20 +52,18 @@ public class MigrationService {
System.out.println("+++ Neu: " + fcw.getFlowElement().getName() + " [" + fcw.getActionType() + "] in Flow " + fcw.getFlow().getName()
+ " mit Status: " + fcw.getMigrationResult().getPriority());
try {
newDSL.getFlow(fcw.getFlow().getName()).setFlag(Flag.YELLOW);
try {
Flag maxFlag = Flag.NONE;
List<FlowElementReference> fers = newDSL.getFlow(fcw.getFlow().getName()).getInclElements();
for(FlowElementReference fer : fers) {
fer.setFlag(Flag.GREEN);
System.out.println(fer.getRef().getName());
if(fer.getRef().getName().equals(fcw.getFlowElement().getName())) {
Flag newFlag = this.convertMigrationResultToFlag(fcw.getMigrationResult().getStatus());
fer.setFlag(newFlag);
maxFlag = this.calcMaxFlag(maxFlag, newFlag);
}
}
//newDSL.getFlow(fcw.getFlow().getName()).getInclElements().clear();
//newDSL.getFlow(fcw.getFlow().getName()).getInclElements().replaceAll(fers);
newDSL.getFlow(fcw.getFlow().getName()).setFlag(maxFlag);
newDSL.serialize();
} catch (IOException e) {
......@@ -220,4 +205,35 @@ public class MigrationService {
return globalPriority;
}
private Flag convertMigrationResultToFlag(MigrationResultStatus status) {
switch(status) {
case GREEN:
return Flag.GREEN;
case YELLOW:
return Flag.YELLOW;
case RED:
return Flag.RED;
default:
return Flag.GREEN;
}
}
private Flag calcMaxFlag(Flag currentFlag, Flag newFlag) {
if (currentFlag.equals(Flag.NONE) &&
(newFlag.equals(Flag.GREEN) || newFlag.equals(Flag.YELLOW) || newFlag.equals(Flag.RED))) {
return newFlag;
}
if (currentFlag.equals(Flag.GREEN) &&
(newFlag.equals(Flag.YELLOW) || newFlag.equals(Flag.RED))) {
return newFlag;
}
if (currentFlag.equals(Flag.YELLOW) &&
(newFlag.equals(Flag.RED))) {
return newFlag;
}
return currentFlag;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment