<commit_before>package controller;

import java.util.ArrayList;
import java.util.List;

import com.parse.ParseException;

import android.content.Context;
import dao.DAOParse;
import dao.DAOREST;
import exception.ProfissionalSaudeException;
import model.ProfissionalSaude;
import model.TipoProfissional;
import util.Convenio;
import util.Especialidade;

public class ProfissionalController implements ProfissionalInterface {
	
	private static ProfissionalController instance;
	
	private DAOREST dao;
	private DAOParse daoParse;
	private static ArrayList<ProfissionalSaude> resultadoBuscaSimples;
	private static ProfissionalSaude profissionalSelecionado;
	private Context context;
	
	private ProfissionalController(Context context) {
		this.context = context;
	}

	public static ProfissionalController getInstance(Context context) {
		if (instance == null){
			instance = new ProfissionalController(context);
		}
			
		return instance;
	}

	@Override
	public void cadastrarProfissionalSaude(String nome,String tipoProfissinal, String identificacao,String especialidade, String convenio) throws ProfissionalSaudeException {
		
		ProfissionalSaude profissional;
		try {
			profissional = new ProfissionalSaude(tipoProfissinal.toString(), identificacao, nome, especialidade, convenio);
			getDao().persistir(profissional);
		} catch (Exception e) {
			e.printStackTrace();
			throw new ProfissionalSaudeException();
		}
		
	}
	
	public void cadastrarProfissionalSaude(ProfissionalSaude prof) throws ProfissionalSaudeException{
		//getDao().persistir(prof);
		//getDao().cadastrarProfissional(prof);
		getDaoParse().cadastrarProfissional(prof);
	}

	@Override
	public List<ProfissionalSaude> buscarProfissionalPorNome(String nome) {
		return  getDao().findByName(nome);
	}

	@Override
	public List<ProfissionalSaude> buscarProfissionalPorEspecialidade(
			Especialidade especialidade) throws ProfissionalSaudeException {
		return getDao().findByEspecialidade(especialidade.toString());
	}

	@Override
	public ProfissionalSaude buscarProfissionalPorIdentificacao(
			String identificacao) {
		return (ProfissionalSaude) getDao().findByIndentificao(identificacao);
	}

	@Override
	public List<ProfissionalSaude> buscarProfissionalPorTipo(TipoProfissional tipo) {
		return getDao().findByTipo(tipo);
	}

	@Override
	public ProfissionalSaude buscarProfissional(String nome,
			TipoProfissional tipoProfissional, int identificacao,
			Especialidade especialidade, Convenio convenio) {
		
		
		return null;
	}

	@Override
	public void atualizarProfissional(ProfissionalSaude profissional) {
		getDao().update(profissional);
	}

	@Override
	public void removerProfissional(ProfissionalSaude profissional) throws ProfissionalSaudeException {
		getDao().remover(profissional);
	}

	public static ArrayList<ProfissionalSaude> getResultadoBuscaSimples() {
		return resultadoBuscaSimples;
	}

	public static void setResultadoBuscaSimples(
			ArrayList<ProfissionalSaude> resultado){
			resultadoBuscaSimples = resultado;
	}

	public DAOREST getDao() {
		if(dao==null){
			dao = DAOREST.getInstance(context);
		}
		return dao;
	}

	public void setDao(DAOREST dao) {
		this.dao = dao;
	}
	
	public List<ProfissionalSaude> buscaSimples(String tipo, String especialidade, String convenio) throws ProfissionalSaudeException, ParseException{
		ArrayList<ProfissionalSaude> resultado = (ArrayList<ProfissionalSaude>) getDaoParse().buscaSimples(especialidade, tipo, convenio);
		setResultadoBuscaSimples(resultado);
		return resultado;
	}
	
	
	public List<ProfissionalSaude> buscarTodos() throws ProfissionalSaudeException{<commit_msg>Refatorando controller<commit_after>package controller;

import java.util.ArrayList;
import java.util.List;

import com.parse.ParseException;

import android.content.Context;
import dao.DAOParse;
import dao.DAOREST;
import exception.ProfissionalSaudeException;
import model.ProfissionalSaude;
import model.TipoProfissional;
import util.Convenio;
import util.Especialidade;

public class ProfissionalController implements ProfissionalInterface {
	
	private static ProfissionalController instance;

	private DAOParse daoParse;
	private static ArrayList<ProfissionalSaude> resultadoBuscaSimples;
	private static ProfissionalSaude profissionalSelecionado;
	private Context context;
	
	private ProfissionalController(Context context) {
		this.context = context;
	}

	public static ProfissionalController getInstance(Context context) {
		if (instance == null){
			instance = new ProfissionalController(context);
		}
			
		return instance;
	}

	@Override
	public void cadastrarProfissionalSaude(String nome,String tipoProfissinal, String identificacao,String especialidade, String convenio) throws ProfissionalSaudeException {
		
		ProfissionalSaude profissional;
		try {
			profissional = new ProfissionalSaude(tipoProfissinal.toString(), identificacao, nome, especialidade, convenio);
		} catch (Exception e) {
			e.printStackTrace();
			throw new ProfissionalSaudeException();
		}
		
	}
	
	public void cadastrarProfissionalSaude(ProfissionalSaude prof) throws ProfissionalSaudeException{
		getDaoParse().cadastrarProfissional(prof);
	}

	@Override
	public List<ProfissionalSaude> buscarProfissionalPorNome(String nome) {
		//TODO
		return null;
	}

	@Override
	public List<ProfissionalSaude> buscarProfissionalPorEspecialidade(
			Especialidade especialidade) throws ProfissionalSaudeException {
		//TODO
		return null;
	}

	@Override
	public ProfissionalSaude buscarProfissionalPorIdentificacao(
			String identificacao) {
		return null;
	}

	@Override
	public List<ProfissionalSaude> buscarProfissionalPorTipo(TipoProfissional tipo) {
		return null;
	}

	@Override
	public ProfissionalSaude buscarProfissional(String nome,
			TipoProfissional tipoProfissional, int identificacao,
			Especialidade especialidade, Convenio convenio) {
		
		//TODO
		return null;
	}

	@Override
	public void atualizarProfissional(ProfissionalSaude profissional) {
		//TODO
	}

	@Override
	public void removerProfissional(ProfissionalSaude profissional) throws ProfissionalSaudeException {
		//TODO
	}

	public static ArrayList<ProfissionalSaude> getResultadoBuscaSimples() {
		return resultadoBuscaSimples;
	}

	public static void setResultadoBuscaSimples(
			ArrayList<ProfissionalSaude> resultado){
			resultadoBuscaSimples = resultado;
	}

	public List<ProfissionalSaude> buscaSimples(String tipo, String especialidade, String convenio) throws ProfissionalSaudeException, ParseException{
		ArrayList<ProfissionalSaude> resultado = (ArrayList<ProfissionalSaude>) getDaoParse().buscaSimples(especialidade, tipo, convenio);
		setResultadoBuscaSimples(resultado);
		return resultado;
	}
	
	
	public List<ProfissionalSaude> buscarTodos() throws ProfissionalSaudeException{
{'fraction_non_alphanumeric': 0.0735424681858538, 'fraction_numerical': 0.0, 'mean_word_length': 6.37882096069869, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2396400', 'n_tokens_mistral': 2322, 'n_tokens_neox': 2089, 'n_words': 428}