From 0f8a8d5f9f5f431b5280a98ab4d7d875ee39dcd5 Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Fri, 2 Apr 2021 17:35:16 +0200 Subject: [PATCH] Add DAO implementations --- .../dst/ass1/jpa/dao/impl/DAOFactory.java | 27 ++++++----------- .../java/dst/ass1/jpa/dao/impl/DriverDAO.java | 19 ++++++++++++ .../dst/ass1/jpa/dao/impl/EmploymentDAO.java | 13 ++++++++ .../dst/ass1/jpa/dao/impl/GenericDAO.java | 30 +++++++++++++++++++ .../dst/ass1/jpa/dao/impl/LocationDAO.java | 19 ++++++++++++ .../java/dst/ass1/jpa/dao/impl/MatchDAO.java | 13 ++++++++ .../ass1/jpa/dao/impl/OrganizationDAO.java | 13 ++++++++ .../java/dst/ass1/jpa/dao/impl/RiderDAO.java | 30 +++++++++++++++++++ .../java/dst/ass1/jpa/dao/impl/TripDAO.java | 20 +++++++++++++ .../dst/ass1/jpa/dao/impl/TripInfoDAO.java | 13 ++++++++ .../dst/ass1/jpa/dao/impl/VehicleDAO.java | 13 ++++++++ 11 files changed, 192 insertions(+), 18 deletions(-) create mode 100644 ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/DriverDAO.java create mode 100644 ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/EmploymentDAO.java create mode 100644 ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/GenericDAO.java create mode 100644 ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/LocationDAO.java create mode 100644 ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/MatchDAO.java create mode 100644 ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/OrganizationDAO.java create mode 100644 ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/RiderDAO.java create mode 100644 ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/TripDAO.java create mode 100644 ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/TripInfoDAO.java create mode 100644 ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/VehicleDAO.java diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/DAOFactory.java b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/DAOFactory.java index f254f94..5a70935 100644 --- a/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/DAOFactory.java +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/DAOFactory.java @@ -20,55 +20,46 @@ public class DAOFactory implements IDAOFactory { @Override public IDriverDAO createDriverDAO() { - // TODO - return null; + return new DriverDAO(em); } @Override public IEmploymentDAO createEmploymentDAO() { - // TODO - return null; + return new EmploymentDAO(em); } @Override public ILocationDAO createLocationDAO() { - // TODO - return null; + return new LocationDAO(em); } @Override public IMatchDAO createMatchDAO() { - // TODO - return null; + return new MatchDAO(em); } @Override public IOrganizationDAO createOrganizationDAO() { - // TODO - return null; + return new OrganizationDAO(em); } @Override public IRiderDAO createRiderDAO() { - // TODO - return null; + return new RiderDAO(em); } @Override public ITripDAO createTripDAO() { - // TODO - return null; + return new TripDAO(em); } @Override public ITripInfoDAO createTripInfoDAO() { - // TODO - return null; + return new TripInfoDAO(em); } @Override public IVehicleDAO createVehicleDAO() { - // TODO - return null; + return new VehicleDAO(em); } } diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/DriverDAO.java b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/DriverDAO.java new file mode 100644 index 0000000..09c84da --- /dev/null +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/DriverDAO.java @@ -0,0 +1,19 @@ +package dst.ass1.jpa.dao.impl; + +import dst.ass1.jpa.dao.IDriverDAO; +import dst.ass1.jpa.model.IDriver; +import dst.ass1.jpa.model.impl.Driver; + +import javax.persistence.EntityManager; +import java.util.Collection; + +public class DriverDAO extends GenericDAO implements IDriverDAO { + public DriverDAO(EntityManager entityManager) { + super(entityManager, Driver.class); + } + + @Override + public Collection findActiveInMultipleOrganizationsDrivers(Long numberOfOrganizations) { + return null; + } +} diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/EmploymentDAO.java b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/EmploymentDAO.java new file mode 100644 index 0000000..477b76f --- /dev/null +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/EmploymentDAO.java @@ -0,0 +1,13 @@ +package dst.ass1.jpa.dao.impl; + +import dst.ass1.jpa.dao.IEmploymentDAO; +import dst.ass1.jpa.model.IEmployment; +import dst.ass1.jpa.model.impl.Employment; + +import javax.persistence.EntityManager; + +public class EmploymentDAO extends GenericDAO implements IEmploymentDAO { + public EmploymentDAO(EntityManager entityManager) { + super(entityManager, Employment.class); + } +} diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/GenericDAO.java b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/GenericDAO.java new file mode 100644 index 0000000..7ea4434 --- /dev/null +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/GenericDAO.java @@ -0,0 +1,30 @@ +package dst.ass1.jpa.dao.impl; + +import javax.persistence.EntityManager; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; +import java.util.List; + +public class GenericDAO implements dst.ass1.jpa.dao.GenericDAO { + private final EntityManager entityManager; + private final Class aClass; + + public GenericDAO(EntityManager entityManager, Class aClass) { + this.entityManager = entityManager; + this.aClass = aClass; + } + + @Override + public T findById(Long id) { + return (T) entityManager.find(aClass, id); + } + + @Override + public List findAll() { + CriteriaQuery criteriaQuery = entityManager.getCriteriaBuilder().createQuery(aClass); + Root root = criteriaQuery.from(aClass); + criteriaQuery.select(root); + + return entityManager.createQuery(criteriaQuery).getResultList(); + } +} diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/LocationDAO.java b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/LocationDAO.java new file mode 100644 index 0000000..3e55a30 --- /dev/null +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/LocationDAO.java @@ -0,0 +1,19 @@ +package dst.ass1.jpa.dao.impl; + +import dst.ass1.jpa.dao.ILocationDAO; +import dst.ass1.jpa.model.ILocation; +import dst.ass1.jpa.model.impl.Location; + +import javax.persistence.EntityManager; +import java.util.Collection; + +public class LocationDAO extends GenericDAO implements ILocationDAO { + public LocationDAO(EntityManager entityManager) { + super(entityManager, Location.class); + } + + @Override + public Collection findReachedLocationIds() { + return null; + } +} diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/MatchDAO.java b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/MatchDAO.java new file mode 100644 index 0000000..e1a20d6 --- /dev/null +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/MatchDAO.java @@ -0,0 +1,13 @@ +package dst.ass1.jpa.dao.impl; + +import dst.ass1.jpa.dao.IMatchDAO; +import dst.ass1.jpa.model.IMatch; +import dst.ass1.jpa.model.impl.Match; + +import javax.persistence.EntityManager; + +public class MatchDAO extends GenericDAO implements IMatchDAO { + public MatchDAO(EntityManager entityManager) { + super(entityManager, Match.class); + } +} diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/OrganizationDAO.java b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/OrganizationDAO.java new file mode 100644 index 0000000..6484494 --- /dev/null +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/OrganizationDAO.java @@ -0,0 +1,13 @@ +package dst.ass1.jpa.dao.impl; + +import dst.ass1.jpa.dao.IOrganizationDAO; +import dst.ass1.jpa.model.IOrganization; +import dst.ass1.jpa.model.impl.Organization; + +import javax.persistence.EntityManager; + +public class OrganizationDAO extends GenericDAO implements IOrganizationDAO { + public OrganizationDAO(EntityManager entityManager) { + super(entityManager, Organization.class); + } +} diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/RiderDAO.java b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/RiderDAO.java new file mode 100644 index 0000000..0a9f99f --- /dev/null +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/RiderDAO.java @@ -0,0 +1,30 @@ +package dst.ass1.jpa.dao.impl; + +import dst.ass1.jpa.dao.IRiderDAO; +import dst.ass1.jpa.model.IMoney; +import dst.ass1.jpa.model.IRider; +import dst.ass1.jpa.model.impl.Rider; + +import javax.persistence.EntityManager; +import java.util.Map; + +public class RiderDAO extends GenericDAO implements IRiderDAO { + public RiderDAO(EntityManager entityManager) { + super(entityManager, Rider.class); + } + + @Override + public IRider findByEmail(String email) { + return null; + } + + @Override + public Double getTotalDistanceOfMostRecentRider() { + return null; + } + + @Override + public Map> getRecentSpending() { + return null; + } +} diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/TripDAO.java b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/TripDAO.java new file mode 100644 index 0000000..8789bbc --- /dev/null +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/TripDAO.java @@ -0,0 +1,20 @@ +package dst.ass1.jpa.dao.impl; + +import dst.ass1.jpa.dao.ITripDAO; +import dst.ass1.jpa.model.ITrip; +import dst.ass1.jpa.model.impl.Trip; + +import javax.persistence.EntityManager; +import java.util.Collection; +import java.util.Date; + +public class TripDAO extends GenericDAO implements ITripDAO { + public TripDAO(EntityManager entityManager) { + super(entityManager, Trip.class); + } + + @Override + public Collection findCancelledTrips(Date start, Date end) { + return null; + } +} diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/TripInfoDAO.java b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/TripInfoDAO.java new file mode 100644 index 0000000..bf3def4 --- /dev/null +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/TripInfoDAO.java @@ -0,0 +1,13 @@ +package dst.ass1.jpa.dao.impl; + +import dst.ass1.jpa.dao.ITripInfoDAO; +import dst.ass1.jpa.model.ITripInfo; +import dst.ass1.jpa.model.impl.TripInfo; + +import javax.persistence.EntityManager; + +public class TripInfoDAO extends GenericDAO implements ITripInfoDAO { + public TripInfoDAO(EntityManager entityManager) { + super(entityManager, TripInfo.class); + } +} diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/VehicleDAO.java b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/VehicleDAO.java new file mode 100644 index 0000000..50a460d --- /dev/null +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/dao/impl/VehicleDAO.java @@ -0,0 +1,13 @@ +package dst.ass1.jpa.dao.impl; + +import dst.ass1.jpa.dao.IVehicleDAO; +import dst.ass1.jpa.model.IVehicle; +import dst.ass1.jpa.model.impl.Vehicle; + +import javax.persistence.EntityManager; + +public class VehicleDAO extends GenericDAO implements IVehicleDAO { + public VehicleDAO(EntityManager entityManager) { + super(entityManager, Vehicle.class); + } +}