diff options
author | Tharre <tharre3@gmail.com> | 2018-05-24 15:14:33 +0200 |
---|---|---|
committer | Tharre <tharre3@gmail.com> | 2018-05-24 15:44:40 +0200 |
commit | 2cb71544b5306b3ad0bde74509000ede208f6faf (patch) | |
tree | 26f3800f5376410c1f801ca35ce26864cb8fc583 /src/main/java/at/ac | |
parent | 9c60ec80f47fa87d4f339d97c21eb1724b66d5c7 (diff) | |
download | sepm-groupproject-2cb71544b5306b3ad0bde74509000ede208f6faf.tar.gz sepm-groupproject-2cb71544b5306b3ad0bde74509000ede208f6faf.tar.xz sepm-groupproject-2cb71544b5306b3ad0bde74509000ede208f6faf.zip |
Set severity inside OperationService.add() #25963
This avoids duplicate parsing in the UI or adding a
getSeverityFromOpcode() method to the interface.
Diffstat (limited to 'src/main/java/at/ac')
3 files changed, 12 insertions, 9 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dto/Operation.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dto/Operation.java index 7d91c88..3a97dc7 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dto/Operation.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dto/Operation.java @@ -26,6 +26,7 @@ public abstract class Operation { public abstract String opCode(); + @Nullable public abstract Severity severity(); public abstract Status status(); diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java index a89e3b1..3e811d4 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java @@ -49,6 +49,8 @@ public class OperationServiceImpl implements OperationService { public long add(Operation o) throws InvalidOperationException, ServiceException { if (o.created() != null) throw new InvalidOperationException("Created must not be set"); + if (o.severity() != null) throw new InvalidOperationException("Severity must not be set"); + if (o.status() != Status.ACTIVE) LOG.warn("Status was set but will be overridden"); // TODO: nullable instead?? @@ -61,7 +63,11 @@ public class OperationServiceImpl implements OperationService { validateOperation(o); return operationDAO.add( - o.toBuilder().created(Instant.now()).status(Status.ACTIVE).build()); + o.toBuilder() + .created(Instant.now()) + .severity(extractSeverityFromOpCode(o.opCode())) + .status(Status.ACTIVE) + .build()); } catch (PersistenceException e) { LOG.error("PersistenceException while adding operation: {}", e); throw new ServiceException(e); @@ -82,6 +88,10 @@ public class OperationServiceImpl implements OperationService { Operation o = operationDAO.get(operationId); validateOperation(o); + if (o.opCode().trim().isEmpty() + || extractSeverityFromOpCode(o.opCode()) != o.severity()) + throw new InvalidOperationException("Einsatzcode ist invalid"); + if (o.status() != Status.ACTIVE) throw new InvalidOperationException("Einsatz ist inaktiv"); @@ -210,11 +220,6 @@ public class OperationServiceImpl implements OperationService { private static void validateOperation(Operation o) throws InvalidOperationException { if (o.id() <= 0) throw new InvalidOperationException("Id is invalid"); - if (o.opCode().trim().isEmpty()) throw new InvalidOperationException("opCode is invalid"); - - if (extractSeverityFromOpCode(o.opCode()) != o.severity()) - throw new InvalidOperationException("Einsatzcode ist invalid"); - if (o.vehicles().isEmpty()) throw new InvalidOperationException( "Es muss mindestens ein Fahrzeug ausgewählt werden!"); diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java index 5222712..9debddf 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java @@ -1,7 +1,6 @@ package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.userInterface; import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Severity; import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Status; import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Registration; import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle; @@ -259,11 +258,9 @@ public class CreateOperationController { Operation.builder() .additionalInfo(txtNote.getText()) .destination(txtAddress.getText()) - .created(Instant.now()) .opCode(txtCode.getText()) .status(Status.ACTIVE) .vehicles(Set.of(vehicles)) - .severity(Severity.A) .build(); try { operationService.add(operation); |