From 3cf6a6ad7c46b82a77691f7c42e2e9b53967570c Mon Sep 17 00:00:00 2001 From: Viktoria Pundy Date: Wed, 2 May 2018 22:08:25 +0200 Subject: Added Vehicle DAO and Vehicle Service Impl, started implementing needed methods --- .../einsatzverwaltung/dao/DBOperationDAO.java | 17 ++++-- .../einsatzverwaltung/dao/DBVehicleDAO.java | 62 ++++++++++++++++++++++ .../service/OperationServiceImpl.java | 14 ++--- .../service/VehicleServiceImpl.java | 31 +++++++++++ 4 files changed, 114 insertions(+), 10 deletions(-) create mode 100644 src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBVehicleDAO.java create mode 100644 src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java (limited to 'src') 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 list() throws PersistenceException { + PreparedStatement pstmt = null; + List 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 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 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 rankVehicles(long operationId) - throws InvalidOperationException, PersistenceException { + throws InvalidOperationException, ServiceException { return null; } @Override - public List list(EnumSet statuses) throws PersistenceException { + public List list(EnumSet 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 list(EnumSet statuses) throws ServiceException { + return null; + } + + @Override + public void remove(long id) throws InvalidVehicleException, ServiceException { + + } +} -- cgit v1.2.3-70-g09d2