/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package PackDAO;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Arrays;
import java.util.Vector;
import PackQuestao.*;
import PackTratamento.Tratamento;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
public class QuestaoDAO {
// ------------------------------------------------------------------------
// Atributos
// ------------------------------------------------------------------------
private Connection connection;
// ------------------------------------------------------------------------
// Construtor(es)
// ------------------------------------------------------------------------
public QuestaoDAO() {}
// ------------------------------------------------------------------------
// Metodos
// ------------------------------------------------------------------------
private void connect() throws SQLException, ClassNotFoundException {
String driverName = "com.mysql.jdbc.Driver";
String dbURL = "jdbc:mysql://localhost/banco_questoes?user=root&password=admin";
Class.forName(driverName);
connection = DriverManager.getConnection(dbURL);
}
private void disconnect() throws SQLException {
connection.close();
}
public int maxID() throws SQLException, ClassNotFoundException {
String sql;
Statement st;
int id = -1;
sql = "SELECT MAX(id) FROM questao;";
connect();
st = connection.createStatement();
st.execute(sql);
ResultSet rs = st.executeQuery(sql);
while(rs.next())
id = rs.getInt("MAX(id)");
disconnect();
return id;
}
public boolean salvarQuestao(Questao questao)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
boolean status = true;
// Conecta ao banco
connect();
// Instrução que será executada
sql = "INSERT INTO questao (enunciado, dificuldade, tipo, n_inscricao) " +
" values ('" + questao.getEnunciado() + "', " +
questao.getGrauDeDificuldade() + ", " +
"'" + questao.getTipoDeResposta() + "', " +
"'" + questao.getIdProfessor() + "');";
// Instrução 'st' que armazena o código sql
st = connection.createStatement();
// execução da instrução
status = st.execute(sql);
// Desconecta do banco
disconnect();
return !status;
}
//método criado por Assis
public boolean salvarImagem(String[] caminho, int idQuestao)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
boolean status = true;
String id = Integer.toString(idQuestao);
// Conecta ao banco
connect();
// Instrução que será executada
sql = "INSERT INTO imagem (caminho, id_questao)" +
" values ('" + caminho[0] +
"','" + id + "');";
// Instrução 'st' que armazena o código sql
st = connection.createStatement();
// execução da instrução
status = st.execute(sql);
// Desconecta do banco
disconnect();
return !status;
}
//método criado por Assis
public boolean salvarDocumento(String[] caminho, int idQuestao, String tipo)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
boolean status = true;
String id = Integer.toString(idQuestao);
// Conecta ao banco
connect();
// Instrução que será executada
sql = "INSERT INTO documento (caminho, tipo, id_questao)" +
" values ('" + caminho[0] + "','"+tipo+"','" + id + "');";
// Instrução 'st' que armazena o código sql
st = connection.createStatement();
// execução da instrução
status = st.execute(sql);
// Desconecta do banco
disconnect();
return !status;
}
public boolean salvarTags(String[] tags, int idQuestao)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
boolean status = true;
String id = Integer.toString(idQuestao);
// Conecta ao banco
connect();
// Instrução que será executada
sql = "INSERT INTO tags (texto,id_questao)" +
" values ('" + tags[0] + "','" + id + "');";
// Instrução 'st' que armazena o código sql
st = connection.createStatement();
// execução da instrução
status = st.execute(sql);
// Desconecta do banco
disconnect();
return !status;
}
//método criado por Assis
public boolean salvarRelacaoQuestaoDisciplina(String[] disciplina, int idQuestao)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
boolean status = true;
DisciplinaDAO d = new DisciplinaDAO();
int id_disciplina = d.buscaDisciplinaPorNome(disciplina[0]);
String id_disc = Integer.toString(id_disciplina);
String id = Integer.toString(idQuestao);
// Conecta ao banco
connect();
// Instrução que será executada
sql = "INSERT INTO questao_disciplina (id_questao, id_disciplina)" +
" values ('" + id +
"','" + id_disc + "');";
// Instrução 'st' que armazena o código sql
st = connection.createStatement();
// execução da instrução
status = st.execute(sql);
// Desconecta do banco
disconnect();
return !status;
}
public boolean updateQuestao(int idQuestao, Questao questao)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
boolean status = true;
// Conecta ao banco
connect();
// Instrução que será executada
sql = "UPDATE questao " +
"SET enunciado = '" + questao.getEnunciado() + "'," +
" dificuldade = '" + questao.getGrauDeDificuldade() + "'," +
" tipo = '" + questao.getTipoDeResposta() + "' ," +
" n_inscricao = '" + questao.getIdProfessor() + "'" +
"WHERE id = " + idQuestao + ";";
// Instrução 'st' que armazena o código sql
st = connection.createStatement();
// execução da instrução
status = st.execute(sql);
// Desconecta do banco
disconnect();
return !status;
}
private String[] selectImagens(int idQuestao)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
// Cria um vetor de strings vazio
Vector<String> imgs = new Vector<String>();
// Conecta ao banco
//connect();
// Instrução que será executada
sql = " SELECT caminho FROM imagem WHERE id_questao = " + idQuestao + ";";
// Recuperação das tuplas e armazenamento destas no 'rs'
st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
// Passagem por cada um das tuplas
while(rs.next()) {
// Recuperação de cada um dos atributos
String caminho = rs.getString("caminho");
imgs.add(caminho);
}
// Finaliza conexão
//disconnect();
int i = 0;
String[] is = new String[imgs.size()];
for (String img : imgs) {
is[i] = img;
i++;
}
return is;
}
//faltou o WHERE aqui....colocado já <by assis>
private String[] selectDocumentos(int idQuestao)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
// Cria um vetor de strings vazio
Vector<String> docs = new Vector<String>();
// Conecta ao banco
//connect();
// Instrução que será executada
sql = " SELECT caminho, tipo FROM documento " +
" WHERE id_questao = '" + idQuestao + "';";
// Recuperação das tuplas e armazenamento destas no 'rs'
st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
// Passagem por cada um das tuplas
while(rs.next()) {
// Recuperação de cada um dos atributos
String caminho = rs.getString("caminho");
//String tipo = rs.getString("tipo");
docs.add(caminho);
}
// Finaliza conexão
//disconnect();
int i = 0;
String[] ds = new String[docs.size()];
for (String img : docs) {
ds[i] = img;
i++;
}
return ds;
}
private String[] selectTags(int idQuestao)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
// Cria um vetor de strings vazio
Vector<String> tags = new Vector<String>();
// Conecta ao banco
//connect();
// Instrução que será executada
sql = " SELECT texto FROM tags " +
" WHERE id_questao = " + idQuestao + ";";
// Recuperação das tuplas e armazenamento destas no 'rs'
st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
// Passagem por cada um das tuplas
while(rs.next()) {
// Recuperação de cada um dos atributos
String texto = rs.getString("texto");
tags.add(texto);
}
// Finaliza conexão
//disconnect();
int i = 0;
String[] ts = new String[tags.size()];
for (String img : tags) {
ts[i] = img;
i++;
}
return ts;
}
/*
* Author David
* Date 23/07/2010
* Version 1.00
*/
//Busca em todas as tags do banco para ver se existe ou não
public Vector<Questao> searchInTags(String tagsDeEntrada[])
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
// Cria um vetor de strings vazio
Vector<Questao> fim = new Vector<Questao>();
//cria um vetor de Tratamento vazio
Vector<Tratamento> resultadoDoBanco = new Vector<Tratamento>();
// Conecta ao banco
connect();
// Instrução que será executada
sql = " SELECT texto, id_questao FROM tags ;";
// Recuperação das tuplas e armazenamento destas no 'rs'
st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
// Passagem por cada um das tuplas
while(rs.next()) {
// Recuperação de cada um dos atributos e aramazenamento no vetor
Tratamento a = new Tratamento();
a.setPalavraChave(rs.getString("texto"));
a.setIdQuestao(rs.getInt("id_questao"));
resultadoDoBanco.add(a);
}
System.out.println(resultadoDoBanco.size());
// Finaliza conexão
disconnect();
System.out.println(tagsDeEntrada.length);
for(int i = 0; i < tagsDeEntrada.length; i++){
for(int j = 0; j < resultadoDoBanco.size(); j++){
if(resultadoDoBanco.get(j).getPalavraChave().toUpperCase().contains(tagsDeEntrada[i].toUpperCase())){
fim.add(buscaPeloId(resultadoDoBanco.get(j).getIdQuestao()));
}
}
}
return fim;
}
private String[] selectDisciplinas(int idQuestao)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
// Cria um vetor de strings vazio
Vector<String> disciplinas = new Vector<String>();
// Conecta ao banco
//connect();
// Instrução que será executada
sql = " SELECT nome FROM disciplina d, questao_disciplina qd " +
" WHERE qd.id_questao = " + idQuestao + " AND " +
" d.id = qd.id_disciplina;";
// Recuperação das tuplas e armazenamento destas no 'rs'
st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
// Passagem por cada um das tuplas
while(rs.next()) {
// Recuperação de cada um dos atributos
String nome = rs.getString("nome");
disciplinas.add(nome);
}
// Finaliza conexão
//disconnect();
int i = 0;
String[] ds = new String[disciplinas.size()];
for (String img : disciplinas) {
ds[i] = img;
i++;
}
return ds;
}
private int[] selectIdRespostas(int idQuestao)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
// Cria um vetor de strings vazio
Vector<Integer> idRespostas = new Vector<Integer>();
// Conecta ao banco
//connect();
// Instrução que será executada
sql = " SELECT id FROM resposta_aberta WHERE id_questao = " + idQuestao +
" UNION " +
" SELECT id FROM resposta_multipla WHERE id_questao = " + idQuestao +
" UNION " +
" SELECT id FROM resposta_vf WHERE id_questao = " + idQuestao + ";";
// Recuperação das tuplas e armazenamento destas no 'rs'
st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
// Passagem por cada um das tuplas
while(rs.next()) {
// Recuperação de cada um dos atributos
int id = rs.getInt("id");
idRespostas.add(id);
}
// Finaliza conexão
//disconnect();
// Converter vetor de objetos para array de int
int[] ids = new int[idRespostas.size()];
int j = 0;
for (int i : idRespostas) {
ids[j] = i;
j++;
}
return ids;
}
//busca questão pelo id da questão retornando uma questão
public Questao buscaPeloId(int idQuestao)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
Questao questao = null;
// Conecta ao banco
connect();
String[] imagens = selectImagens(idQuestao);
String[] documentos = selectDocumentos(idQuestao);
String[] tags = selectTags(idQuestao);
String[] disciplinas = selectDisciplinas(idQuestao);
// Todas as respostas para a questão
int[] idRespostas = selectIdRespostas(idQuestao);
// Instrução que será executada
sql = " SELECT * FROM questao WHERE id = " + idQuestao + ";";
// Recuperação das tuplas e armazenamento destas no 'rs'
st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
// Passagem por cada um das tuplas
while(rs.next()) {
// Recuperação de cada um dos atributos
int id = rs.getInt("id");
String enunciado = rs.getString("enunciado");
String dificuldade = rs.getString("dificuldade");
String tipo = rs.getString("tipo");
String nInscricao = rs.getString("n_inscricao");
if (idRespostas.length > 0) {
// Cria objeto
questao = new Questao(enunciado, tipo, idRespostas[0],
disciplinas, dificuldade, nInscricao, tags, imagens, documentos);
} else {
// Cria objeto
questao = new Questao(enunciado, tipo, disciplinas, dificuldade, nInscricao, tags, imagens, documentos);
}
}
// Finaliza conexão
disconnect();
return questao;
}
//busca questões por disciplina retornando vetor de questão
public Vector<Questao> buscaPelaDisciplina(String disciplina)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
Vector<Questao> questoes = new Vector<Questao>();
// Conecta ao banco
connect();
// Instrução que será executada
sql = " SELECT q.id, q.enunciado, q.dificuldade, q.tipo, q.n_inscricao" +
" FROM questao q, questao_disciplina qd, disciplina d" +
" WHERE d.nome = '" + disciplina + "' " +
" AND d.id = qd.id_disciplina AND qd.id_questao = q.id;";
// Recuperação das tuplas e armazenamento destas no 'rs'
st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
// Passagem por cada um das tuplas
while(rs.next()) {
// Recuperação de cada um dos atributos
int id = rs.getInt("id");
String enunciado = rs.getString("enunciado");
String dificuldade = rs.getString("dificuldade");
String tipo = rs.getString("tipo");
String nInscricao = rs.getString("n_inscricao");
String[] imagens = selectImagens(id);
String[] documentos = selectDocumentos(id);
String[] tags = selectTags(id);
String[] disciplinas = selectDisciplinas(id);
// Todas as respostas para a questão
int[] idRespostas = selectIdRespostas(id);
Questao questao = null;
if (idRespostas.length > 0) {
// Cria objeto
questao = new Questao(id, enunciado, tipo, idRespostas[0],
disciplinas, dificuldade, nInscricao, tags, imagens, documentos);
} else {
// Cria objeto
questao = new Questao(id, enunciado, tipo, disciplinas,
dificuldade, nInscricao, tags, imagens, documentos);
}
// Adiciona questao ao vetor
questoes.add(questao);
}
// Finaliza conexão
disconnect();
return questoes;
}
//busca questões por tags retornando um vetor de questão
public Vector<Questao> buscaPelasTags(String _tags)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
Vector<Questao> questoes = new Vector<Questao>();
// Conecta ao banco
connect();
// Instrução que será executada
sql = " SELECT q.id, q.enunciado, q.dificuldade, q.tipo, q.n_inscricao" +
" FROM questao q, tags t " +
" WHERE t.texto = '" + _tags + "' AND q.id = t.id_questao";
// Recuperação das tuplas e armazenamento destas no 'rs'
st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
// Passagem por cada um das tuplas
while(rs.next()) {
// Recuperação de cada um dos atributos
int id = rs.getInt("id");
String enunciado = rs.getString("enunciado");
String dificuldade = rs.getString("dificuldade");
String tipo = rs.getString("tipo");
String nInscricao = rs.getString("n_inscricao");
String[] imagens = selectImagens(id);
String[] documentos = selectDocumentos(id);
String[] tags = selectTags(id);
String[] disciplinas = selectDisciplinas(id);
// Todas as respostas para a questão
int[] idRespostas = selectIdRespostas(id);
Questao questao = null;
if (idRespostas.length > 0) {
// Cria objeto
questao = new Questao(id, enunciado, tipo, idRespostas[0],
disciplinas, dificuldade, nInscricao, tags, imagens, documentos);
} else {
// Cria objeto
questao = new Questao(id, enunciado, tipo, disciplinas,
dificuldade, nInscricao, tags, imagens, documentos);
}
// Adiciona questao ao vetor
questoes.add(questao);
}
// Finaliza conexão
disconnect();
return questoes;
}
public Vector<Questao> buscaPeloTipoQuestao(String _tipo)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
Vector<Questao> questoes = new Vector<Questao>();
// Conecta ao banco
connect();
// Instrução que será executada
sql = " SELECT q.id, q.enunciado, q.dificuldade, q.tipo, q.n_inscricao" +
" FROM questao q " +
" WHERE q.tipo = '" + _tipo + "';";
// Recuperação das tuplas e armazenamento destas no 'rs'
st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
// Passagem por cada um das tuplas
while(rs.next()) {
// Recuperação de cada um dos atributos
int id = rs.getInt("id");
String enunciado = rs.getString("enunciado");
String dificuldade = rs.getString("dificuldade");
String tipo = rs.getString("tipo");
String nInscricao = rs.getString("n_inscricao");
String[] imagens = selectImagens(id);
String[] documentos = selectDocumentos(id);
String[] tags = selectTags(id);
String[] disciplinas = selectDisciplinas(id);
// Todas as respostas para a questão
int[] idRespostas = selectIdRespostas(id);
Questao questao = null;
if (idRespostas.length > 0) {
// Cria objeto
questao = new Questao(id, enunciado, tipo, idRespostas[0],
disciplinas, dificuldade, nInscricao, tags, imagens, documentos);
} else {
// Cria objeto
questao = new Questao(id, enunciado, tipo, disciplinas,
dificuldade, nInscricao, tags, imagens, documentos);
}
// Adiciona questao ao vetor
questoes.add(questao);
}
// Finaliza conexão
disconnect();
return questoes;
}
public Vector<Questao> buscaPeloGrauDificuldade(int grau)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
Vector<Questao> questoes = new Vector<Questao>();
// Conecta ao banco
connect();
// Instrução que será executada
sql = " SELECT q.id, q.enunciado, q.dificuldade, q.tipo, q.n_inscricao" +
" FROM questao q " +
" WHERE q.dificuldade = '" + grau + "';";
// Recuperação das tuplas e armazenamento destas no 'rs'
st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
// Passagem por cada um das tuplas
while(rs.next()) {
// Recuperação de cada um dos atributos
int id = rs.getInt("id");
String enunciado = rs.getString("enunciado");
String dificuldade = rs.getString("dificuldade");
String tipo = rs.getString("tipo");
String nInscricao = rs.getString("n_inscricao");
String[] imagens = selectImagens(id);
String[] documentos = selectDocumentos(id);
String[] tags = selectTags(id);
String[] disciplinas = selectDisciplinas(id);
// Todas as respostas para a questão
int[] idRespostas = selectIdRespostas(id);
Questao questao = null;
if (idRespostas.length > 0) {
// Cria objeto
questao = new Questao(id, enunciado, tipo, idRespostas[0],
disciplinas, dificuldade, nInscricao, tags, imagens, documentos);
} else {
// Cria objeto
questao = new Questao(id, enunciado, tipo, disciplinas,
dificuldade, nInscricao, tags, imagens, documentos);
}
// Adiciona questao ao vetor
questoes.add(questao);
}
// Finaliza conexão
disconnect();
return questoes;
}
public Vector<Questao> buscaPorProfessor(String nomeProfessor)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
Vector<Questao> questoes = new Vector<Questao>();
// Conecta ao banco
connect();
// Instrução que será executada
sql = " SELECT q.id, q.enunciado, q.dificuldade, q.tipo, q.n_inscricao" +
" FROM questao q, usuario u" +
" WHERE u.nome = '"+ nomeProfessor +"' AND u.n_inscricao = q.n_inscricao;";
// Recuperação das tuplas e armazenamento destas no 'rs'
st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
// Passagem por cada um das tuplas
while(rs.next()) {
// Recuperação de cada um dos atributos
int id = rs.getInt("id");
String enunciado = rs.getString("enunciado");
String dificuldade = rs.getString("dificuldade");
String tipo = rs.getString("tipo");
String nInscricao = rs.getString("n_inscricao");
String[] imagens = selectImagens(id);
String[] documentos = selectDocumentos(id);
String[] tags = selectTags(id);
String[] disciplinas = selectDisciplinas(id);
// Todas as respostas para a questão
int[] idRespostas = selectIdRespostas(id);
Questao questao = null;
if (idRespostas.length > 0) {
// Cria objeto
questao = new Questao(id, enunciado, tipo, idRespostas[0],
disciplinas, dificuldade, nInscricao, tags, imagens, documentos);
} else {
// Cria objeto
questao = new Questao(id, enunciado, tipo, disciplinas,
dificuldade, nInscricao, tags, imagens, documentos);
}
// Adiciona questao ao vetor
questoes.add(questao);
}
// Finaliza conexão
disconnect();
return questoes;
}
public int buscaPorTudo(String _enunciado,String _grau,String _tipoResposta, String _professor)
throws SQLException, ClassNotFoundException {
String sql;
Statement st;
// Conecta ao banco
connect();
// Instrução que será executada
sql = " SELECT id FROM questao " +
" WHERE enunciado = '"+ _enunciado + "' AND dificuldade = '"+ _grau +"' AND tipo = '"+ _tipoResposta+ "' AND n_inscricao = '"+ _professor +"' ;";
// Recuperação das tuplas e armazenamento destas no 'rs'
st = connection.createStatement();
ResultSet rs = st.executeQuery(sql);
// Passagem por cada um das tuplas
int id=-1;
while(rs.next()) {
// Recuperação de cada um dos atributos
int id2 = rs.getInt("id");
id = id2;
}
disconnect();
return id;
}
/*
* Author David
* Date 02/07/2010
* Version 1.00
*/
/*
* Author David
* Date 03/07/2010
* Version 1.01
*/
/*
* Author David
* Date 04/07/2010
* Version 1.02
*/
/*
* Author David
* Date 14/07/2010
* Version 1.03
*/
/*
* Author David
* Date 23/07/2010
* Version 1.04
*/
public Vector<Questao> filtraQuestoes(Questao q,Vector<Questao> v2,Vector<Questao> v3,Vector<Questao> v4,Vector<Questao> v5,Vector<Questao> v6){
Vector<Questao> vec2 = new Vector();
int cont = 0;
if(q!=null){//esses if's abaixo servem para contar quantos campos foram preenchidos...
cont++;
}
if(!v2.isEmpty()){
cont++;
}
if(!v3.isEmpty()){
cont++;
}
if(!v4.isEmpty()){
cont++;
}
if(!v5.isEmpty()){
cont++;
}
if(!v6.isEmpty()){
cont++;
}
switch(cont){//trabalha de acordoa a quantidade de campos preenchidos
case 0:{
//redirecionar pra página anterior... usar o servelet mas ainda naum sei como
}
break;
case 1:{ //responsável quando tem um campo preenchido...
if(q!=null){
vec2.addElement(q);
}else{
if(!v2.isEmpty() && v3.isEmpty() && v4.isEmpty() && v5.isEmpty() && v6.isEmpty()){
vec2 = Tratamento.retirarRepetidas(v2);
}else{
if(v2.isEmpty() && !v3.isEmpty() && v4.isEmpty() && v5.isEmpty() && v6.isEmpty()){
vec2 = Tratamento.retirarRepetidas(v3);
}else{
if(v2.isEmpty() && v3.isEmpty() && !v4.isEmpty() && v5.isEmpty() && v6.isEmpty()){
vec2 = Tratamento.retirarRepetidas(v4);
}else{
if(v2.isEmpty() && v3.isEmpty() && v4.isEmpty() && !v5.isEmpty() && v6.isEmpty()){
vec2 = Tratamento.retirarRepetidas(v5);
}else{
if(v2.isEmpty() && v3.isEmpty() && v4.isEmpty() && v5.isEmpty() && !v6.isEmpty()){
vec2 = Tratamento.retirarRepetidas(v6);
}
}
}
}
}
}
}
break;
case 2:{//responsável quando tem dois campos preenchidos...
if(q!=null){
vec2.addElement(q);
return vec2;
}
if(!v2.isEmpty() && !v3.isEmpty() && v4.isEmpty() && v5.isEmpty() && v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v3.size();j++){
if(v2.get(i).getIdProfessor().equals(v3.get(j).getIdProfessor())){
vec2.addElement(v3.get(j));
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(!v2.isEmpty() && v3.isEmpty() && !v4.isEmpty() && v5.isEmpty() && v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v4.size();j++){
if(v2.get(i).getIdProfessor().equals(v4.get(j).getIdProfessor()) && Arrays.equals(v2.get(i).getDisciplinasRelacionadas(), v4.get(j).getDisciplinasRelacionadas())){
vec2.addElement(v4.get(j));
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(!v2.isEmpty() && v3.isEmpty() && v4.isEmpty() && !v5.isEmpty() && v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v5.size();j++){
if(v2.get(i).getIdProfessor().equals(v5.get(j).getIdProfessor()) && v2.get(i).getTipoDeResposta().equals(v5.get(j).getTipoDeResposta())){
vec2.addElement(v5.get(j));
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(!v2.isEmpty() && v3.isEmpty() && v4.isEmpty() && v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v6.size();j++){
if(v2.get(i).getIdProfessor().equals(v6.get(j).getIdProfessor()) && v2.get(i).getGrauDeDificuldade().equals(v6.get(j).getGrauDeDificuldade())){
vec2.addElement(v6.get(j));
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(v2.isEmpty() && !v3.isEmpty() && !v4.isEmpty() && v5.isEmpty() && v6.isEmpty()){
for(int i = 0; i < v3.size(); i++){
for(int j = 0; j < v4.size();j++){
if(Arrays.equals(v3.get(i).getDisciplinasRelacionadas(), v4.get(j).getDisciplinasRelacionadas())){
vec2.addElement(v3.get(i));
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(v2.isEmpty() && !v3.isEmpty() && v4.isEmpty() && !v5.isEmpty() && v6.isEmpty()){
for(int i = 0; i < v3.size(); i++){
for(int j = 0; j < v5.size();j++){
if(v3.get(i).getTipoDeResposta().equals(v5.get(j).getTipoDeResposta())){
vec2.addElement(v3.get(i));
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(v2.isEmpty() && !v3.isEmpty() && v4.isEmpty() && v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v3.size(); i++){
for(int j = 0; j < v6.size();j++){
if(v3.get(i).getGrauDeDificuldade().equals(v6.get(j).getGrauDeDificuldade())){
vec2.addElement(v3.get(i));
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(v2.isEmpty() && v3.isEmpty() && !v4.isEmpty() && !v5.isEmpty() && v6.isEmpty()){
for(int i = 0; i < v4.size(); i++){
for(int j = 0; j < v5.size();j++){
if(Arrays.equals(v4.get(i).getDisciplinasRelacionadas(), v5.get(j).getDisciplinasRelacionadas()) && v4.get(i).getTipoDeResposta().equals(v5.get(j).getTipoDeResposta())){
vec2.addElement(v5.get(j));
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(v2.isEmpty() && v3.isEmpty() && !v4.isEmpty() && v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v4.size(); i++){
for(int j = 0; j < v6.size();j++){
if(Arrays.equals(v4.get(i).getDisciplinasRelacionadas(), v6.get(j).getDisciplinasRelacionadas()) && v4.get(i).getGrauDeDificuldade().equals(v6.get(j).getGrauDeDificuldade())){
vec2.addElement(v6.get(j));
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(v2.isEmpty() && v3.isEmpty() && v4.isEmpty() && !v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v5.size(); i++){
for(int j = 0; j < v6.size();j++){
if(v5.get(i).getTipoDeResposta().equals(v6.get(j).getTipoDeResposta()) && v5.get(i).getGrauDeDificuldade().equals(v6.get(j).getGrauDeDificuldade())){
vec2.addElement(v6.get(j));
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}
}
}
}
}
}
}
}
}
}
}
break;
case 3:{//responsável quando tem três campos preenchidos...
if(q!=null){
vec2.addElement(q);
return vec2;
}
if(!v2.isEmpty() && !v3.isEmpty() && !v4.isEmpty() && v5.isEmpty() && v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v3.size();j++){
for(int k = 0; k < v4.size(); k++){
if(v2.get(i).getIdProfessor().equals(v3.get(j).getIdProfessor()) && v3.get(j).getIdProfessor().equals(v4.get(k).getIdProfessor())){
if(Arrays.equals(v2.get(i).getDisciplinasRelacionadas(), v3.get(j).getDisciplinasRelacionadas()) && Arrays.equals(v3.get(j).getDisciplinasRelacionadas(), v4.get(k).getDisciplinasRelacionadas())){
vec2.addElement(v3.get(j));
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(!v2.isEmpty() && !v3.isEmpty() && v4.isEmpty() && !v5.isEmpty() && v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v3.size();j++){
for(int k = 0; k < v5.size(); k++){
if(v2.get(i).getIdProfessor().equals(v3.get(j).getIdProfessor()) && v3.get(j).getIdProfessor().equals(v5.get(k).getIdProfessor())){
if(v2.get(i).getTipoDeResposta().equals(v3.get(j).getTipoDeResposta()) && v3.get(j).getTipoDeResposta().equals(v5.get(k).getTipoDeResposta())){
vec2.addElement(v3.get(j));
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(!v2.isEmpty() && !v3.isEmpty() && v4.isEmpty() && v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v3.size();j++){
for(int k = 0; k < v6.size(); k++){
if(v2.get(i).getIdProfessor().equals(v3.get(j).getIdProfessor()) && v3.get(j).getIdProfessor().equals(v6.get(k).getIdProfessor())){
if(v2.get(i).getGrauDeDificuldade().equals(v3.get(j).getGrauDeDificuldade()) && v3.get(j).getGrauDeDificuldade().equals(v6.get(k).getGrauDeDificuldade())){
vec2.addElement(v3.get(j));
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(v2.isEmpty() && !v3.isEmpty() && !v4.isEmpty() && !v5.isEmpty() && v6.isEmpty()){
for(int i = 0; i < v3.size(); i++){
for(int j = 0; j < v4.size();j++){
for(int k = 0; k < v5.size(); k++){
if(Arrays.equals(v3.get(i).getDisciplinasRelacionadas(), v4.get(j).getDisciplinasRelacionadas()) && Arrays.equals(v3.get(i).getDisciplinasRelacionadas(), v5.get(k).getDisciplinasRelacionadas())){
if(v3.get(i).getTipoDeResposta().equals(v4.get(j).getTipoDeResposta()) && v3.get(i).getTipoDeResposta().equals(v5.get(k).getTipoDeResposta())){
vec2.addElement(v3.get(i));
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(v2.isEmpty() && !v3.isEmpty() && !v4.isEmpty() && v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v3.size(); i++){
for(int j = 0; j < v4.size();j++){
for(int k = 0; k < v6.size(); k++){
if(Arrays.equals(v3.get(i).getDisciplinasRelacionadas(), v4.get(j).getDisciplinasRelacionadas()) && Arrays.equals(v3.get(i).getDisciplinasRelacionadas(), v6.get(k).getDisciplinasRelacionadas())){
if(v3.get(i).getGrauDeDificuldade().equals(v4.get(j).getGrauDeDificuldade()) && v3.get(i).getGrauDeDificuldade().equals(v6.get(k).getGrauDeDificuldade())){
vec2.addElement(v3.get(i));
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(v2.isEmpty() && v3.isEmpty() && !v4.isEmpty() && !v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v4.size(); i++){
for(int j = 0; j < v5.size();j++){
for(int k = 0; k < v6.size(); k++){
if(Arrays.equals(v4.get(i).getDisciplinasRelacionadas(), v5.get(j).getDisciplinasRelacionadas()) && Arrays.equals(v4.get(i).getDisciplinasRelacionadas(), v6.get(k).getDisciplinasRelacionadas())){
if(v4.get(i).getTipoDeResposta().equals(v5.get(j).getTipoDeResposta()) && v4.get(i).getTipoDeResposta().equals(v6.get(k).getTipoDeResposta())){
if(v4.get(i).getGrauDeDificuldade().equals(v5.get(j).getGrauDeDificuldade()) && v5.get(j).getGrauDeDificuldade().equals(v6.get(k).getGrauDeDificuldade())){
vec2.addElement(v6.get(k));
}
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(!v2.isEmpty() && v3.isEmpty() && !v4.isEmpty() && !v5.isEmpty() && v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v4.size();j++){
for(int k = 0; k < v5.size(); k++){
if(v2.get(i).getIdProfessor().equals(v4.get(j).getIdProfessor()) && v2.get(i).getIdProfessor().equals(v5.get(k).getIdProfessor())){
if(Arrays.equals(v2.get(i).getDisciplinasRelacionadas(), v4.get(j).getDisciplinasRelacionadas()) && Arrays.equals(v2.get(i).getDisciplinasRelacionadas(), v5.get(k).getDisciplinasRelacionadas())){
if(v2.get(i).getTipoDeResposta().equals(v4.get(j).getTipoDeResposta()) && v2.get(i).getTipoDeResposta().equals(v5.get(k).getTipoDeResposta())){
vec2.addElement(v5.get(k));
}
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(!v2.isEmpty() && v3.isEmpty() && !v4.isEmpty() && v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v4.size();j++){
for(int k = 0; k < v6.size(); k++){
if(v2.get(i).getIdProfessor().equals(v4.get(j).getIdProfessor()) && v2.get(i).getIdProfessor().equals(v6.get(k).getIdProfessor())){
if(Arrays.equals(v2.get(i).getDisciplinasRelacionadas(), v4.get(j).getDisciplinasRelacionadas()) && Arrays.equals(v2.get(i).getDisciplinasRelacionadas(), v6.get(k).getDisciplinasRelacionadas())){
if(v2.get(i).getGrauDeDificuldade().equals(v4.get(j).getGrauDeDificuldade()) && v2.get(i).getGrauDeDificuldade().equals(v6.get(k).getGrauDeDificuldade())){
vec2.addElement(v6.get(k));
}
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(!v2.isEmpty() && v3.isEmpty() && v4.isEmpty() && !v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v5.size();j++){
for(int k = 0; k < v6.size(); k++){
if(v2.get(i).getIdProfessor().equals(v5.get(j).getIdProfessor()) && v2.get(i).getIdProfessor().equals(v6.get(k).getIdProfessor())){
if(v2.get(i).getTipoDeResposta().equals(v5.get(j).getTipoDeResposta()) && v2.get(i).getTipoDeResposta().equals(v6.get(k).getTipoDeResposta())){
if(v2.get(i).getGrauDeDificuldade().equals(v5.get(j).getGrauDeDificuldade()) && v2.get(i).getGrauDeDificuldade().equals(v6.get(k).getGrauDeDificuldade())){
vec2.addElement(v6.get(k));
}
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(v2.isEmpty() && !v3.isEmpty() && v4.isEmpty() && !v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v3.size(); i++){
for(int j = 0; j < v5.size();j++){
for(int k = 0; k < v6.size(); k++){
if(v3.get(i).getTipoDeResposta().equals(v5.get(j).getTipoDeResposta()) && v3.get(i).getTipoDeResposta().equals(v6.get(k).getTipoDeResposta())){
if(v3.get(i).getGrauDeDificuldade().equals(v5.get(j).getGrauDeDificuldade()) && v3.get(i).getGrauDeDificuldade().equals(v6.get(k).getGrauDeDificuldade())){
vec2.addElement(v3.get(i));
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}
}
}
}
}
}
}
}
}
}
}
break;
case 4:{
if(q!=null){
vec2.addElement(q);
return vec2;
}
if(!v2.isEmpty() && !v3.isEmpty() && !v4.isEmpty() && !v5.isEmpty() && v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v3.size();j++){
for(int k = 0; k < v4.size(); k++){
for(int l = 0; l<v5.size();l++){
if(v2.get(i).getIdProfessor().equals(v3.get(j).getIdProfessor()) && v3.get(j).getIdProfessor().equals(v4.get(k).getIdProfessor()) && v3.get(j).getIdProfessor().equals(v5.get(l).getIdProfessor())){
if(Arrays.equals(v2.get(i).getDisciplinasRelacionadas(), v3.get(j).getDisciplinasRelacionadas()) && Arrays.equals(v3.get(j).getDisciplinasRelacionadas(), v4.get(k).getDisciplinasRelacionadas()) && Arrays.equals(v3.get(j).getDisciplinasRelacionadas(), v5.get(l).getDisciplinasRelacionadas())){
if(v2.get(i).getTipoDeResposta().equals(v3.get(j).getTipoDeResposta()) && v3.get(j).getTipoDeResposta().equals(v4.get(k).getTipoDeResposta()) && v3.get(j).getTipoDeResposta().equals(v5.get(l).getTipoDeResposta())){
vec2.addElement(v3.get(j));
}
}
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(!v2.isEmpty() && !v3.isEmpty() && !v4.isEmpty() && v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v3.size();j++){
for(int k = 0; k < v4.size(); k++){
for(int l = 0; l < v6.size();l++){
if(v2.get(i).getIdProfessor().equals(v3.get(j).getIdProfessor()) && v3.get(j).getIdProfessor().equals(v4.get(k).getIdProfessor()) && v3.get(j).getIdProfessor().equals(v6.get(l).getIdProfessor())){
if(Arrays.equals(v2.get(i).getDisciplinasRelacionadas(), v3.get(j).getDisciplinasRelacionadas()) && Arrays.equals(v3.get(j).getDisciplinasRelacionadas(), v4.get(k).getDisciplinasRelacionadas()) && Arrays.equals(v3.get(j).getDisciplinasRelacionadas(), v6.get(l).getDisciplinasRelacionadas())){
if(v2.get(i).getGrauDeDificuldade().equals(v3.get(j).getGrauDeDificuldade()) && v3.get(j).getGrauDeDificuldade().equals(v4.get(k).getGrauDeDificuldade()) && v3.get(j).getGrauDeDificuldade().equals(v6.get(l).getGrauDeDificuldade())){
vec2.addElement(v3.get(j));
}
}
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(!v2.isEmpty() && !v3.isEmpty() && v4.isEmpty() && !v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v3.size();j++){
for(int k = 0; k < v5.size(); k++){
for(int l = 0; l < v6.size();l++){
if(v2.get(i).getIdProfessor().equals(v3.get(j).getIdProfessor()) && v3.get(j).getIdProfessor().equals(v5.get(k).getIdProfessor()) && v3.get(j).getIdProfessor().equals(v6.get(l).getIdProfessor())){
if(v2.get(i).getTipoDeResposta().equals(v3.get(j).getTipoDeResposta()) && v3.get(j).getTipoDeResposta().equals(v5.get(k).getTipoDeResposta()) && v3.get(j).getTipoDeResposta().equals(v6.get(l).getTipoDeResposta())){
if(v2.get(i).getGrauDeDificuldade().equals(v3.get(j).getGrauDeDificuldade()) && v3.get(j).getGrauDeDificuldade().equals(v5.get(k).getGrauDeDificuldade()) && v3.get(j).getGrauDeDificuldade().equals(v6.get(l).getGrauDeDificuldade())){
vec2.addElement(v3.get(j));
}
}
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(!v2.isEmpty() && v3.isEmpty() && !v4.isEmpty() && !v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v2.size(); i++){
for(int j = 0; j < v4.size();j++){
for(int k = 0; k < v5.size(); k++){
for(int l = 0; l < v6.size();l++){
if(v2.get(i).getIdProfessor().equals(v4.get(j).getIdProfessor()) && v2.get(i).getIdProfessor().equals(v5.get(k).getIdProfessor()) && v2.get(i).getIdProfessor().equals(v6.get(l).getIdProfessor())){
if(Arrays.equals(v2.get(i).getDisciplinasRelacionadas(), v4.get(j).getDisciplinasRelacionadas()) && Arrays.equals(v2.get(i).getDisciplinasRelacionadas(), v5.get(k).getDisciplinasRelacionadas()) && Arrays.equals(v2.get(i).getDisciplinasRelacionadas(), v6.get(l).getDisciplinasRelacionadas())){
if(v2.get(i).getTipoDeResposta().equals(v4.get(j).getTipoDeResposta()) && v2.get(i).getTipoDeResposta().equals(v5.get(k).getTipoDeResposta()) && v2.get(i).getTipoDeResposta().equals(v6.get(l).getTipoDeResposta())){
if(v2.get(i).getGrauDeDificuldade().equals(v4.get(j).getGrauDeDificuldade()) && v2.get(i).getGrauDeDificuldade().equals(v5.get(k).getGrauDeDificuldade()) && v2.get(i).getGrauDeDificuldade().equals(v6.get(l).getGrauDeDificuldade())){
vec2.addElement(v2.get(i));
}
}
}
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}else{
if(v2.isEmpty() && !v3.isEmpty() && !v4.isEmpty() && !v5.isEmpty() && !v6.isEmpty()){
for(int i = 0; i < v3.size(); i++){
for(int j = 0; j < v4.size();j++){
for(int k = 0; k < v5.size(); k++){
for(int l = 0; l < v6.size();l++){
if(Arrays.equals(v3.get(i).getDisciplinasRelacionadas(), v4.get(j).getDisciplinasRelacionadas()) && Arrays.equals(v3.get(i).getDisciplinasRelacionadas(), v5.get(k).getDisciplinasRelacionadas()) && Arrays.equals(v3.get(i).getDisciplinasRelacionadas(), v6.get(l).getDisciplinasRelacionadas())){
if(v3.get(i).getTipoDeResposta().equals(v4.get(j).getTipoDeResposta()) && v3.get(i).getTipoDeResposta().equals(v5.get(k).getTipoDeResposta()) && v3.get(i).getTipoDeResposta().equals(v6.get(l).getTipoDeResposta())){
if(v3.get(i).getGrauDeDificuldade().equals(v4.get(j).getGrauDeDificuldade()) && v3.get(i).getGrauDeDificuldade().equals(v5.get(k).getGrauDeDificuldade()) && v3.get(i).getGrauDeDificuldade().equals(v6.get(l).getGrauDeDificuldade())){
vec2.addElement(v3.get(i));
}
}
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}
}
}
}
}
}
break;
case 5:{
if(q!=null){
vec2.addElement(q);
return vec2;
}
if(!v2.isEmpty() && !v3.isEmpty() && !v4.isEmpty() && !v5.isEmpty() && !v6.isEmpty()){
for(int h = 0; h < v2.size(); h++){
for(int i = 0; i < v3.size(); i++){
for(int j = 0; j < v4.size();j++){
for(int k = 0; k < v5.size(); k++){
for(int l = 0; l < v6.size();l++){
if(v2.get(h).getIdProfessor().equals(v3.get(i).getIdProfessor()) && v3.get(i).getIdProfessor().equals(v4.get(j).getIdProfessor()) && v3.get(i).getIdProfessor().equals(v5.get(k).getIdProfessor()) && v3.get(i).getIdProfessor().equals(v6.get(l).getIdProfessor())){
if(Arrays.equals(v2.get(h).getDisciplinasRelacionadas(), v3.get(i).getDisciplinasRelacionadas()) && Arrays.equals(v3.get(i).getDisciplinasRelacionadas(), v4.get(j).getDisciplinasRelacionadas()) && Arrays.equals(v3.get(i).getDisciplinasRelacionadas(), v5.get(k).getDisciplinasRelacionadas()) && Arrays.equals(v3.get(i).getDisciplinasRelacionadas(), v6.get(l).getDisciplinasRelacionadas())){
if(v2.get(h).getTipoDeResposta().equals(v3.get(i).getTipoDeResposta()) && v3.get(i).getTipoDeResposta().equals(v4.get(j).getTipoDeResposta()) && v3.get(i).getTipoDeResposta().equals(v5.get(k).getTipoDeResposta()) && v3.get(i).getTipoDeResposta().equals(v6.get(l).getTipoDeResposta())){
if(v2.get(h).getTipoDeResposta().equals(v3.get(i).getTipoDeResposta()) && v3.get(i).getGrauDeDificuldade().equals(v4.get(j).getGrauDeDificuldade()) && v3.get(i).getGrauDeDificuldade().equals(v5.get(k).getGrauDeDificuldade()) && v3.get(i).getGrauDeDificuldade().equals(v6.get(l).getGrauDeDificuldade())){
vec2.addElement(v3.get(i));
}
}
}
}
}
}
}
}
}
vec2 = Tratamento.retirarRepetidas(vec2);
}
}
break;
case 6:{
if(q!=null){
vec2.addElement(q);
return vec2;
}
}
break;
}
return vec2;
}
/*
* by vinny
*/
public Vector<Questao> verifica(Vector<Questao> vec) {
Vector<Questao> vec_final = new Vector();
int contador = 0;
//vec_final.add(vec.get(0));
vec_final.add(vec.remove(0));
while(!vec.isEmpty()) {
Questao q = vec.remove(0);
for(int i=0; i<vec_final.size(); i++) {
if(q.getIdQuestao() == vec_final.get(i).getIdQuestao())
contador++;
}
if(contador==0)
vec_final.add(q);
}
return vec_final;
}
}