public function recuperarProvaResposta($id_prova_resposta){

		$query ="SELECT tbl_prova_resposta.prova_resposta       AS prova_resposta,
						tbl_prova_resposta.prova_pergunta       AS prova_pergunta,
						tbl_prova_resposta.resposta_texto       AS resposta_texto,
						tbl_prova_resposta.resposta_correta     AS resposta_correta,
						tbl_prova_resposta.resposta_filho       AS resposta_filho,
						tbl_prova_resposta.ordem                AS ordem
				FROM tbl_prova_resposta
				WHERE tbl_prova_resposta.prova_resposta = $id_prova_resposta ";

		$banco = $this->getBancoDados(); 
		$prova_resposta = NULL; 
		$retorno = $banco->executaSQL($query); 
		if($retorno != NULL) {

			if ($banco->numRows($retorno) == 0){
				#throw new Exception("Nenhuma resposta da prova encontrada. (QUERY: $query )",0);
			}

			while($linha = $banco->fetchArray($retorno)) { 

				if (strlen(trim($linha["resposta_filho"]))>0){
					$sessionFacade   = new SessionFacade($banco); 
					$obj_prova_resposta_filho = $sessionFacade->recuperarProvaResposta($linha["resposta_filho"]);
				}else{
					$obj_prova_resposta_filho = NULL;
				}

				$prova_resposta = new Resposta(); 
				$prova_resposta->setId($linha['prova_resposta']);
				$prova_resposta->setPergunta($linha["prova_pergunta"]);
				$prova_resposta->setRespostaCorreta($linha["resposta_correta"]);
				$prova_resposta->setRespostaTexto($linha["resposta_texto"]);
				$prova_resposta->setRespostaFilho($obj_prova_resposta_filho);
				$prova_resposta->setOrdem($linha["ordem"]);
			}
			return $prova_resposta; 
		} else {
			throw new Exception("Erro ao recuperar Resposta Prova (SQL: $query )"); 
		}
	}
	public function recuperarProvaPerguntaRespondida(Prova $prova, Aluno $aluno){

		$query ="SELECT tbl_prova_pergunta.prova_pergunta     AS prova_pergunta,
						tbl_prova_pergunta.topico             AS topico,
						tbl_prova_pergunta.tipo_pergunta      AS tipo_pergunta,
						tbl_prova_pergunta.titulo             AS titulo,
						tbl_prova_pergunta.dificuldade        AS dificuldade,
						tbl_prova_pergunta.fonte              AS fonte,
						tbl_prova_pergunta.peso               AS peso,
						tbl_prova_pergunta.pergunta_origem    AS pergunta_origem
				FROM tbl_prova_pergunta
				WHERE tbl_prova_pergunta.prova_pergunta = $id_pergunta ";

		$banco = $this->getBancoDados(); 
		$pergunta = NULL; 
		$retorno = $banco->executaSQL($query); 
		if($retorno != NULL) {

			if ($banco->numRows($retorno) == 0){
				throw new Exception("Nenhuma pergunta encontrado.",0);
			}

			while($linha = $banco->fetchArray($retorno)) {

				$sessionFacade		= new SessionFacade($banco); 
				$obj_topico			= $sessionFacade->recuperarTopico($linha["topico"]);
				$obj_tipo_pergunta	= $sessionFacade->recuperarTipoPergunta($linha["tipo_pergunta"]);

				$pergunta = new ProvaPergunta(); 
				$pergunta->setId($linha['prova_pergunta']);
				$pergunta->setTopico($obj_topico);
				$pergunta->setTipoPergunta($obj_tipo_pergunta);
				$pergunta->setTitulo($linha["titulo"]);
				$pergunta->setDificuldade($linha["dificuldade"]);
				$pergunta->setFonte($linha["fonte"]);
				$pergunta->setPeso($linha["peso"]);
				$pergunta->setPerguntaOrigem($linha["pergunta_origem"]);

				$query ="SELECT tbl_prova_resposta.prova_resposta      AS prova_resposta,
								tbl_prova_resposta.prova_pergunta      AS prova_pergunta,
								tbl_prova_resposta.resposta_texto      AS resposta_texto,
								tbl_prova_resposta.resposta_correta    AS resposta_correta,
								tbl_prova_resposta.resposta_filho      AS resposta_filho
						FROM tbl_prova_resposta
						JOIN tbl_prova_pergunta      USING(prova_pergunta)
						WHERE tbl_prova_pergunta.prova_pergunta = $id_pergunta";

				if ($obj_tipo_pergunta->getId()=="4" OR $obj_tipo_pergunta->getId()=="5"){
					$query .= " AND tbl_resposta.resposta_filho IS NOT NULL ";
				}

				$resposta_item = NULL; 

				$retorno_item = $banco->executaSQL($query); 
				if($retorno_item != NULL) {
					while($linha_item = $banco->fetchArray($retorno_item)) { 
						$resposta_item = $sessionFacade->recuperarProvaResposta($linha_item["prova_resposta"]); 
						$pergunta->addResposta($resposta_item);
					}
				}
			}
			return $pergunta; 
		} else {
			throw new Exception("Erro ao recuperar ProvaPergunta ($query)"); 
		}
	}