diff options
| author | Martin Weick <e1627760@student.tuwien.ac.at> | 2018-05-04 11:06:42 +0200 | 
|---|---|---|
| committer | Tharre <tharre3@gmail.com> | 2018-05-04 20:37:04 +0200 | 
| commit | 0c8e84cf27f3477b1287295f8dec2e0d1e4039d0 (patch) | |
| tree | 97e45d9a1184611ae19ade49e9e94421b1d9c706 /src/main/java/at/ac/tuwien/sepm/assignment | |
| parent | 97257c52df0e9ff5d3965d317c2c912f274bf539 (diff) | |
| download | sepm-groupproject-0c8e84cf27f3477b1287295f8dec2e0d1e4039d0.tar.gz sepm-groupproject-0c8e84cf27f3477b1287295f8dec2e0d1e4039d0.tar.xz sepm-groupproject-0c8e84cf27f3477b1287295f8dec2e0d1e4039d0.zip  | |
Implement vehicleAdd, start creating tests
Diffstat (limited to 'src/main/java/at/ac/tuwien/sepm/assignment')
| -rw-r--r-- | src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDBDAO.java | 102 | ||||
| -rw-r--r-- | src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleAdd.java | 49 | ||||
| -rw-r--r-- | src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/uicontroller/CreateCarController.java (renamed from src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/uiController/CreateCarController.java) | 55 | 
3 files changed, 163 insertions, 43 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDBDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDBDAO.java new file mode 100644 index 0000000..66045a5 --- /dev/null +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDBDAO.java @@ -0,0 +1,102 @@ +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.VehicleType; +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.List; +import org.springframework.stereotype.Repository; + +@Repository +public class VehicleDBDAO implements VehicleDAO { + +    private final JDBCConnectionManager jdbcConnectionManager; + +    public VehicleDBDAO(JDBCConnectionManager jdbcConnectionManager) { +        this.jdbcConnectionManager = jdbcConnectionManager; +    } + +    public long add(Vehicle vehicle) throws PersistenceException { +        String query1 = "INSERT INTO VehicleVersion (name,constructionType,type) VALUES (?,?,?)"; +        String query2 = "INSERT INTO Vehicle (version,status) VALUES (?,?)"; +        PreparedStatement p1 = null; +        PreparedStatement p2 = null; +        PreparedStatement p3 = null; +        String status = "abgemeldet"; +        String name = ""; +        int id = -1; +        try { +            p1 = jdbcConnectionManager.getConnection().prepareStatement(query1); +            p1.setString(1, name); +            p1.setString(2, vehicle.constructionType().name()); +            if (vehicle.type() == VehicleType.KTW_B) { +                p1.setString(3, "KTW-B"); +            } else { +                p1.setString(3, vehicle.type().name()); +            } +            p1.executeUpdate(); +            query1 = "UPDATE VehicleVersion SET name=? WHERE id=?"; +            try (ResultSet keyResultSet = p1.getGeneratedKeys()) { +                if (keyResultSet.next()) { +                    id = keyResultSet.getInt(1); +                } +            } +            name = vehicle.type().name() + "-" + id; + +        } catch (SQLException e) { +            throw new PersistenceException("SQL Excpetion : " + e.toString()); +        } finally { +            try { +                p1.close(); + +            } catch (SQLException e) { +                throw new PersistenceException("SQL Excpetion : " + e.toString()); +            } +        } +        try { +            p3 = jdbcConnectionManager.getConnection().prepareStatement(query1); +            p3.setString(1, name); +            p3.setInt(2, id); +            p3.executeUpdate(); +        } catch (SQLException e) { +            throw new PersistenceException("SQL Excpetion : " + e.toString()); +        } finally { +            try { +                p3.close(); +            } catch (SQLException e) { +                throw new PersistenceException("SQL Excpetion : " + e.toString()); +            } +        } +        try { +            p2 = jdbcConnectionManager.getConnection().prepareStatement(query2); +            p2.setInt(1, id); +            p2.setString(2, status); +            p2.executeUpdate(); +        } catch (SQLException e) { +            throw new PersistenceException("SQL Excpetion : " + e.toString()); +        } finally { +            try { +                p2.close(); +            } catch (SQLException e) { +                throw new PersistenceException("SQL Excpetion : " + e.toString()); +            } +        } +        return id; +    } + +    public void update(Vehicle vehicle) throws ElementNotFoundException, PersistenceException { +        throw new UnsupportedOperationException(); +    } + +    public List<Vehicle> list() throws PersistenceException { +        throw new UnsupportedOperationException(); +    } + +    public void remove(long id) throws ElementNotFoundException, PersistenceException { +        throw new UnsupportedOperationException(); +    } +} diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleAdd.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleAdd.java index a0fadd5..be52fb6 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleAdd.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleAdd.java @@ -1,52 +1,65 @@  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.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 org.springframework.stereotype.Service; +@Service  public class VehicleAdd implements VehicleService { +    private VehicleDAO vehicleDAO; + +    public VehicleAdd(VehicleDAO vehicleDAO) { +        this.vehicleDAO = vehicleDAO; +    }      public long add(Vehicle vehicle) throws InvalidVehicleException, ServiceException { -        final String normal="Normal"; -        final String mhd="Mittelhochdach"; -        switch (vehicle.type().toString()){ -            case "RTW": -                if(vehicle.constructionType().name().contains(normal)){ +        switch (vehicle.type()) { +            case RTW: +                if (vehicle.constructionType() == ConstructionType.NORMAL) {                      throw new InvalidVehicleException("RTW darf kein Normales Dach haben"); -                }else if(vehicle.constructionType().name().contains(mhd)){ +                } else if (vehicle.constructionType() == ConstructionType.MITTELHOCHDACH) {                      throw new InvalidVehicleException("RTW darf kein Mittelhochdach haben");                  }                  break; -            case "KTW": -                if(vehicle.constructionType().name().contains(normal)){ +            case KTW: +                if (vehicle.constructionType() == ConstructionType.NORMAL) {                      throw new InvalidVehicleException("KTW darf kein Normales Dach haben");                  }                  break; -            case "KTW_B": -                if(vehicle.constructionType().name().contains(normal)){ +            case KTW_B: +                if (vehicle.constructionType() == ConstructionType.NORMAL) {                      throw new InvalidVehicleException("KTW-B darf kein Normales Dach haben");                  }                  break; -            case "NEF": -                if(vehicle.constructionType().name().contains(mhd)){ +            case NEF: +                if (vehicle.constructionType() == ConstructionType.MITTELHOCHDACH) {                      throw new InvalidVehicleException("NEF darf kein Mittelhochdach haben"); -                }else if(vehicle.constructionType().name().contains("Hochdach")){ +                } else if (vehicle.constructionType().name().contains("Hochdach")) {                      throw new InvalidVehicleException("NEF darf kein Hochdach haben");                  }                  break; -            case "NAH": -                if(vehicle.constructionType().name().contains(mhd)){ +            case NAH: +                if (vehicle.constructionType() == ConstructionType.MITTELHOCHDACH) {                      throw new InvalidVehicleException("NEF darf kein Mittelhochdach haben"); -                }else if(vehicle.constructionType().name().contains("Hochdach")){ +                } else if (vehicle.constructionType().name().contains("Hochdach")) {                      throw new InvalidVehicleException("NEF darf kein Hochdach haben");                  }                  break; -                default: -                    throw new ServiceException("not a Valid type"); +            default: +                throw new ServiceException("not a Valid type"); +        } +        try { +            vehicleDAO.add(vehicle); +        } catch (PersistenceException e) { +            throw new ServiceException(e);          }          return 0;      } diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/uiController/CreateCarController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/uicontroller/CreateCarController.java index dcf6ff7..721cf6d 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/uiController/CreateCarController.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/uicontroller/CreateCarController.java @@ -1,5 +1,4 @@ -package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.uiController; - +package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.uicontroller;  import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle;  import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.ConstructionType; @@ -27,8 +26,8 @@ import org.springframework.stereotype.Controller;  @Controller  public class CreateCarController { -    @FXML private ChoiceBox cmb_Ctyp; -    @FXML private ChoiceBox cmb_typ; +    @FXML private ChoiceBox<String> cmb_Ctyp; +    @FXML private ChoiceBox<String> cmb_typ;      @FXML private Button btn_cancel;      @FXML private CheckBox cbx_NEF; @@ -38,28 +37,29 @@ public class CreateCarController {      public CreateCarController(VehicleService vehicleService) {          this.vehicleService = vehicleService;      } +      @FXML      public void initialize() {          cmb_Ctyp.setItems(                  FXCollections.observableArrayList(                          Stream.of( -                                ConstructionType.NORMAL, -                                ConstructionType.MITTELHOCHDACH, -                                ConstructionType.HOCHDACH) +                                        ConstructionType.NORMAL, +                                        ConstructionType.MITTELHOCHDACH, +                                        ConstructionType.HOCHDACH)                                  .map(Enum::toString)                                  .collect(Collectors.toList())));          cmb_Ctyp.setValue(ConstructionType.NORMAL.toString());          cmb_typ.setItems(                  FXCollections.observableArrayList(                          Stream.of( -                                VehicleType.BKTW, -                                VehicleType.KTW_B, -                                VehicleType.KTW, -                                VehicleType.RTW, -                                VehicleType.NEF, -                                VehicleType.NAH) +                                        VehicleType.BKTW, +                                        VehicleType.KTW_B, +                                        VehicleType.KTW, +                                        VehicleType.RTW, +                                        VehicleType.NEF, +                                        VehicleType.NAH)                                  .map(Enum::toString) -                        .collect(Collectors.toList()))); +                                .collect(Collectors.toList())));          cmb_typ.setValue(VehicleType.BKTW.toString());      } @@ -67,39 +67,44 @@ public class CreateCarController {      public void onCancelClicked() {          ((Stage) btn_cancel.getScene().getWindow()).close();      } +      @FXML      public void createCar(ActionEvent actionEvent) {          Vehicle vehicle =                  Vehicle.builder() -                .constructionType(parseConstructionType()) -                .type(parseType()) -                .hasNef(cbx_NEF.isSelected()) -                .build(); +                        .constructionType(parseConstructionType()) +                        .type(parseType()) +                        .hasNef(cbx_NEF.isSelected()) +                        .build();          try {              vehicleService.add(vehicle);          } catch (InvalidVehicleException e) {              LOG.error("Invalid Vehicle: {}", e); -            createComplete(AlertType.ERROR,"Ungültige Eingabe",e.getMessage()); +            createComplete(AlertType.ERROR, "Ungültige Eingabe", e.getMessage());              return;          } catch (ServiceException e) {              LOG.error("Exception: {}", e); -            createComplete(AlertType.ERROR,"Ungültige Eingabe",e.getMessage()); +            createComplete(AlertType.ERROR, "Ungültige Eingabe", e.getMessage());              return;          } -        createComplete(AlertType.CONFIRMATION,"Speichern Erfolgreich","Auto wurde erfolgreich angelegt"); +        createComplete( +                AlertType.CONFIRMATION, "Speichern Erfolgreich", "Auto wurde erfolgreich angelegt");      } -    private ConstructionType parseConstructionType(){ -        if(cmb_Ctyp.getSelectionModel().getSelectedItem()==null){ + +    private ConstructionType parseConstructionType() { +        if (cmb_Ctyp.getSelectionModel().getSelectedItem() == null) {              return ConstructionType.NORMAL;          }          return ConstructionType.valueOf(cmb_Ctyp.getSelectionModel().getSelectedItem().toString());      } -    private VehicleType parseType(){ -        if(cmb_typ.getSelectionModel().getSelectedItem()==null){ + +    private VehicleType parseType() { +        if (cmb_typ.getSelectionModel().getSelectedItem() == null) {              return VehicleType.BKTW;          }          return VehicleType.valueOf(cmb_typ.getSelectionModel().getSelectedItem().toString());      } +      private void createComplete(AlertType alertType, String headerText, String contentText) {          Alert alert = new Alert(alertType, contentText, ButtonType.OK);          alert.setHeaderText(headerText);  | 
