com.ipn.escom.ageinnn.usuario.service.CatalogoServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.ipn.escom.ageinnn.usuario.service.CatalogoServiceImpl.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ipn.escom.ageinnn.usuario.service;

import com.ipn.escom.ageinnn.aspirante.model.DocumentoRequerido;
import com.ipn.escom.ageinnn.configuracion.model.EstadoPeriodoAdmision;
import com.ipn.escom.ageinnn.configuracion.model.PeriodoAdmision;
import com.ipn.escom.ageinnn.curso.model.Curso;
import com.ipn.escom.ageinnn.curso.model.Grupo;
import com.ipn.escom.ageinnn.gestion.service.GrupoService;
import com.ipn.escom.ageinnn.service.Service;
import com.ipn.escom.ageinnn.usuario.model.Catalogo;
import com.ipn.escom.ageinnn.usuario.model.Pais;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.transaction.Transactional;
import org.hibernate.Session;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author Erick
 */
public class CatalogoServiceImpl implements CatalogoService {

    Session session;

    @Override
    @SuppressWarnings("unchecked")
    public <T extends Catalogo> List<T> findAll(Class<T> clazz) {
        session = Service.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        List<T> list = session.createCriteria(clazz).list();
        session.getTransaction().commit();
        return list;

    }

    @Transactional
    @SuppressWarnings("unchecked")
    public <T extends Catalogo> T find(Class<T> clazz, Serializable id) {
        T t = null;
        try {
            this.session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            t = (T) session.get(clazz, id);
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }
        return t;

    }

    @SuppressWarnings("unchecked")
    public <T extends Catalogo> T findByNombre(Class<T> clazz, String nombre) {
        T t = null;
        List<T> ts = new ArrayList();
        try {
            this.session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            ts = session.createCriteria(clazz).add(Restrictions.eq("nombre", nombre)).list();
            session.getTransaction().commit();
        } catch (Exception e) {
            System.out.println("Ha ocurrido un error...");
            session.getTransaction().rollback();
            throw e;
        }
        if (ts.size() > 0) {
            t = ts.get(0);
        }
        return t;

    }

    @Transactional
    @SuppressWarnings("unchecked")
    public List<DocumentoRequerido> findByAspiranteNacional(String nacionalidad) {
        List<DocumentoRequerido> documentos = null;
        Boolean nacional = true;
        try {
            this.session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            documentos = session.createCriteria(DocumentoRequerido.class).add(Restrictions.eq("nacional", nacional))
                    .list();
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }
        return documentos;
    }

    @Transactional
    @SuppressWarnings("unchecked")
    public List<DocumentoRequerido> findByAspiranteExtranjero(String nacionalidad) {
        List<DocumentoRequerido> documentos = null;
        Boolean extranjero = true;
        try {
            this.session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            documentos = session.createCriteria(DocumentoRequerido.class)
                    .add(Restrictions.eq("extranjero", extranjero)).list();
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }
        return documentos;
    }

    public Pais findMexico() {
        return this.findMexico("Mxico");
    }

    @Transactional
    @SuppressWarnings("unchecked")
    public Pais findMexico(String nombre) {
        session = Service.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Pais mexico = (Pais) session.createCriteria(Pais.class).add(Restrictions.eq("nombre", nombre)).list()
                .get(0);
        session.getTransaction().commit();
        return mexico;
    }

    @Override
    @Transactional
    public <T extends Catalogo> void delete(Class<T> clazz, Serializable id) {
        T t = find(clazz, id);
        try {
            session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            session.delete(t);
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }
    }

    @Override
    @Transactional
    public <T extends Catalogo> Serializable save(Class<T> clazz, T catalog) {
        Serializable id;

        try {
            session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            id = session.save(catalog);
            session.getTransaction().commit();
        } catch (Exception e) {

            session.getTransaction().rollback();
            throw e;

        }
        return id;
    }

    @Override
    @Transactional
    public <T extends Catalogo> void update(Class<T> clazz, T catalog) {
        try {
            session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            session.saveOrUpdate(catalog);
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }
    }

    public PeriodoAdmision findPeriodoActual() {
        List<PeriodoAdmision> periodoActual = new ArrayList<>();
        EstadoPeriodoAdmision estadoPeriodoActual = this.findByNombre(EstadoPeriodoAdmision.class, "Actual");
        System.out.println("CatalogoService: estado periodo actual " + estadoPeriodoActual.getId());
        try {
            session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            periodoActual = session.createCriteria(PeriodoAdmision.class)
                    .add(Restrictions.eq("estadoPeriodoAdmisionId", estadoPeriodoActual.getId())).list();
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }
        System.out.println("CatalogoService: PeriodoActual " + periodoActual.isEmpty());
        if (periodoActual.isEmpty()) {
            return null;
        } else {
            return periodoActual.get(0);
        }
    }

    @SuppressWarnings("unchecked")
    public List<Curso> findAllCursoByPeriodo(Class<Curso> aClass, PeriodoAdmision periodoAdmision) {
        List<Curso> cursoList = new ArrayList<>();
        GrupoService grupoService = new GrupoService();

        session = Service.getSessionFactory().getCurrentSession();
        session.beginTransaction();

        cursoList = session.createCriteria(Grupo.class)
                .add(Restrictions.eq("periodoAdmisionId", periodoAdmision.getId()))
                .setProjection(Projections.groupProperty("curso")).list();

        System.out.println("Curso : " + cursoList);

        session.getTransaction().commit();

        return cursoList;
    }
}