package com.rjconsultores.ventaboletos.vo.busquedapacotes.transformer;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.hibernate.transform.ResultTransformer;

import com.rjconsultores.ventaboletos.entidad.Empresa;

public class DatosEmpresaResultTransformer implements ResultTransformer {

	private static final long serialVersionUID = 1L;

	@Override
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public List<Empresa> transformList(List mapList) {
		Map<Integer, Empresa> empresas = new HashMap<Integer, Empresa>();
		
		for(Object objmap : mapList ){
			
			Map<String, Object> tupleMap = (Map<String, Object>) objmap;
			Integer empresaId = (Integer) tupleMap.get("EMPRESA_ID");
			
			if(!empresas.containsKey(empresaId)){
				Empresa empresa = new Empresa();
				empresa.setEmpresaId(empresaId);
				empresa.setNombempresa((String) tupleMap.get("NOMBEMPRESA"));
				empresa.setActivo((Boolean) tupleMap.get("ACTIVO"));
				empresas.put(empresaId, empresa);				
			}
		}
				
		List<Empresa> empresaList = new ArrayList<Empresa>();
		empresaList.addAll(empresas.values());
		
		return empresaList;
	}

	@Override
	public Object transformTuple(Object[] data, String[] aliases) {
		Map<String,Object> row = new HashMap<String,Object>();	
		
		for(int index = 0; index < aliases.length; index++){
			row.put(aliases[index], data[index]);
		}
		
		return row;
	}

}
