package dao;

import util.DBConexao;

public class DAOTstFactory {

	private static AlunoDAO instanceAlunoDAO;

	public static AlunoDAO getAlunoDAO(DBConexao db) {
		if (instanceAlunoDAO == null) {
			instanceAlunoDAO = new AlunoDAO(db);
		}
		return instanceAlunoDAO;
	}

	private static CursoDAO instanceCursoDAO;

	public static CursoDAO getCursoDAO(DBConexao db) {
		if (instanceCursoDAO == null) {
			instanceCursoDAO = new CursoDAO(db);
		}
		return instanceCursoDAO;
	}

	private static DisciplinaDAO instanceDisciplinaDAO;

	public static DisciplinaDAO getDisciplinaDAO(DBConexao db) {
		if (instanceDisciplinaDAO == null) {
			instanceDisciplinaDAO = new DisciplinaDAO(db);
		}
		return instanceDisciplinaDAO;
	}

	private static EmentaDAO instanceEmentaDAO;

	public static EmentaDAO getEmentaDAO(DBConexao db) {
		if (instanceEmentaDAO == null) {
			instanceEmentaDAO = new EmentaDAO(db);
		}
		return instanceEmentaDAO;
	}

	private static MensalidadeDAO instanceMensalidadeDAO;

	public static MensalidadeDAO getMensalidadeDAO(DBConexao db) {
		if (instanceMensalidadeDAO == null) {
			instanceMensalidadeDAO = new MensalidadeDAO(db);
		}
		return instanceMensalidadeDAO;
	}

	private static ProfessorDAO instanceProfessorDAO;

	public static ProfessorDAO getProfessorDAO(DBConexao db) {
		if (instanceProfessorDAO == null) {
			instanceProfessorDAO = new ProfessorDAO(getUsuarioDAO(db), db);
		}
		return instanceProfessorDAO;
	}

	private static SalaDAO instanceSalaDAO;

	public static SalaDAO getSalaDAO(DBConexao db) {
		if (instanceSalaDAO == null) {
			instanceSalaDAO = new SalaDAO(db);
		}
		return instanceSalaDAO;
	}

	private static TurmaDAO instanceTurmaDAO;

	public static TurmaDAO getTurmaDAO(DBConexao db) {
		if (instanceTurmaDAO == null) {
			instanceTurmaDAO = new TurmaDAO(getProfessorDAO(db), db);
		}
		return instanceTurmaDAO;
	}

	private static UsuarioDAO instanceUsuarioDAO;

	public static UsuarioDAO getUsuarioDAO(DBConexao db) {
		if (instanceUsuarioDAO == null) {
			instanceUsuarioDAO = new UsuarioDAO(db);
		}
		return instanceUsuarioDAO;
	}
}
