summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorViktoria Pundy <viktoria.pundy@aon.at>2018-05-02 22:08:25 +0200
committerViktoria Pundy <viktoria.pundy@aon.at>2018-05-06 18:12:30 +0200
commit3cf6a6ad7c46b82a77691f7c42e2e9b53967570c (patch)
treeb5abe112f739576d3501d977951f791aac886af1 /src/main
parent391eb6e5658eb1395befc736d7fea15678b69eff (diff)
downloadsepm-groupproject-3cf6a6ad7c46b82a77691f7c42e2e9b53967570c.tar.gz
sepm-groupproject-3cf6a6ad7c46b82a77691f7c42e2e9b53967570c.tar.xz
sepm-groupproject-3cf6a6ad7c46b82a77691f7c42e2e9b53967570c.zip
Added Vehicle DAO and Vehicle Service Impl, started implementing needed methods
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBOperationDAO.java17
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBVehicleDAO.java62
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java14
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java31
4 files changed, 114 insertions, 10 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBOperationDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBOperationDAO.java
index c68b795..7036a1b 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBOperationDAO.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBOperationDAO.java
@@ -4,6 +4,7 @@ import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation;
import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Status;
import at.ac.tuwien.sepm.assignment.groupphase.exception.ElementNotFoundException;
import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException;
+import at.ac.tuwien.sepm.assignment.groupphase.util.JDBCConnectionManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -13,12 +14,19 @@ import java.util.List;
public class DBOperationDAO implements OperationDAO {
+ private JDBCConnectionManager jdbcConnectionManager;
+
+ public DBOperationDAO(JDBCConnectionManager j) {
+ jdbcConnectionManager = j;
+ }
+
@Override
public long add(Operation operation) throws PersistenceException {
PreparedStatement pstmt = null;
try {
pstmt =
- H2Handler.getConnection()
+ jdbcConnectionManager
+ .getConnection()
.prepareStatement(
"INSERT INTO operation(opCode, severity, "
+ "created, destination, additionalInfo, status) values (?,?,?,?,?,?)");
@@ -84,7 +92,7 @@ public class DBOperationDAO implements OperationDAO {
ResultSet rs = pstmt.getGeneratedKeys();
if (rs.next()) return rs.getInt(1);
else throw new PersistenceException("Einsatz konnte nicht gespeichert werden");
- } catch (SQLException | ClassNotFoundException e) {
+ } catch (SQLException e) {
throw new PersistenceException(e);
} finally {
if (pstmt != null) {
@@ -117,7 +125,8 @@ public class DBOperationDAO implements OperationDAO {
PreparedStatement pstmt = null;
try {
pstmt =
- H2Handler.getConnection()
+ jdbcConnectionManager
+ .getConnection()
.prepareStatement(
"insert into VehicleOperation(vehicleId, operationId)"
+ "values (?,?)");
@@ -129,7 +138,7 @@ public class DBOperationDAO implements OperationDAO {
else
throw new PersistenceException(
"Fahrzeug für die Operation konnte nicht abgespeichert werden!");
- } catch (SQLException | ClassNotFoundException e) {
+ } catch (SQLException e) {
throw new PersistenceException(e);
} finally {
if (pstmt != null) {
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBVehicleDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBVehicleDAO.java
new file mode 100644
index 0000000..57a94de
--- /dev/null
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBVehicleDAO.java
@@ -0,0 +1,62 @@
+package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao;
+
+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.PersistenceException;
+import at.ac.tuwien.sepm.assignment.groupphase.util.JDBCConnectionManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.LinkedList;
+import java.util.List;
+import javax.annotation.Nullable;
+
+public class DBVehicleDAO implements VehicleDAO {
+
+ private JDBCConnectionManager jdbcConnectionManager;
+
+ public DBVehicleDAO(JDBCConnectionManager j) {
+ jdbcConnectionManager = j;
+ }
+
+ @Override
+ public long add(Vehicle vehicle) throws PersistenceException {
+ return 0;
+ }
+
+ @Override
+ public void update(Vehicle vehicle) throws ElementNotFoundException, PersistenceException {
+
+ }
+
+ @Override
+ public List<Vehicle> list() throws PersistenceException {
+ PreparedStatement pstmt = null;
+ List<Vehicle> result = new LinkedList<>();
+ try {
+ pstmt = jdbcConnectionManager.getConnection().prepareStatement("Select * from VehicleVersion, "
+ + "Vehicle where VehicleVersion.id=Vehicle.version");
+ //TODO: CORRECT?
+ pstmt.executeQuery();
+
+ ResultSet rs = pstmt.getResultSet();
+ while (rs.next()){
+ //TODO: HAS NEF?, Registrations
+ Vehicle vehicle = Vehicle.builder().name(rs.getString(2)).
+ constructionType(ConstructionType.valueOf(rs.getString(2))).
+ status(Status.valueOf(rs.getString(7))).id(rs.getInt(1)).build();
+ result.add(vehicle);
+ }
+ } catch (SQLException e) {
+ //TODO
+ }
+ return null;
+ }
+
+ @Override
+ public void remove(long id) throws ElementNotFoundException, PersistenceException {
+
+ }
+}
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 f705084..eee158b 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
@@ -10,6 +10,7 @@ import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.Veh
import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidOperationException;
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.List;
import javafx.collections.transformation.SortedList;
@@ -20,7 +21,7 @@ public class OperationServiceImpl implements OperationService {
private OperationDAO operationDAO = new DBOperationDAO();
@Override
- public long add(Operation operation) throws InvalidOperationException, PersistenceException {
+ public long add(Operation operation) throws InvalidOperationException, ServiceException {
List<Vehicle> vehicles = operation.vehicles();
boolean rtw = false;
for (Vehicle vehicle : vehicles) {
@@ -46,6 +47,7 @@ public class OperationServiceImpl implements OperationService {
}
}
if (!rtw)
+ //TODO: NUR WARNUNG AUSGEBEN
throw new InvalidOperationException(
"Zu einem Fahrzeug des Typs NAH muss auch ein Fahrzeug des Typs RTW geschickt werden!");
}
@@ -68,25 +70,25 @@ public class OperationServiceImpl implements OperationService {
operationDAO.connectVehicleToOperation(vehicle.id(), operation.id());
}
return operationDAO.add(operation);
- // TODO: CODE VALIDIEREN, Adresse nach vierstelliger Nummer suchen,
+ // TODO: CODE VALIDIEREN?
}
@Override
public void requestVehicles(long operationId, List<Long> vehicleIds)
- throws InvalidOperationException, InvalidVehicleException, PersistenceException {}
+ throws InvalidOperationException, InvalidVehicleException, ServiceException {}
@Override
public void complete(long operationId, Status status)
- throws InvalidOperationException, PersistenceException {}
+ throws InvalidOperationException, ServiceException {}
@Override
public SortedList<Vehicle> rankVehicles(long operationId)
- throws InvalidOperationException, PersistenceException {
+ throws InvalidOperationException, ServiceException {
return null;
}
@Override
- public List<Operation> list(EnumSet<Status> statuses) throws PersistenceException {
+ public List<Operation> list(EnumSet<Status> statuses) throws ServiceException {
return null;
}
}
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
new file mode 100644
index 0000000..80d7432
--- /dev/null
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java
@@ -0,0 +1,31 @@
+package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service;
+
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.Status;
+import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidVehicleException;
+import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;
+import java.util.EnumSet;
+import java.util.List;
+
+public class VehicleServiceImpl implements VehicleService {
+
+ @Override
+ public long add(Vehicle vehicle) throws InvalidVehicleException, ServiceException {
+ return 0;
+ }
+
+ @Override
+ public Vehicle update(Vehicle vehicle) throws InvalidVehicleException, ServiceException {
+ return null;
+ }
+
+ @Override
+ public List<Vehicle> list(EnumSet<Status> statuses) throws ServiceException {
+ return null;
+ }
+
+ @Override
+ public void remove(long id) throws InvalidVehicleException, ServiceException {
+
+ }
+}