package sac.pessoa.fisica;

/**
 * Projeto: SAC
 *  
 * Tipo: FiltroBuscaPessoaFisica
 *
 */
 
import sac.exception.InvalidArgumentException;

public class FiltroBuscaPessoaFisica {
	public static final int consultaPorCpf =1;
	public static final int consultaPorNome =2;
	public static final int consultaPorTipoServico =3;
	public static final int consultaPorDoenca =4;
	private String filtro;
	private int tipoFiltro;

	public FiltroBuscaPessoaFisica(String strFiltro, int tipoFiltro) throws InvalidArgumentException{
		setFiltro(strFiltro);
		setTipoFiltro(tipoFiltro);
	}
	public String getFiltro(){
		return filtro;
	}
	public int getTipoFiltro(){
		return tipoFiltro;
	}
	public void setFiltro(String filtro){
		this.filtro = filtro;
	}
	public void setTipoFiltro(int tipo) throws InvalidArgumentException{
		if ((tipo == consultaPorCpf) ||
			(tipo == consultaPorNome) ||
			(tipo == consultaPorTipoServico) ||
			(tipo == consultaPorDoenca)){
			tipoFiltro = tipo;
		} else {
			throw new InvalidArgumentException("Tipo de filtro de busca por pessoa invalido, tipo = "+ tipo+".");
		}
	}
	public String toString(){
		StringBuffer sb = new StringBuffer();
		switch ( tipoFiltro){
			case consultaPorCpf :
				sb.append(" [Consulta por cpf, ");
				break;
			case consultaPorNome :
				sb.append(" [Consulta por nome, ");
				break;
			case consultaPorTipoServico:
				sb.append(" [Consulta por tipo de serviço, ");
				break;
			case consultaPorDoenca:
				sb.append(" [Consulta por doenca, ");
				break;
		}
		sb.append("filtro= "+ filtro+" ]");
		return sb.toString();
	}
}
