package db;

import hu.elte.inf.pszt.prt.javalib.db.jpa.*;
import javax.persistence.*;

/**
 * @author trust56
 * @contributor Daniel "3ICE" Berezvai
 * @Csoport: B
 */
public class DatabaseHandler extends AbstractDatabaseHandler {

    private GenericJpaController<Person> personJpaController;
    private GenericJpaController<Tool> toolJpaController;
    private GenericJpaController<Category> categoryJpaController;

    public GenericJpaController<Person> getPersonJpaController() {
        return personJpaController;
    }

    public GenericJpaController<Tool> getToolJpaController() {
        return toolJpaController;
    }

    public GenericJpaController<Category> getCategoryJpaController() {
        return categoryJpaController;
    }

    @Override
    protected EntityManagerFactory createEntityManagerFactory() {
        return Persistence.createEntityManagerFactory("ToolManagementPU");
    }

    @Override
    protected void createJpaControllers() {
        personJpaController = new GenericJpaController<>(cem, Person.class);
        toolJpaController = new GenericJpaController<>(cem, Tool.class);
        categoryJpaController = new GenericJpaController<>(cem, Category.class);
    }

    @Override
    protected void mapEntityClassesToControllers() {
        ectcm.put(Person.class, personJpaController);
        ectcm.put(Category.class, categoryJpaController);
        ectcm.put(Tool.class, toolJpaController);
    }
}
