package es.ejie.frmk.infraestructura.utilidades.mapeador;

import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.Converter;

/**
 * Clase que extiende de ConverterUtils para redefinir métodos y añadir funcionalidades al mapeador
 * @author UFRM005
 * @version 1.0
 */

public class Q70ConverterUtilsMapeador extends ConvertUtils{

	/**
	 * Constructor de la clase
	 */
	public Q70ConverterUtilsMapeador() {
		super();	
	}
	
	/**
	 * Método que devuelve si existe o no un Coverter registrado para una Class
	 * @param clsConverter Converter clase que cumple la interfaz converter
	 * @param objValue Object Object para el que esta registrado el converter
	 * @return  bolIsConverterRegistered boolean true (está registrado), false (no está registrado) 
	 * */
	
	public static boolean isConverterRegistered(Converter clsConverter,Object objValue){
		
		boolean bolIsConverterRegistered = false;
		
		if ( (Q70ConverterUtilsMapeador.lookup(objValue.getClass())) == clsConverter){
			bolIsConverterRegistered = true;
		}
				
	return bolIsConverterRegistered;	
	}
	
	/**
	 * Método que realiza la conversión de un objeto según su converter
	 * @param objValue Object objecto que representa la clase a convertir
	 * @param clsClass Class clase del objecto a convertir (no clase destino)
	 * @return Object objValue después de realizar la conversión
     */
    public static Object convert(Object objValue, Class clsClass) {

        Converter converter = (Converter) Q70ConverterUtilsMapeador.lookup(clsClass);
        return (converter.convert(clsClass, objValue));

    }
	
}