Ejemplo n.º 1
0
  public Collection<Experiment> findExpts(CellLine cells, ExptCondition cond) throws SQLException {

    LinkedList<Integer> dbids = new LinkedList<Integer>();

    String tables = "experiment e";
    if (genome != null) {
      tables += ", probe_platform_to_genome p2g";
    }

    String query = "select e.id from " + tables;

    Vector<String> conds = new Vector<String>();

    if (genome != null) {
      int gid = genome.getDBID();
      conds.add("e.platform=p2g.platform and p2g.genome=" + gid);
    }

    if (cells != null) {
      conds.add("e.cells=" + cells.getDBID());
    }

    if (cond != null) {
      conds.add("e.condition=" + cond.getDBID());
    }

    for (int i = 0; i < conds.size(); i++) {
      if (i == 0) {
        query += " where ";
      } else {
        query += " and ";
      }
      query += conds.get(i);
    }

    System.out.println("Final Query: \"" + query + "\"");

    java.sql.Connection cxn = loader.getConnection();
    Statement s = cxn.createStatement();
    ResultSet rs = s.executeQuery(query);

    while (rs.next()) {
      int dbid = rs.getInt(1);
      dbids.addLast(dbid);
    }

    rs.close();
    s.close();

    Collection<Experiment> expts = loader.loadExperiments(dbids);
    return expts;
  }