diff options
| author | Dominic Rogetzer <e1627756@student.tuwien.ac.at> | 2018-06-19 12:56:16 +0200 | 
|---|---|---|
| committer | Dominic Rogetzer <e01627756@student.tuwien.ac.at> | 2018-06-19 12:56:16 +0200 | 
| commit | ba18fafe3daca828719b95f0b0efeae6683afd3d (patch) | |
| tree | 7eca17407b7857449d7a8c8e965daca4fc10d87f /src | |
| parent | ede9e933d7e966ee4122b7b57242c88efc868faa (diff) | |
| download | sepm-groupproject-ba18fafe3daca828719b95f0b0efeae6683afd3d.tar.gz sepm-groupproject-ba18fafe3daca828719b95f0b0efeae6683afd3d.tar.xz sepm-groupproject-ba18fafe3daca828719b95f0b0efeae6683afd3d.zip | |
Change versioning in Operation and Registration [#25963]
Diffstat (limited to 'src')
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()) { | 
