aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/CreateCarController.java2
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/CreateOperationController.java1
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDatabaseDAO.java36
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java7
4 files changed, 33 insertions, 13 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/CreateCarController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/CreateCarController.java
index 1dd41c7..4da46a2 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/CreateCarController.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/CreateCarController.java
@@ -189,7 +189,7 @@ public class CreateCarController {
createOperationController.setVisible(true);
}
- private void updateVehiclePane() {
+ void updateVehiclePane() {
try {
fpVehicleList.getChildren().clear();
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/CreateOperationController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/CreateOperationController.java
index 8c1df80..e5d7b72 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/CreateOperationController.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/CreateOperationController.java
@@ -340,6 +340,7 @@ public class CreateOperationController {
private void openCreateCarWindow() {
this.setVisible(false);
createCarController.setVisible(true);
+ createCarController.updateVehiclePane();
}
private void openRegistrationWindow() {
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDatabaseDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDatabaseDAO.java
index 10bba3d..d06e13f 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDatabaseDAO.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDatabaseDAO.java
@@ -6,6 +6,8 @@ import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Operation;
import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Operation.Severity;
import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Operation.Status;
import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Vehicle;
+import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Vehicle.ConstructionType;
+import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Vehicle.VehicleType;
import at.ac.tuwien.sepm.assignment.groupphase.util.JDBCConnectionManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -25,11 +27,15 @@ public class OperationDatabaseDAO implements OperationDAO {
private JDBCConnectionManager jdbcConnectionManager;
private VehicleDAO vehicleDAO;
+ private RegistrationDatabaseDAO registrationDAO;
public OperationDatabaseDAO(
- JDBCConnectionManager jdbcConnectionManager, VehicleDAO vehicleDAO) {
+ JDBCConnectionManager jdbcConnectionManager,
+ VehicleDAO vehicleDAO,
+ RegistrationDatabaseDAO registrationDAO) {
this.jdbcConnectionManager = jdbcConnectionManager;
this.vehicleDAO = vehicleDAO;
+ this.registrationDAO = registrationDAO;
}
@Override
@@ -193,9 +199,12 @@ public class OperationDatabaseDAO implements OperationDAO {
}
private Set<Vehicle> getVehiclesFromOperationId(long operationId) throws PersistenceException {
+ /*String sql =
+ "SELECT id FROM Vehicle WHERE version IN"
+ + " (SELECT vehicleId FROM VehicleOperation WHERE operationId = ?)";*/
String sql =
- "SELECT id FROM Vehicle WHERE version IN"
- + " (SELECT vehicleId FROM VehicleOperation WHERE operationId = ?)";
+ "SELECT vv.* FROM VehicleOperation vo JOIN VehicleVersion vv ON vv.id = vo.vehicleId WHERE operationId = ?";
+
Set<Vehicle> vehicles = new HashSet<>();
try {
@@ -206,16 +215,29 @@ public class OperationDatabaseDAO implements OperationDAO {
try (ResultSet rs = pstmt.getResultSet()) {
while (rs.next()) {
- vehicles.add(vehicleDAO.get(rs.getLong("Vehicle.id")));
+ vehicles.add(vehicleFromRS(rs));
}
}
}
} catch (SQLException e) {
throw new PersistenceException(e);
- } catch (ElementNotFoundException e) {
- throw new PersistenceException("VehicleOperation contained nonexistent vehicle", e);
- }
+ } /*catch (ElementNotFoundException e) {
+ throw new PersistenceException("VehicleOperation contained nonexistent vehicle", e);
+ }*/
return vehicles;
}
+
+ private Vehicle vehicleFromRS(ResultSet rs) throws SQLException, PersistenceException {
+ return Vehicle.builder()
+ .id(rs.getLong("VehicleVersion.id"))
+ .name(rs.getString("VehicleVersion.name"))
+ .constructionType(
+ ConstructionType.values()[rs.getInt("VehicleVersion.constructionType")])
+ .type(VehicleType.valueOf(rs.getString("VehicleVersion.type")))
+ .status(Vehicle.Status.ABGEMELDET)
+ .hasNef(rs.getBoolean("VehicleVersion.hasNef"))
+ .registrations(registrationDAO.list(rs.getLong("VehicleVersion.id")))
+ .build();
+ }
}
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java
index 2f52349..b08ee68 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java
@@ -83,7 +83,7 @@ public class RegistrationDatabaseDAO implements RegistrationDAO {
con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
// vehicleId is a Vehicle.id as it comes from GUI => fetch VehicleVersion.id
- pstmt.setLong(1, getVehicleVersionId(vehicleId));
+ pstmt.setLong(1, getVehicleVersionId(vehicleId) /*vehicleId*/);
for (Registration r : registrations) {
pstmt.setLong(2, getEmployeeVersionId(r.employee().id()));
@@ -123,9 +123,6 @@ public class RegistrationDatabaseDAO implements RegistrationDAO {
protected List<Registration> list(long vehicleId) throws PersistenceException {
- // vehicleId is a Vehicle.id as it comes from GUI => fetch VehicleVersion.id
- long vehicleVersionId = getVehicleVersionId(vehicleId);
-
String sql =
"SELECT * FROM Registration r "
+ "JOIN EmployeeVersion ev ON ev.id = r.employeeId "
@@ -135,7 +132,7 @@ public class RegistrationDatabaseDAO implements RegistrationDAO {
try (PreparedStatement stmt = jdbcConnectionManager.getConnection().prepareStatement(sql)) {
List<Registration> registrationList = new ArrayList<>();
- stmt.setLong(1, vehicleVersionId);
+ stmt.setLong(1, vehicleId); // is vehicle version id!
ResultSet rs = stmt.executeQuery();
while (rs.next()) {