aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2018-05-24 15:14:33 +0200
committerTharre <tharre3@gmail.com>2018-05-24 15:44:40 +0200
commit2cb71544b5306b3ad0bde74509000ede208f6faf (patch)
tree26f3800f5376410c1f801ca35ce26864cb8fc583 /src/main/java
parent9c60ec80f47fa87d4f339d97c21eb1724b66d5c7 (diff)
downloadsepm-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')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dto/Operation.java1
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java17
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java3
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);