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.PuntoVenta;

public class DatosPuntoVentaResultTransformer implements ResultTransformer {

	private static final long serialVersionUID = 1L;

	@Override
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public List<PuntoVenta> transformList(List mapList) {
		Map<Integer, PuntoVenta> puntoventas = new HashMap<Integer, PuntoVenta>();
		
		for(Object objmap : mapList ){
			
			Map<String, Object> tupleMap = (Map<String, Object>) objmap;
			Integer puntoventaId = (Integer) tupleMap.get("PUNTOVENTA_ID");
			
			if(!puntoventas.containsKey(puntoventaId)){
				PuntoVenta puntoventa = new PuntoVenta();
				puntoventa.setPuntoventaId(puntoventaId);
				puntoventa.setNombpuntoventa((String) tupleMap.get("NOMBPUNTOVENTA"));
				puntoventa.setActivo((Boolean) tupleMap.get("ACTIVO"));
				puntoventas.put(puntoventaId, puntoventa);				
			}
		}
				
		List<PuntoVenta> puntoventaList = new ArrayList<PuntoVenta>();
		puntoventaList.addAll(puntoventas.values());
		
		return puntoventaList;
	}

	@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;
	}

}
