Package PackDAO

Source Code of PackDAO.QuestaoDAO

/*
* 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;
         }
}
TOP

Related Classes of PackDAO.QuestaoDAO

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.