/**
 * 
 */
package com.ejie.t17i.filters;

import java.util.List;

import com.ejie.m62fb.utils.bean.BeanAccess;
import com.ejie.m62fb.utils.sql.FiltroWhereGen;
import com.ejie.m62fb.utils.sql.LikeInWhere;
import com.ejie.t17i.dao.MunicipioDaoSql;
import com.ejie.t17i.model.Municipio;

/**
 * <p>
 * Clase que define el filtro para la entidad Municipio de NORA
 * </p>
XXXX
 *  * 
 * @see com.ejie.t17i.model.Municipio;
 */
public class MunicipioFilter extends FiltroWhereGen {

	private Municipio municipio;
	
	/**
	 * <p>Constructor</p> 
	 * @param municipio Municipio con los datos para filtrar
	 * @param params Lista de par&aacute;metros de la <code>SQL</code
	 * @param query Query <code>SQL</code> a modificar
	 * @param like Indica si hay que implementar <code>LIKE</code> y como
	 *
	 */
	public MunicipioFilter(final Municipio municipio,final List<Object> params,final StringBuilder query,final LikeInWhere like){
		 super(params,query,like);
		 this.municipio=municipio;
	}
	
	/**
	 * Devuelve el municipio para filtrar
	 * @return El municipio para filtrar
	 */
	public Municipio getMunicipio() {
		return municipio;
	}

	/**
	 * Establece el municipio para filtrar
	 * @param municipio El municipio para filtrar
	 */
	public void setMunicipio(Municipio municipio) {
		this.municipio = municipio;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public void generarWhereBE() {
		//ID
		super.addFiltro(MunicipioDaoSql.ALIAS + ".ID = ? ", 
						new BeanAccess("municipio.id",  this.municipio), 
						FiltroWhereGen.AND);
		//PROVINCIA_ID
		super.addFiltro(MunicipioDaoSql.ALIAS + ".PROVINCIA_ID = ? ", 
				new BeanAccess("municipio.provincia.id",  this.municipio), 
				FiltroWhereGen.AND);
		//DS_O
		super.addFiltro(" UPPER("+MunicipioDaoSql.ALIAS + ".DS_O) = ? ", 
				new BeanAccess("municipio.nombre",  this.municipio), 
				FiltroWhereGen.AND);
		//COMARCA_ID
		super.addFiltro(MunicipioDaoSql.ALIAS + ".COMARCA_ID = ? ", 
				new BeanAccess("municipio.idComarca",  this.municipio), 
				FiltroWhereGen.AND);
	}

}
