aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2018-06-20 22:07:36 +0200
committerTharre <tharre3@gmail.com>2018-06-20 22:07:36 +0200
commit0c995a05985da749d93aa56eba976c7fc621a4fa (patch)
tree5b80394920705aae5e2b6004c3dfbd839c8b8fa3 /src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java
parentf5bc7925a8fbbe247972a6f0e0571cc7e92fbefa (diff)
parente21feb3ac772a5394dc5381b58142c3c061de716 (diff)
downloadsepm-groupproject-master.tar.gz
sepm-groupproject-master.tar.xz
sepm-groupproject-master.zip
Merge branch 'develop'HEADv3.0master
Diffstat (limited to 'src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java114
1 files changed, 0 insertions, 114 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java
deleted file mode 100644
index 61a24e5..0000000
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service;
-
-import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.VehicleDAO;
-import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle;
-import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.ConstructionType;
-import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.Status;
-import at.ac.tuwien.sepm.assignment.groupphase.exception.ElementNotFoundException;
-import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidVehicleException;
-import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException;
-import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;
-import java.util.EnumSet;
-import java.util.Set;
-import java.util.stream.Collectors;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
-@Service
-public class VehicleServiceImpl implements VehicleService {
-
- private VehicleDAO vehiclePersistence;
-
- public VehicleServiceImpl(VehicleDAO vehiclePersistence) {
- this.vehiclePersistence = vehiclePersistence;
- }
-
- public long add(Vehicle vehicle) throws InvalidVehicleException, ServiceException {
- if (!CollectionUtils.isEmpty(vehicle.registrations()))
- throw new InvalidVehicleException("Vehicle can't be created with registrations");
-
- validateVehicle(vehicle);
- try {
- vehiclePersistence.add(vehicle);
- } catch (PersistenceException e) {
- throw new ServiceException(e);
- }
- return 0;
- }
-
- public Vehicle update(Vehicle vehicle) throws InvalidVehicleException, ServiceException {
- validateVehicle(vehicle);
- try {
- vehiclePersistence.update(vehicle);
- } catch (ElementNotFoundException e) {
- throw new ServiceException("Element not found");
- } catch (PersistenceException e) {
- throw new ServiceException(e);
- }
- return vehicle;
- }
-
- protected static void validateVehicle(Vehicle vehicle) throws InvalidVehicleException {
- switch (vehicle.type()) {
- case RTW:
- if (vehicle.constructionType() == ConstructionType.NORMAL) {
- throw new InvalidVehicleException("RTW darf kein Normales Dach haben");
- } else if (vehicle.constructionType() == ConstructionType.MITTELHOCHDACH) {
- throw new InvalidVehicleException("RTW darf kein Mittelhochdach haben");
- }
- break;
- case KTW:
- if (vehicle.constructionType() == ConstructionType.NORMAL) {
- throw new InvalidVehicleException("KTW darf kein Normales Dach haben");
- }
- break;
- case KTW_B:
- if (vehicle.constructionType() == ConstructionType.NORMAL) {
- throw new InvalidVehicleException("KTW-B darf kein Normales Dach haben");
- }
- break;
- case NEF:
- if (vehicle.constructionType() == ConstructionType.MITTELHOCHDACH) {
- throw new InvalidVehicleException("NEF darf kein Mittelhochdach haben");
- } else if (vehicle.constructionType() == ConstructionType.HOCHDACH) {
- throw new InvalidVehicleException("NEF darf kein Hochdach haben");
- }
- break;
- case NAH:
- if (vehicle.constructionType() == ConstructionType.MITTELHOCHDACH) {
- throw new InvalidVehicleException("NEF darf kein Mittelhochdach haben");
- } else if (vehicle.constructionType() == ConstructionType.HOCHDACH) {
- throw new InvalidVehicleException("NEF darf kein Hochdach haben");
- }
- break;
- case BKTW:
- break;
- default:
- throw new IllegalStateException("BUG: invalid vehicle type" + vehicle.type());
- }
- }
-
- @Override
- public Set<Vehicle> list(EnumSet<Status> statuses) throws ServiceException {
- if (statuses == null) {
- throw new ServiceException("statuses may not be null");
- }
-
- Set<Vehicle> vehicles;
-
- try {
- vehicles = vehiclePersistence.list();
- } catch (PersistenceException e) {
- throw new ServiceException(e);
- }
-
- return vehicles.stream()
- .filter(vehicle -> statuses.contains(vehicle.status()))
- .collect(Collectors.toSet());
- }
-
- @Override
- public void remove(long id) throws InvalidVehicleException, ServiceException {
- throw new UnsupportedOperationException();
- }
-}