package com.ejie.ad74a.util.documentos;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.ejie.ad74a.ws.client.documentosWeb.AlineacionCol;
import com.ejie.ad74a.ws.client.documentosWeb.DefinicionCol;
import com.ejie.ad74a.ws.client.documentosWeb.DefinicionPag;
import com.ejie.ad74a.ws.client.documentosWeb.Grupo;
import com.ejie.ad74a.ws.client.documentosWeb.Orientacion;
import com.ejie.ad74a.ws.client.documentosWeb.Tamano;

/**
 * Agrupa utilidades para ficheros
 * 
 * @author
 * 
 */
public class DocumentosPdfUtils {

	private static final Logger logger = LoggerFactory.getLogger(DocumentosPdfUtils.class);

	/**
	 * Constructor privado
	 */
	private DocumentosPdfUtils() {
	}

	public static Grupo newGrupo(List<DefinicionCol> listaCol, String nombre) {
		Grupo grupo = new Grupo();

		Iterator it = listaCol.iterator();
		while (it.hasNext()) {
			grupo.getListaCol().add((DefinicionCol) it.next());
		}
		grupo.setNombre(nombre);

		return grupo;
	}

	public static DefinicionCol newDefinicionCol(String titulo, String key, int ancho, AlineacionCol alineacion,
			int fuente, int padding, boolean total, boolean pdf, boolean maestro) {
		DefinicionCol defCol = new DefinicionCol();

		defCol.setTitulo(titulo);
		defCol.setKey(key);
		defCol.setAncho(ancho);
		defCol.setAlineacion(alineacion);
		defCol.setFuente(fuente);
		defCol.setPadding(padding);
		defCol.setTotal(total);
		defCol.setPdf(pdf);
		defCol.setMaestro(maestro);

		return defCol;
	}

	public static DefinicionPag newDefinicionPag(Integer tamanoLetra, Orientacion orientacion, Tamano tamanoPag,
			String textoAdicional) {
		DefinicionPag pag = new DefinicionPag();

		pag.setTamanoLetra(tamanoLetra);
		pag.setOrientacion(orientacion);
		pag.setTamanoPag(tamanoPag);
		pag.setTextoAdicional(textoAdicional);

		return pag;
	}

	public static String convertirJson(List<Grupo> listaGrupos) {

		String json = null;
		try {
			ObjectMapper objMapper = new ObjectMapper();
			json = objMapper.writeValueAsString(listaGrupos);
		} catch (Exception e) {
			DocumentosPdfUtils.logger.error("Error al convertir la lista de grupos a JSON", e.getMessage());
		}
		return json;
	}

	public static String convertirJsonListado(List<HashMap<String, String>> listaInforme) {

		String json = null;
		try {
			ObjectMapper objMapper = new ObjectMapper();
			json = objMapper.writeValueAsString(listaInforme);
		} catch (Exception e) {
			DocumentosPdfUtils.logger.error("Error al convertir la lista de HashMap a JSON", e.getMessage());
		}
		return json;
	}

}