package carrentaldatabase.db;

import hu.elte.inf.pszt.prt.javalib.db.jpa.AbstractDatabaseHandler;
import hu.elte.inf.pszt.prt.javalib.db.jpa.GenericJpaController;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

/**
 * @author Daniel "3ICE" Berezvai
 */
public class CarRentalDbHandler extends AbstractDatabaseHandler {

private GenericJpaController<Partner> partnerJpaController;
private GenericJpaController<Rental> rentalJpaController;
private GenericJpaController<Vehicle> vehicleJpaController;

@Override
protected EntityManagerFactory createEntityManagerFactory() {
  return Persistence.createEntityManagerFactory("CarRentalDatabasePU");
}

@Override
protected void createJpaControllers() {
  partnerJpaController = new GenericJpaController<>(cem, Partner.class);
  rentalJpaController = new GenericJpaController<>(cem, Rental.class);
  vehicleJpaController = new GenericJpaController<>(cem, Vehicle.class);
}

@Override
protected void mapEntityClassesToControllers() {
  ectcm.put(Partner.class, partnerJpaController);
  ectcm.put(Rental.class, rentalJpaController);
  ectcm.put(Vehicle.class, vehicleJpaController);
}

public GenericJpaController<Partner> getPartnerJpaController() {
  return partnerJpaController;
}

public GenericJpaController<Rental> getRentalJpaController() {
  return rentalJpaController;
}

public GenericJpaController<Vehicle> getVehicleJpaController() {
  return vehicleJpaController;
}
}
