aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/VehicleService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/VehicleService.java')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/VehicleService.java49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/VehicleService.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/VehicleService.java
new file mode 100644
index 0000000..f8e303d
--- /dev/null
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/VehicleService.java
@@ -0,0 +1,49 @@
+package at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.service;
+
+import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidVehicleException;
+import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;
+import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Vehicle;
+import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Vehicle.Status;
+import java.util.EnumSet;
+import java.util.Set;
+
+public interface VehicleService {
+
+ /**
+ * Add given vehicle to the store.
+ *
+ * @param vehicle that should be added to the store
+ * @return the id that was assigned
+ * @throws InvalidVehicleException if the vehicle is invalid
+ * @throws ServiceException if the vehicle could not be persisted
+ */
+ long add(Vehicle vehicle) throws InvalidVehicleException, ServiceException;
+
+ /**
+ * Update the given vehicle.
+ *
+ * @param vehicle that should be updated
+ * @return the updated vehicle
+ * @throws InvalidVehicleException if the vehicle is invalid
+ * @throws ServiceException if the updated vehicle could not be persisted
+ */
+ Vehicle update(Vehicle vehicle) throws InvalidVehicleException, ServiceException;
+
+ /**
+ * Get all stored vehicles with matching status.
+ *
+ * @param statuses set containing all statuses that should be matched
+ * @return list containing all stored vehicles
+ * @throws ServiceException if loading the stored vehicles failed
+ */
+ Set<Vehicle> list(EnumSet<Status> statuses) throws ServiceException;
+
+ /**
+ * Remove vehicle with the given id from the store.
+ *
+ * @param id of the vehicle that should be removed
+ * @throws InvalidVehicleException if given vehicle id is invalid or does not exist
+ * @throws ServiceException if the vehicle could not be removed from the store
+ */
+ void remove(long id) throws InvalidVehicleException, ServiceException;
+}