예제 #1
0
  public void salvar() throws CheckParamException {

    this.criaTabela();

    if (this.id == 0) {
      this.id = tabela.proximaId();
    }

    synchronized (this.tabela) {
      this.testaConsistencia();

      Entidade elemento;
      elemento = Persistencia.getInstancia().procuraElementoNaTabela(this.getNomeTabela(), this.id);
      if (this.equals(elemento)) {
        elemento.remover();
      }

      tabela.add(this);
    }
  }
예제 #2
0
  /**
   * buscaParametrizada
   *
   * @param nome String
   * @return ArrayList
   */
  @SuppressWarnings("unchecked")
  public static ArrayList<Usuario> buscaParametrizada(Map<String, Object> campos) {
    SigeDataBase db = new SigeDataBase();
    String query =
        "SELECT cd_usuario FROM permissao_por_usuario WHERE lower(nome_usuario)"
            + " LIKE lower(?) AND lower(login) LIKE lower(?) AND cpf LIKE ? AND cd_usuario!=1";
    StringBuffer preQuery = new StringBuffer(query);
    if (campos.get("entidade") != null) {
      preQuery.append(" AND cd_entidade=?");
    }

    List<Permissao> permissoes = null;
    try {
      permissoes = (List<Permissao>) campos.get("permissoes");
    } catch (ClassCastException e) {
      // Do nothing
    }

    if (permissoes != null) {
      preQuery.append("AND (");
      for (Iterator<Permissao> iter = permissoes.iterator(); iter.hasNext(); ) {
        preQuery.append(" cd_permissao=?");
        if (iter.hasNext()) {
          preQuery.append(" OR");
        }
      }
      preQuery.append(" )");
    }
    String status = (String) campos.get("status");
    if (!status.equals("both")) {
      preQuery.append(" AND ativo=?");
    }
    preQuery.append("GROUP BY cd_usuario");
    query = new String(preQuery);
    try {
      int i = 1;
      db.prepareStatement(query);
      db.setString(i++, '%' + (String) campos.get("nomeCompleto") + '%');
      db.setString(i++, '%' + (String) campos.get("login") + '%');
      db.setString(i++, '%' + (String) campos.get("cpf") + '%');
      if (campos.get("entidade") != null) {
        Entidade entidade = (Entidade) campos.get("entidade");
        db.setInt(i++, entidade.getCodigo());
      }
      if (permissoes != null) {
        for (Iterator<Permissao> iter = permissoes.iterator(); iter.hasNext(); ) {
          Permissao permissao = iter.next();
          db.setInt(i++, permissao.getCodigo());
        }
      }
      if (!status.equals("both")) {
        db.setBoolean(i++, status.equals("ativo"));
      }
      ResultSet rs = db.executeQuery();
      if (rs.next()) {
        ArrayList<Usuario> resultado = new ArrayList<Usuario>();
        do {
          Usuario usuario = buscaPorCodigo(rs.getInt("cd_usuario"));
          resultado.add(usuario);
        } while (rs.next());
        rs.close();
        db.closeConnection();
        return resultado;
      }
      db.closeConnection();
      return null;
    } catch (SQLException ex) {
      ex.printStackTrace();
    }
    db.closeConnection();
    return null;
  }