package com.rjconsultores.ventaboletos.dao.util;

import java.io.Serializable;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.engine.SessionImplementor;
import org.hibernate.id.IdentifierGenerator;
/**
 * Classe que trata a geração do ID da tabela Aidf.
 * 
 * Foi abandonado o uso da sequence pois existiam lacunas nos numeros e já havia atingido o tamanho máximo de 3 dígitos, com isso
 * sendo necessário aproveitar os número que não haviam sido utilizados
 * 
 * @author gleimar
 *
 */
public class AidfGenerator implements IdentifierGenerator {

	private static final Logger log = LogManager.getLogger(AidfGenerator.class);
	
	@Override
	public Serializable generate(SessionImplementor session, Object object) throws HibernateException {

		log.info("Inicio geração Idaidf");
		Serializable nextId = IdAidfStore.getInstance().getNextId(session.connection());
		log.info("Fim geração Idaidf:" + nextId);
		
		return nextId;
		
	}

}
